x-components について
x-components は、AI チャット画面を構築する開発者向けに @ant-design/x の React コンポーネントを解説するガイドです。バブル、入力、会話一覧、思考表示、フィードバックなどを操作ごとに整理し、データフローとストリーミングは別のスキルに委ねています。
主な機能
- 01操作段階に応じた UI コンポーネントの選択
- 02バブル、入力欄、会話一覧の組み合わせ
- 03思考過程、ソース、フィードバックの表示
- 04XProvider によるアプリ設定
- 05ページ構成パターンとコンポーネント API の参照
活用シーン
- 01AI チャットページの UI 構成
- 02メッセージ入力と会話切り替えの追加
- 03返信内の思考ステップとソースの表示
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ant-design/ x --skill x-componentsインストール後、Claude Code で/x-componentsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/API.mdCOMPONENTS.mdPATTERNS.md詳細
🎯 スキルの位置付け
このスキルでは、RICH インタラクションパラダイムに基づく AI 駆動のチャットインターフェースを構築する React コンポーネントライブラリ、@ant-design/x のすべての UI コンポーネントを扱います。
コンポーネントの選択、API の使用方法、組み合わせパターン、よくあるアンチパターンを扱います。
前提条件:このスキルで扱うのは UI のみです。データフローとストリーミングについては、
use-x-chat、x-chat-provider、x-requestの各スキルを参照してください。
目次
📦 パッケージの概要
| パッケージ | 役割 |
|---|---|
@ant-design/x | このスキルで扱うすべての UI コンポーネント |
@ant-design/x-sdk | データプロバイダー、リクエスト、ストリーミング状態 — ここでは扱いません |
@ant-design/x-markdown | Bubble 内での Markdown のレンダリング — x-markdown スキルを参照 |
npm install @ant-design/x
@ant-design/xはantdを拡張したものです。ConfigProviderを使用する場合は、XProviderに置き換えてください。
🗂️ コンポーネントグループ
RICH インタラクションパラダイムに基づいています。
| ステージ | コンポーネント |
|---|---|
| 一般 | Bubble、Bubble.List、Conversations、Notification |
| 起動 | Welcome、Prompts |
| 入力 | Sender、Attachments、Suggestion |
| 確認 | Think、ThoughtChain |
| フィードバック | Actions、FileCard、Sources、CodeHighlighter、Mermaid、Folder |
| グローバル | XProvider |
🚀 クイックスタートの選択ガイド
| 必要な機能 | まず読むもの |
|---|---|
| チャットメッセージのバブルを表示する | COMPONENTS.md → Bubble |
| チャット入力ボックスを構築する | COMPONENTS.md → Sender |
| 会話を一覧表示して切り替える | COMPONENTS.md → Conversations |
| AI の思考プロセスを表示する | COMPONENTS.md → ThoughtChain / Think |
| メッセージの下にアクションボタンを追加する | COMPONENTS.md → Actions |
| ウェルカム画面やオンボーディング画面を構築する | COMPONENTS.md → Welcome + Prompts |
| 入力欄にファイル添付を表示する | COMPONENTS.md → Attachments |
| 出典の引用を表示する | COMPONENTS.md → Sources |
| クイックコマンドの候補を追加する | COMPONENTS.md → Suggestion |
| 階層構造のファイル/フォルダツリーを表示する | COMPONENTS.md → Folder |
| チャットページ全体を組み立てる | PATTERNS.md |
| 特定のプロパティを調べる | API.md |
🛠 推奨ワークフロー
- 各インタラクションステージに合わせて、COMPONENTS.md からコンポーネントを選びます。
- PATTERNS.md を参照し、コンポーネントを組み合わせてページ全体を構成する方法を確認します。
- ロケール、テーマ、ショートカットキーを設定するため、アプリのルートを
XProviderでラップします(antdのConfigProviderを置き換えます)。 - 正確なプロパティ名は API.md で確認してください。推測で指定しないでください。
ページ全体の最小例
import { XProvider, Welcome, Prompts, Bubble, Sender } from '@ant-design/x';
export default () => (
<XProvider>
<Welcome title="Hello!" description="How can I help you?" />
<Prompts
items={[{ key: '1', label: 'What can you do?' }]}
onItemClick={(info) => console.log(info.data.label)}
/>
<Bubble.List items={[{ key: '1', content: 'Hello World', placement: 'end' }]} />
<Sender onSubmit={(msg) => console.log(msg)} />
</XProvider>
);
🚨 開発ルール
- アプリのルートでは必ず
XProviderを使用してください —antdのConfigProviderに代わるもので、ロケール、方向、X 固有のショートカットキーを有効にします。 - ループでは
BubbleではなくBubble.Listを使用してください —Bubble.Listはスクロール位置のアンカリング、自動スクロール、ロールベースのレイアウトを処理します。Bubbleを手動でマッピングすると、これらの機能が失われます。 BubbleとBubble.Listのcomponentsprop は安定した状態に保ってください — インラインでオブジェクトを作成すると再レンダリングが発生し、タイピングアニメーションがリセットされます。- ストリーム中は
streaming={true}、最後のチャンクではstreaming={false}に設定してください —trueのままにすると、完了状態が正しく機能しません。 ThoughtChainとThinkの使い分け:複数ステップのツール/エージェント呼び出しチェーンにはThoughtChainを使用し、折りたたみ可能な単一ブロックの推論表示にはThinkを使用してください。Actions.Copy、Actions.Feedback、Actions.Audioはプリセットのサブコンポーネントです — 独自の同等機能を作成するより、これらを優先して使用してください。- Sender の
onSubmitとonChangeの違い:onSubmitは送信ボタンまたは Enter キーで発火し、onChangeはキー入力のたびに発火します — 混同しないでください。 Bubbleのcontent文字列内にはMermaidやCodeHighlighterを絶対にレンダリングしないでください — 代わりにcontentRenderまたはcomponentsマップを使用してください。
🤝 スキルの連携
| シナリオ | スキルの組み合わせ |
|---|---|
| AI チャットアプリ全体 | x-chat-provider → x-request → use-x-chat → x-components → x-markdown |
| UI 構造の構築のみ | x-components のみ |
| バブルの返信内の Markdown | x-components + x-markdown |
| ストリーミングのデータフローのみ | use-x-chat + x-request |
🔗 参考リソース
- COMPONENTS.md — 使用方法、主要な props、例を含むコンポーネント別ガイド
- PATTERNS.md — ページ全体の構成パターンと統合レシピ
- API.md — 公式コンポーネントドキュメントから自動生成された props リファレンス — 17 個すべてのコンポーネントを網羅
公式ドキュメント
コメント
Markdown 対応