Why it matters
Transitioning all animates properties you never meant to (layout, colors on theme switch, box-shadow), triggers layout/paint work on every change and makes motion feel mushy.
How to fix it
List the properties: transition-[transform,opacity], transition-colors, transition-transform, or transition: transform 160ms var(--ease-out), opacity 160ms.
Example
<button className="transition-[transform,background-color] duration-150 ease-out active:scale-[0.97]" />References
More lint rules
void lint reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.
unload-listener`unload` event listeneruseeffect-fetchPage fetches its data in `useEffect`div-buttonClickable `<div>`/`<span>` without button semanticsdangerously-set-jsonld-unescapedJSON-LD injected with `JSON.stringify` without escaping `<`animate-layout-propAnimation of layout properties (width/height/top/left/margin/padding)outline-none-no-replacementFocus outline removed without a visible replacementscale-zero-entryElement enters from `scale(0)`scroll-timeline-no-fallbackBase rule hides an element; only an `@supports (animation-timeline: …)` block undoes it