Must always be enabled when working with shadcn-ui.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add shengdabai/Tony-Claude-Code-Skills --skill shadcn-ui --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Shadcn Ui?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/shengdabai-shadcn-ui-d1697781)More formats (shields.io, HTML) on the badges page.
---
name: shadcn-ui
description: Must always be enabled when working with shadcn-ui.
---
<fundamental_concept>
## What is shadcn-ui?
shadcn-ui is **NOT an npm package**. It's a **code distribution platform** that copies component source code directly into your project.
**Key principle**: Components are added via CLI (`pnpx shadcn@latest add`) from a remote registry, NOT installed as dependencies.
</fundamental_concept>
<component_management>
## Adding Components
<cli_usage>
### Primary Method: CLI
```bash
# Add single component
pnpx shadcn@latest add button
# Add multiple components
pnpx shadcn@latest add button card dialog
# Add all components
pnpx shadcn@latest add --all
# Preview component before adding
pnpx shadcn@latest view button
```
**Important**: Always use the CLI to add components. Do NOT create component files manually in `components/ui/` unless explicitly instructed.
</cli_usage>
<catalog_discovery>
### Finding Components
1. **Official catalog**: Browse components at https://ui.shadcn.com/docs/components
2. **CLI preview**: Use `pnpx shadcn@latest view <component-name>` to preview before adding
3. **Search**: Check the documentation site for all 60+ available components organized by category:
- Form & Input (16 components)
- Layout & Navigation (8 components)
- Overlays & Dialogs (11 components)
- Feedback & Status (7 components)
- Display & Media (10 components)
</catalog_discovery>
<custom_registries>
### Custom Registries (if configured)
```bash
# Add from namespaced registry
pnpx shadcn@latest add @v0/dashboard
# Add from URL
pnpx shadcn@latest add https://example.com/r/custom-component.json
```
Registry configuration is in `components.json`:
```json
{
"registries": {
"@acme": "https://registry.acme.com/r/{name}.json"
}
}
```
</custom_registries>
</component_management>
<critical_constraints>
## DO NOT Edit Generated Files
**NEVER directly edit files in these directories without explicit user instruction**:
- `components/ui/` - CLI-generated component files
- Any directory specified in `components.json` aliases
**Why?**: These files are managed by the CLI. Direct edits will be lost on updates.
<modification_workflow>
### When Component Behavior Needs Customization
**Step 1: Try usage-side control first**
```tsx
// ✅ Best: Control via props/className/composition at usage site
<Button className="custom-styling" onClick={customHandler} />
```
**Step 2: If usage-side control is insufficient**
You MUST ask the user for permission before modifying `components/ui/` files.
**Required information for user approval**:
1. **Why extension is needed**: Explain what cannot be achieved via props/className
2. **Design approach**: Describe how you plan to extend the component (new props, variant, internal logic change, etc.)
**Example request**:
> The Button component needs to support an `icon` prop for consistent icon positioning. This cannot be achieved via className alone because it requires conditional rendering logic. I propose adding an optional `icon?: React.ReactNode` prop and rendering it with fixed spacing before children. May I modify `components/ui/button.tsx`?
Only proceed with modification after receiving explicit user approval.
</modification_workflow>
</critical_constraints>
<common_tasks>
## Common Tasks
- **Initial setup**: See https://ui.shadcn.com/docs/installation
- **Theming/Dark mode**: See https://ui.shadcn.com/docs/dark-mode
- **Form integration**: See https://ui.shadcn.com/docs/components/form
- **Custom components**: See https://ui.shadcn.com/docs/components-json
- **Monorepo setup**: See https://ui.shadcn.com/docs/monorepo
For comprehensive reference when documentation is insufficient, consult: https://ui.shadcn.com/llms.txt
</common_tasks>
<architecture_notes>
## Technical Details
- **Built with**: TypeScript, Tailwind CSS, Radix UI primitives
- **Configuration**: `components.json` at project root
- **Customization**: Components are yours to own - they're copied into your codebase
- **Updates**: Re-run `pnpx shadcn@latest add <component> --overwrite` to update
**Remember**: shadcn-ui provides the code, not the package. You maintain full control and ownership.
</architecture_notes>
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!