Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ant-design avatar

X Components

  • 56 installs
  • 4.7k repo stars
  • Updated August 4, 2026
  • ant-design/x

x-components is a Claude Code skill covering the @ant-design/x React component library for building AI chat UIs, including Bubble, Sender, Conversations, ThoughtChain, and Actions.

About

This skill covers the UI components in the @ant-design/x React library for building AI chat interfaces. A developer uses it to choose components like Bubble, Sender, Conversations, ThoughtChain, and Actions for each part of a chat screen and compose them into a page. It documents API usage, composition patterns, and common anti-patterns such as mapping Bubble manually instead of using Bubble.List.

  • Covers all @ant-design/x React chat components: Bubble, Sender, Conversations, ThoughtChain, and more
  • Maps each RICH interaction stage to the right component
  • Includes a minimal full-page chat example and anti-pattern rules

X Components by the numbers

  • 56 all-time installs (skills.sh)
  • Ranked #1,245 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

x-components capabilities & compatibility

Capabilities
ai chat ui · component selection · ui composition
Use cases
frontend · ui design
From the docs

What x-components says it does

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.
SKILL.md
**`Bubble.List` not `Bubble` in loops** — `Bubble.List` handles scroll anchoring, auto-scroll, and role-based layout; mapping `Bubble` manually loses these.
SKILL.md
npx skills add https://github.com/ant-design/x --skill x-components

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs56
repo stars4.7k
Last updatedAugust 4, 2026
Repositoryant-design/x

What it does

Select and compose @ant-design/x React components to build an AI chat interface.

Who is it for?

Choosing and composing @ant-design/x React components for an AI chat interface

Skip if: Data flow, streaming, or markdown rendering, which are handled by the x-request, use-x-chat, and x-markdown skills

When should I use this skill?

You are building or reviewing an AI chat UI with @ant-design/x components

What you get

A correctly composed @ant-design/x chat UI wrapped in XProvider

  • Composed @ant-design/x chat UI page

By the numbers

  • Documents 18+ named components across six RICH interaction stages

Files

SKILL.mdMarkdownGitHub ↗

🎯 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-request skills.

Table of Contents

📦 Package Overview

PackageResponsibility
@ant-design/xAll UI components in this skill
@ant-design/x-sdkData providers, request, streaming state — not covered here
@ant-design/x-markdownMarkdown rendering inside Bubble — see x-markdown skill
npm install @ant-design/x
@ant-design/x extends antd. If you use ConfigProvider, replace it with XProvider.

🗂️ Component Groups

Based on the RICH interaction paradigm:

StageComponents
GeneralBubble, Bubble.List, Conversations, Notification
WakeWelcome, Prompts
ExpressSender, Attachments, Suggestion
ConfirmationThink, ThoughtChain
FeedbackActions, FileCard, Sources, CodeHighlighter, Mermaid, Folder
GlobalXProvider

🚀 Quick Start Decision Guide

If you need to...Read first
Render a chat message bubbleCOMPONENTS.md → Bubble
Build a chat input boxCOMPONENTS.md → Sender
List and switch conversationsCOMPONENTS.md → Conversations
Show AI thinking processCOMPONENTS.md → ThoughtChain / Think
Add action buttons below a messageCOMPONENTS.md → Actions
Build a welcome / onboarding screenCOMPONENTS.md → Welcome + Prompts
Show file attachments in inputCOMPONENTS.md → Attachments
Show source citationsCOMPONENTS.md → Sources
Add quick command suggestionsCOMPONENTS.md → Suggestion
Display a hierarchical file/folder treeCOMPONENTS.md → Folder
Wire a complete chat pagePATTERNS.md
Look up a specific propAPI.md

🛠 Recommended Workflow

1. Pick components from COMPONENTS.md for each interaction stage. 2. Use PATTERNS.md to understand how components compose into full pages. 3. Wrap the app root with XProvider (replaces antd's ConfigProvider) for locale, theme, and shortcut keys. 4. 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 `XProvider` at the app root — it supersedes antd's ConfigProvider and enables locale, direction, and x-specific shortcut keys.
  • `Bubble.List` not `Bubble` in loopsBubble.List handles scroll anchoring, auto-scroll, and role-based layout; mapping Bubble manually loses these.
  • Keep `components` prop stable in Bubble and Bubble.List — inline object creation causes re-renders and resets typing animations.
  • Set `streaming={true}` during stream, `streaming={false}` on final chunk — leaving it true permanently breaks the done state.
  • `ThoughtChain` vs `Think`: use ThoughtChain for multi-step tool/agent call chains; use Think for a collapsible single-block reasoning display.
  • `Actions.Copy`, `Actions.Feedback`, `Actions.Audio` are preset sub-components — prefer them over building custom equivalents.
  • Sender `onSubmit` vs `onChange`: onSubmit fires on send button or Enter key; onChange fires on every keystroke — do not conflate them.
  • Never render `Mermaid` or `CodeHighlighter` inside a `Bubble` `content` string — use contentRender or the components map instead.

🤝 Skill Collaboration

ScenarioSkill combination
Full AI chat appx-chat-providerx-requestuse-x-chatx-componentsx-markdown
Just building UI structurex-components only
Markdown in bubble repliesx-components + x-markdown
Streaming data flow onlyuse-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

Related skills

FAQ

Do I use Bubble or Bubble.List in a loop?

Use Bubble.List, not Bubble, in loops; Bubble.List handles scroll anchoring, auto-scroll, and role-based layout that manual mapping loses.

What replaces antd's ConfigProvider?

Wrap the app root with XProvider, which supersedes antd's ConfigProvider and enables locale, direction, and x-specific shortcut keys.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.