mcpField
X
x-components

x-components

github.com/ant-designデザイン・UI4.8k91 回インストール2 日前に更新
リポジトリ

x-components について

x-components は、AI チャット画面を構築する開発者向けに @ant-design/x の React コンポーネントを解説するガイドです。バブル、入力、会話一覧、思考表示、フィードバックなどを操作ごとに整理し、データフローとストリーミングは別のスキルに委ねています。

主な機能

  1. 01操作段階に応じた UI コンポーネントの選択
  2. 02バブル、入力欄、会話一覧の組み合わせ
  3. 03思考過程、ソース、フィードバックの表示
  4. 04XProvider によるアプリ設定
  5. 05ページ構成パターンとコンポーネント API の参照

活用シーン

  1. 01AI チャットページの UI 構成
  2. 02メッセージ入力と会話切り替えの追加
  3. 03返信内の思考ステップとソースの表示

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ant-design/x --skill x-components

インストール後、Claude Code で/x-componentsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
API.md
COMPONENTS.md
PATTERNS.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-markdownBubble 内での 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

🛠 推奨ワークフロー

  1. 各インタラクションステージに合わせて、COMPONENTS.md からコンポーネントを選びます。
  2. PATTERNS.md を参照し、コンポーネントを組み合わせてページ全体を構成する方法を確認します。
  3. ロケール、テーマ、ショートカットキーを設定するため、アプリのルートを XProvider でラップします(antd の ConfigProvider を置き換えます)。
  4. 正確なプロパティ名は 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 の components prop は安定した状態に保ってください — インラインでオブジェクトを作成すると再レンダリングが発生し、タイピングアニメーションがリセットされます。
  • ストリーム中は 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 のみ
バブルの返信内の Markdownx-components + x-markdown
ストリーミングのデータフローのみuse-x-chat + x-request

🔗 参考リソース

  • COMPONENTS.md — 使用方法、主要な props、例を含むコンポーネント別ガイド
  • PATTERNS.md — ページ全体の構成パターンと統合レシピ
  • API.md — 公式コンポーネントドキュメントから自動生成された props リファレンス — 17 個すべてのコンポーネントを網羅

公式ドキュメント

コメント