ChatBubble
チャットメッセージの吹き出しコンポーネント。
インポート
個別サブパス(バンドルサイズを抑えたい場合):
基本的な使い方
Loading...
ユーザーメッセージ
role="user"は右寄せで、丸みのあるスタイルで表示されます。
Loading...
アシスタントメッセージ
role="assistant"は左寄せで、フラットなスタイルで表示されます(ChatGPT風)。
アシスタント: アシスタントからの返答です。複数行のメッセージも対応しています。
チャット画面の例
Loading...
TypingIndicatorとの組み合わせ
入力中の状態を表示する場合は、TypingIndicatorと組み合わせます。
Loading...
Markdownレンダリングとの組み合わせ
childrenに任意のコンテンツを渡せるため、react-markdownなどと組み合わせて使用できます。
アクセシビリティ
各吹き出しの先頭に role に応じた発話者プレフィックス(role="user" は「あなた: 」、role="assistant" は「アシスタント: 」)が sr-only(スクリーンリーダー専用・画面には非表示)で挿入されます。連続したメッセージを読み上げる際に、どちらの発話か区別できるようにするためです。
Props
| Prop | Type | Default | Description |
|---|---|---|---|
role* | 'user' | 'assistant' | - | メッセージの送信者 |
children* | React.ReactNode | - | 表示するコンテンツ |
className | string | - | 追加のCSSクラス |