Skill / UI / Tailwind
Variant-first styling
Check Tailwind variants before adding handwritten selectors, style props, or React state for styling.
Goal
Express styling reactions with variants the compiler understands instead of duplicating browser state in CSS or JavaScript.
Styling rules for Tailwind v4, token discipline, component reuse, and className boundaries.
Checks
1Use pseudo, ARIA, and data variants such as `active:`, `focus-visible:`, `aria-expanded:`, `data-[state=open]:`, and boolean `data-current:`.
2Use relationship variants such as `group-*`, `peer-*`, `has-*`, `in-*`, `*:`, and `**:` before adding parent-state selectors or event handlers.
3Use capability and structural variants such as `pointer-coarse:`, `pointer-fine:`, `first:`, `last:`, `odd:`, `nth-*`, and `not-*`.
4Use built-in mask and container-query utilities such as `mask-b-from-80%`, `mask-t-from-*`, `@container`, `@sm:`, and `@max-md:`.
Avoid
1Handwritten pseudo-state CSS or `style` props when a Tailwind variant directly models the state.
2React hover, focus, or child-presence state whose only purpose is toggling a style a selector variant can express.
Source
Imported as local Refined UI skill guidance, with this repo owning the final wording.
Mastra tailwind-v4
../mastra/.claude/skills/tailwind-v4