x-components
🎯 Skill Positioning
This skill covers all UI components in @ant-design/x — the React component library for building AI-driven chat interfaces based on the RICH interaction paradigm.
It covers component selection, API usage, composition patterns, and common anti-patterns.
Prerequisite: This skill handles UI only. For data flow and streaming, see
use-x-chat,x-chat-provider,x-requestskills.
Table of Contents
- 📦 Package Overview
- 🗂️ Component Groups
- 🚀 Quick Start Decision Guide
- 🛠 Recommended Workflow
- 🚨 Development Rules
- 🤝 Skill Collaboration
- 🔗 Reference Resources
📦 Package Overview
| Package | Responsibility |
|---|---|
@ant-design/x |
All UI components in this skill |
@ant-design/x-sdk |
Data providers, request, streaming state — not covered here |
@ant-design/x-markdown |
Markdown rendering inside Bubble — see x-markdown skill |
npm install @ant-design/x
@ant-design/xextendsantd. If you useConfigProvider, replace it withXProvider.
🗂️ Component Groups
Based on the RICH interaction paradigm:
| Stage | Components |
|---|---|
| General | Bubble, Bubble.List, Conversations, Notification |
| Wake | Welcome, Prompts |
| Express | Sender, Attachments, Suggestion |
| Confirmation | Think, ThoughtChain |
| Feedback | Actions, FileCard, Sources, CodeHighlighter, Mermaid, Folder |
| Global | XProvider |
🚀 Quick Start Decision Guide
| If you need to... | Read first |
|---|---|
| Render a chat message bubble | COMPONENTS.md → Bubble |
| Build a chat input box | COMPONENTS.md → Sender |
| List and switch conversations | COMPONENTS.md → Conversations |
| Show AI thinking process | COMPONENTS.md → ThoughtChain / Think |
| Add action buttons below a message | COMPONENTS.md → Actions |
| Build a welcome / onboarding screen | COMPONENTS.md → Welcome + Prompts |
| Show file attachments in input | COMPONENTS.md → Attachments |
| Show source citations | COMPONENTS.md → Sources |
| Add quick command suggestions | COMPONENTS.md → Suggestion |
| Display a hierarchical file/folder tree | COMPONENTS.md → Folder |
| Wire a complete chat page | PATTERNS.md |
| Look up a specific prop | API.md |
🛠 Recommended Workflow
- Pick components from COMPONENTS.md for each interaction stage.
- Use PATTERNS.md to understand how components compose into full pages.
- Wrap the app root with
XProvider(replacesantd'sConfigProvider) for locale, theme, and shortcut keys. - Use API.md for precise prop names — do not guess them.
Minimal Full-Page Example
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>
);
🚨 Development Rules
- Always use
XProviderat the app root — it supersedesantd'sConfigProviderand enables locale, direction, and x-specific shortcut keys. Bubble.ListnotBubblein loops —Bubble.Listhandles scroll anchoring, auto-scroll, and role-based layout; mappingBubblemanually loses these.- Keep
componentsprop stable inBubbleandBubble.List— inline object creation causes re-renders and resets typing animations. - Set
streaming={true}during stream,streaming={false}on final chunk — leaving ittruepermanently breaks the done state. ThoughtChainvsThink: useThoughtChainfor multi-step tool/agent call chains; useThinkfor a collapsible single-block reasoning display.Actions.Copy,Actions.Feedback,Actions.Audioare preset sub-components — prefer them over building custom equivalents.- Sender
onSubmitvsonChange:onSubmitfires on send button or Enter key;onChangefires on every keystroke — do not conflate them. - Never render
MermaidorCodeHighlighterinside aBubblecontentstring — usecontentRenderor thecomponentsmap instead.
🤝 Skill Collaboration
| Scenario | Skill combination |
|---|---|
| Full AI chat app | x-chat-provider → x-request → use-x-chat → x-components → x-markdown |
| Just building UI structure | x-components only |
| Markdown in bubble replies | x-components + x-markdown |
| Streaming data flow only | use-x-chat + x-request |
🔗 Reference Resources
- COMPONENTS.md — Component-by-component guide with usage, key props, and examples
- PATTERNS.md — Full-page composition patterns and integration recipes
- API.md — Auto-generated prop reference from official component docs — covers all 17 components
Official Documentation
More from ant-design/x
use-x-chat
Focus on explaining how to use the useXChat Hook, including custom Provider integration, message management, error handling, multi-conversation management, and more
20x-markdown
Use when building or reviewing Markdown rendering with @ant-design/x-markdown, including streaming Markdown, custom component mapping, plugins, themes, and chat-oriented rich content.
16x-request
Focus on explaining the practical configuration and usage of XRequest, providing accurate configuration instructions based on official documentation
15x-chat-provider
Focus on implementing custom Chat Provider, helping to adapt any streaming interface to Ant Design X standard format
15x-card
Use when building AI-driven UIs with @ant-design/x-card — covers XCard.Box, XCard.Card, A2UI v0.9 commands, data binding, catalogs, actions, and streaming patterns.
4