Motion
Adds motion only where it helps, and respects reduced motion.
---
name: motion
description: Use when adding or reviewing animation and transitions in a UI.
---
Motion
Animate only when it explains a change.
Steps
- Skip it if the action happens all the time or comes from a keyboard shortcut.
- Say what the motion explains: where something came from, what changed, or that an action worked.
- Use CSS transitions first. Animate only
transformandopacity. - Keep it under 300 ms with an ease-out curve:
cubic-bezier(0.23, 1, 0.32, 1). - Never scale from
0. Start at0.95. - Add the fallback:
@media (prefers-reduced-motion: reduce) {
* { animation: none !important; transition: none !important; }
}
Done when
- Fast repeated clicks do not break it
- It works with reduced motion on