技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
shadcn【数据与研究】shadcn/ui component library best practices and patterns (formerly shadcn-ui). This skill should be used when writing, reviewing, or refactoring shadcn/ui components to ensure proper architecture, accessibility, and performance. Triggers on tasks involving Radix primitives, Tailwind styling, form validation with React Hook Form, data tables, theming, …
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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.
Reference these guidelines when:
| 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- |
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 supportarch-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 stylesally-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 navigationstyle-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 variablesform-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 submissiondata-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 stateslayout-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 navigationcomp-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 contentperf-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 inputsstate-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 usedRead individual reference files for detailed explanations and code examples:
For a single-file reference containing all rules, see AGENTS.md.
| 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 |