shadcn
shadcn/ui components on Radix or Base UI.
How do I install this agent skill?
npx skills add https://github.com/pymodel/react-frontend-skills --skill shadcnIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides high-quality guidance and best practices for developing with shadcn/ui, Radix UI, and Tailwind CSS. It covers component architecture, accessibility, performance, and state management. The analysis found no malicious code, prompt injections, or security vulnerabilities.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
shadcn/ui Community Best Practices
Current best-practices guide for shadcn/ui applications. Before applying primitive-specific guidance, inspect whether the checked-in components use Radix UI or Base UI; current shadcn supports both (Base UI is the default for new projects) and their composition APIs differ. Component installs and upgrades go through the current CLI (v4), which resolves namespaced registries.
When to Apply
Reference these guidelines when:
- 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 | Component Architecture | CRITICAL | arch- |
| 2 | Accessibility Preservation | CRITICAL | ally- |
| 3 | Styling & Theming | HIGH | style- |
| 4 | Form Patterns | HIGH | form- |
| 5 | Data Display | MEDIUM-HIGH | data- |
| 6 | Component Composition | MEDIUM | comp- |
| 7 | Performance Optimization | MEDIUM | perf- |
| 8 | State Management | LOW-MEDIUM | state- |
Quick Reference
1. Component Architecture (CRITICAL)
arch-use-asChild-for-custom-triggers- Use the generated primitive's composition APIarch-current-cli-registry- Use the current CLI for component lifecycle (v4, registries, MCP)arch-unified-radix-package- Import primitives from the unified radix-ui packagearch-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
2. 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 ratios
3. Styling & Theming (HIGH)
style-use-css-variables-for-theming- Use CSS variables for theme colorsstyle-avoid-important-overrides- Prefer variants and class composition over important overridesstyle-use-tailwind-theme-extend- Define Tailwind v4 theme tokens in CSSstyle-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
4. 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
5. 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
6. 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
7. 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
8. 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
Run in the project root first:
npx -y @pymodel/react-frontend-skills detect # installed vs. targeted versions
Read references/<rule-id>.md for each rule above that matches the task: why it matters, then incorrect vs. correct code.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/pymodel/react-frontend-skills/shadcn">View shadcn on skillZs</a>