Skill / UI / Tailwind
Tailwind v4 behavior & motion
Account for v4 behavior changes around transforms, hover, default colors, variant order, spacing, and motion.
Goal
Prevent subtle interaction and visual bugs that come from assuming Tailwind v3 runtime behavior still applies.
Styling rules for Tailwind v4, token discipline, component reuse, and className boundaries.
Checks
1Transition individual transform properties with utilities such as `transition-[opacity,scale]`; reset transforms with `scale-none`, `rotate-none`, and `translate-none`.
2Treat `hover:` as hover-capable only and keep required functionality available on touch devices.
3Set explicit border, divide, ring, and outline colors when the color matters because v4 defaults these to `currentColor`.
4Stack variants left to right, for example `*:first:pt-0`, and prefer flex or grid `gap-*` over `space-x-*` or `space-y-*`.
5Gate decorative animation with `motion-safe:` and `motion-reduce:`, and put reusable animations in `--animate-*` tokens with matching `@keyframes`.
Avoid
1`transition-[opacity,transform]` when the animated property is now `scale`, `rotate`, or `translate`.
2Required actions that are only discoverable or usable through hover.
3Hardcoded local animation durations that bypass motion tokens and reduced-motion behavior.
Source
Imported as local Refined UI skill guidance, with this repo owning the final wording.
Mastra tailwind-v4
../mastra/.claude/skills/tailwind-v4