
Shadcn Ui
Discover, install, and customize shadcn/ui components with MCP-assisted metadata instead of guessing Radix or Base UI dependencies.
Overview
shadcn-ui is an agent skill for the Build phase that guides discovering, installing, and customizing shadcn/ui components with registry and MCP tooling.
Install
npx skills add https://github.com/google-labs-code/stitch-skills --skill shadcn-uiWhat is this skill?
- Copy-in components (not node_modules lock-in) with Radix UI or Base UI plus Tailwind
- MCP tools: list_components, get_component_metadata, and registry discovery
- Allowed shadcn and mcp_shadcn tools plus Read, Write, Bash, web_fetch
- Customization-first: full ownership of styling, behavior, and selective updates
- Documents four ownership benefits: full customization, no version lock-in, selective updates, zero library bundle overhe
- Core MCP flows include list_components and get_component_metadata for catalog discovery
Adoption & trust: 38.4k installs on skills.sh; 5.9k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want shadcn-style UI fast but keep picking wrong components, deps, or customization patterns for your Tailwind app.
Who is it for?
Solo builders shipping React/Next.js UIs who want accessible Tailwind components via the official registry and MCP helpers.
Skip if: Teams standardizing on Material UI or fully custom design systems with no Tailwind or shadcn workflow.
When should I use this skill?
User integrates or builds with shadcn/ui—component discovery, installation, customization, or registry best practices.
What do I get? / Deliverables
Components land in your repo with correct registry steps, metadata-aware props, and customization aligned to shadcn’s copy-in ownership model.
- Installed shadcn components in project source tree
- Customization notes aligned to copied component files
Recommended Skills
Journey fit
Build frontend is the natural home for copy-into-repo UI components, Tailwind styling, and registry-driven installation. Frontend subphase covers component catalogs, installation commands, and accessibility primitives—not backend APIs.
How it compares
Integration skill for the shadcn copy-in registry—not a generic component gallery npm package.
Common Questions / FAQ
Who is shadcn-ui for?
Indie frontend builders using Tailwind and React who install shadcn/ui blocks into their own codebase.
When should I use shadcn-ui?
During Build frontend work when adding forms, dialogs, tables, or marketing sections and you need registry discovery, install commands, and accessibility-aware customization.
Is shadcn-ui safe to install?
It may run Bash, write files, and fetch the registry—review the Security Audits panel on this Prism page before use in sensitive repos.
SKILL.md
READMESKILL.md - Shadcn Ui
# shadcn/ui Component Integration You are a frontend engineer specialized in building applications with shadcn/ui—a collection of beautifully designed, accessible, and customizable components built with Radix UI or Base UI and Tailwind CSS. You help developers discover, integrate, and customize components following best practices. ## Core Principles shadcn/ui is **not a component library**—it's a collection of reusable components that you copy into your project. This gives you: - **Full ownership**: Components live in your codebase, not node_modules - **Complete customization**: Modify styling, behavior, and structure freely, including choosing between Radix UI or Base UI primitives - **No version lock-in**: Update components selectively at your own pace - **Zero runtime overhead**: No library bundle, just the code you need ## Component Discovery and Installation ### 1. Browse Available Components Use the shadcn MCP tools to explore the component catalog and Registry Directory: - **List all components**: Use `list_components` to see the complete catalog - **Get component metadata**: Use `get_component_metadata` to understand props, dependencies, and usage - **View component demos**: Use `get_component_demo` to see implementation examples ### 2. Component Installation There are two approaches to adding components: **A. Direct Installation (Recommended)** ```bash npx shadcn@latest add [component-name] ``` This command: - Downloads the component source code (adapting to your config: Radix vs Base UI) - Installs required dependencies - Places files in `components/ui/` - Updates your `components.json` config **B. Manual Integration** 1. Use `get_component` to retrieve the source code 2. Create the file in `components/ui/[component-name].tsx` 3. Install peer dependencies manually 4. Adjust imports if needed ### 3. Registry and Custom Registries If working with a custom registry (defined in `components.json`) or exploring the Registry Directory: - Use `get_project_registries` to list available registries - Use `list_items_in_registries` to see registry-specific components - Use `view_items_in_registries` for detailed component information - Use `search_items_in_registries` to find specific components ## Project Setup ### Initial Configuration For **new projects**, use the `create` command to customize everything (style, fonts, component library): ```bash npx shadcn@latest create ``` For **existing projects**, initialize configuration: ```bash npx shadcn@latest init ``` This creates `components.json` with your configuration: - **style**: default, new-york (classic) OR choose new visual styles like Vega, Nova, Maia, Lyra, Mira - **baseColor**: slate, gray, zinc, neutral, stone - **cssVariables**: true/false for CSS variable usage - **tailwind config**: paths to Tailwind files - **aliases**: import path shortcuts - **rsc**: Use React Server Components (yes/no) - **rtl**: Enable RTL support (optional) ### Required Dependencies shadcn/ui components require: - **React** (18+) - **Tailwind CSS** (3.0+) - **Primitives**: Radix UI OR Base UI (depending on your choice) - **class-variance-authority** (for variant styling) - **clsx** and **tailwind-merge** (for class composition) ## Component Architecture ### File Structure ``` src/ ├── components/ │ ├── ui/ # shadcn components │ │ ├── button.tsx │ │ ├── card.tsx │ │ └── dialog.tsx │ └── [custom]/ # your composed components │ └── user-card.tsx ├── lib/ │ └── utils.ts # cn() utility └── app/ └── page.tsx ``` ### The `cn()` Utility All shadcn components use the `cn()` helper for class merging: ```typescript import { cls