shadcn-components

Builds shadcn/ui components with correct Radix UI or Base UI primitive APIs and composition patterns.

1|Updated Jul 29, 2026
One-click install
npx skills add https://github.com/fusengine/kimi-code --skill shadcn-components-fusengine
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: shadcn-components
Source: https://github.com/fusengine/kimi-code/tree/main/plugins/shadcn-expert/skills/shadcn-components
Command: npx skills add https://github.com/fusengine/kimi-code --skill shadcn-components-fusengine

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? When building shadcn/ui components, developers must know whether the project uses Radix UI or Base UI primitives, since their APIs differ significantly (asChild vs render, Overlay vs Backdrop, Content vs Popup). Mixing the two APIs in one component breaks the UI, and hand-writing component internals instead of using registry source leads to drift. ## Core Features & Use Cases - Primitive API Mapping: Provides a 1:1 mapping table between Radix UI and Base UI parts for Dialog, Select, Tooltip, Accordion, Popover, and Menu components. - Composition Pattern Guidance: Documents the asChild pattern for Radix and the render prop pattern for Base UI with working code snippets. - MCP-Driven Component Sourcing: Requires consulting the shadcn MCP registry (search, view, get add command) before adding any component, using registry source as truth. - Use Case: You need to add a Dialog to a project. The skill first detects the primitive via shadcn-detection, fetches the component source from the shadcn registry, then adapts it using the correct composition pattern and part names. ## Quick Start Ask the agent to add a shadcn Dialog component to the project, making sure it detects whether the project uses Radix UI or Base UI first.

Frequently Asked Questions about shadcn-components

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build shadcn/ui components with Base UI instead of Radix?▼

Base UI components use subpath imports like @base-ui/react/Dialog, the render prop instead of asChild, and a Positioner wrapper for positioned elements. Detect the project's primitive first, then follow the Base UI part naming such as Popup and Backdrop.

What is the difference between Radix UI asChild and Base UI render prop?▼

Radix UI uses asChild to merge trigger props onto a single child element, while Base UI uses a render prop that accepts the element to render, such as render={<Button />}. Never mix both patterns in the same component.

How do Radix UI and Base UI component parts map to each other?▼

Radix DialogContent maps to Base UI Dialog.Popup, DialogOverlay maps to Dialog.Backdrop, and AccordionContent maps to Accordion.Panel. Positioned components like Select and Tooltip require a separate Positioner wrapper in Base UI.

Can I mix Radix UI and Base UI APIs in the same shadcn component?▼

No, mixing asChild and render patterns or combining parts from both libraries in one component breaks behavior. Detect the project's primitive first and use only that library's API throughout the component.

Why should I use the shadcn MCP registry instead of writing components manually?▼

The shadcn MCP registry provides the authoritative component source via search, view, and add-command tools. Hand-writing component internals risks API drift and outdated patterns, so registry source is treated as truth.