shadcn-code-review

shadcn/ui Code Review

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "shadcn-code-review" with this command: npx skills add existential-birds/beagle/existential-birds-beagle-shadcn-code-review

shadcn/ui Code Review

Quick Reference

Issue Type Reference

className in CVA, missing VariantProps, compound variants references/cva-patterns.md

asChild without Slot, missing Context, component composition references/composition.md

Missing focus-visible, aria-invalid, disabled states references/accessibility.md

Missing data-slot, incorrect CSS targeting references/data-slot.md

Review Checklist

  • cn() receives className, not CVA variants

  • VariantProps<typeof variants> exported for consumers

  • Compound variants used for complex state combinations

  • asChild pattern uses @radix-ui/react-slot

  • Context used for component composition (Card, Accordion, etc.)

  • focus-visible: states, not just :focus

  • aria-invalid , aria-disabled for form states

  • disabled: variants for all interactive elements

  • sr-only for screen reader text

  • data-slot attributes for targetable composition parts

  • CSS uses has() selectors for state-based styling

  • No direct className overrides of variant styles

Valid Patterns (Do NOT Flag)

These are correct patterns that should NOT be flagged as issues:

  • max-h-(--var)

  • correct Tailwind v4 CSS variable syntax (NOT v3 bracket notation)

  • text-[color:var(--x)]

  • valid arbitrary value syntax

  • Copying shadcn component code into project - intended usage pattern

  • Not documenting copied shadcn components - library internals, not custom code

  • Using cn() with many arguments - composition is the pattern

  • Conditional classes in cn() arrays - valid Tailwind pattern

  • Extending primitive components without additional docs - well-known base

Context-Sensitive Rules

Apply these rules with appropriate context awareness:

  • Flag accessibility issues ONLY IF not handled by Radix primitives underneath

  • Flag missing aria labels ONLY IF component isn't using accessible radix primitive

  • Flag variant proliferation ONLY IF variants could be composed from existing

  • Flag component documentation ONLY IF it's custom code, not copied shadcn

Library Convention Note

shadcn/ui components are designed to be copied and modified. Code review should focus on:

  • Custom modifications made to copied components

  • Integration with application state/data

  • Accessibility in custom usage contexts

Do NOT flag:

  • Standard shadcn component internals

  • Radix primitive usage patterns

  • Default variant implementations

When to Load References

  • Reviewing variant definitions → cva-patterns.md

  • Reviewing component composition with asChild → composition.md

  • Reviewing form components or interactive elements → accessibility.md

  • Reviewing multi-part components (Card, Select, etc.) → data-slot.md

Review Questions

  • Are CVA variants properly separated from className props?

  • Does asChild composition work correctly with Slot?

  • Are all accessibility states (focus, invalid, disabled) handled?

  • Are data-slot attributes used for component part targeting?

  • Can consumers extend variants without breaking composition?

Before Submitting Findings

Load and follow review-verification-protocol before reporting any issue.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

langgraph-code-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

docling

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-code-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

fastapi-code-review

No summary provided by upstream source.

Repository SourceNeeds Review