shadcn
158
总安装量
159
周安装量
#1625
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill shadcn
Agent 安装分布
opencode
129
claude-code
119
gemini-cli
118
codex
117
github-copilot
100
Skill 文档
shadcn/ui Community Best Practices
Comprehensive best practices guide for shadcn/ui applications, maintained by the shadcn/ui community. Contains 58 rules across 10 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Installing and configuring shadcn/ui in a project
- Writing new shadcn/ui components or composing primitives
- Implementing forms with React Hook Form and Zod validation
- Building data tables or handling large dataset displays
- Customizing themes or adding dark mode support
- Reviewing code for accessibility compliance
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | CLI & Project Setup | CRITICAL | setup- |
| 2 | Component Architecture | CRITICAL | arch- |
| 3 | Accessibility Preservation | CRITICAL | ally- |
| 4 | Styling & Theming | HIGH | style- |
| 5 | Form Patterns | HIGH | form- |
| 6 | Data Display | MEDIUM-HIGH | data- |
| 7 | Layout & Navigation | MEDIUM | layout- |
| 8 | Component Composition | MEDIUM | comp- |
| 9 | Performance Optimization | MEDIUM | perf- |
| 10 | State Management | LOW-MEDIUM | state- |
Quick Reference
1. CLI & Project Setup (CRITICAL)
setup-components-json– Configure components.json before adding componentssetup-path-aliases– Configure TypeScript path aliases to match components.jsonsetup-cn-utility– Create the cn utility before using componentssetup-use-cli-not-copy– Use CLI to add components instead of copy-pastesetup-css-variables-theme– Enable CSS variables for consistent themingsetup-rsc-configuration– Set RSC flag based on framework support
2. Component Architecture (CRITICAL)
arch-use-asChild-for-custom-triggers– Use asChild prop for custom trigger elementsarch-preserve-radix-primitive-structure– Maintain Radix compound component hierarchyarch-extend-variants-with-cva– Use Class Variance Authority for type-safe variantsarch-use-cn-for-class-merging– Use cn() utility for safe Tailwind class mergingarch-forward-refs-for-composable-components– Forward refs for form and focus integrationarch-isolate-component-variants– Separate base styles from variant-specific styles
3. Accessibility Preservation (CRITICAL)
ally-preserve-aria-attributes– Keep Radix ARIA attributes intactally-provide-sr-only-labels– Add screen reader labels for icon buttonsally-maintain-focus-management– Preserve focus trapping in modalsally-preserve-keyboard-navigation– Keep WAI-ARIA keyboard patternsally-ensure-color-contrast– Maintain WCAG color contrast ratiosally-dialog-title-required– Always include DialogTitle for screen readersally-form-field-labels– Associate labels with form controlsally-aria-invalid-errors– Use aria-invalid for form error statesally-checkbox-label-association– Wrap Checkbox with Label for click targetally-focus-visible-styles– Preserve focus visible styles for keyboard navigation
4. Styling & Theming (HIGH)
style-use-css-variables-for-theming– Use CSS variables for theme colorsstyle-avoid-important-overrides– Never use !important for style overridesstyle-use-tailwind-theme-extend– Extend Tailwind theme for design tokensstyle-consistent-spacing-scale– Use consistent Tailwind spacing scalestyle-responsive-design-patterns– Apply mobile-first responsive designstyle-dark-mode-support– Support dark mode with CSS variables
5. Form Patterns (HIGH)
form-use-react-hook-form-integration– Integrate with React Hook Formform-use-zod-for-schema-validation– Use Zod for type-safe validationform-show-validation-errors-correctly– Show errors at appropriate timesform-handle-async-validation– Debounce async validation callsform-reset-form-state-correctly– Reset form state after submission
6. Data Display (MEDIUM-HIGH)
data-use-tanstack-table-for-complex-tables– Use TanStack Table for sorting/filteringdata-virtualize-large-lists– Virtualize lists with 100+ itemsdata-use-skeleton-loading-states– Use Skeleton for loading statesdata-paginate-server-side– Paginate large datasets server-sidedata-empty-states-with-guidance– Provide actionable empty states
7. Layout & Navigation (MEDIUM)
layout-sidebar-provider– Wrap layout with SidebarProviderlayout-sidebar-collapsible– Configure sidebar collapsible behaviorlayout-sidebar-groups– Organize sidebar navigation with groupslayout-sheet-mobile-nav– Use Sheet for mobile navigation overlaylayout-breadcrumb-navigation– Implement breadcrumbs for deep navigation
8. Component Composition (MEDIUM)
comp-compose-with-compound-components– Use compound component patternscomp-use-drawer-for-mobile-modals– Use Drawer on mobile devicescomp-combine-command-with-popover– Create searchable selects with Commandcomp-nest-dialogs-correctly– Manage nested dialog focus correctlycomp-create-reusable-form-fields– Extract reusable form field componentscomp-use-slot-pattern-for-flexibility– Use slot pattern for flexible content
9. Performance Optimization (MEDIUM)
perf-lazy-load-heavy-components– Lazy load components over 50KBperf-memoize-expensive-renders– Memoize list items and expensive componentsperf-optimize-icon-imports– Use direct imports for Lucide iconsperf-avoid-unnecessary-rerenders-in-forms– Isolate form field watchingperf-debounce-search-inputs– Debounce search and filter inputs
10. State Management (LOW-MEDIUM)
state-prefer-uncontrolled-for-simple-inputs– Use uncontrolled for simple formsstate-lift-state-to-appropriate-level– Lift state to lowest common ancestorstate-use-controlled-dialog-state– Control dialogs for programmatic accessstate-colocate-state-with-components– Keep state close to where it’s used
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Full Compiled Document
For a single-file reference containing all rules, see AGENTS.md.
Reference Files
| File | Description |
|---|---|
| AGENTS.md | Complete compiled guide with all rules |
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |