When to animate

Frequent interactions should never animate. Here's why.

The frequency test

FrequencyExamplesDecision
100+ times a dayKeyboard shortcuts, command palette, arrow-key navNever animate.
Tens of times a dayHover effects, list navigation, link rolloversRemove or radically reduce
OccasionalModals, drawers, tooltips, toastsStandard animation
Rare or first-timeOnboarding, success states, milestonesRoom for delight

The four purposes of motion

If it doesn't fit one of these four, cut it.

Feedback: confirms an action. Button scales on press. Toggle slides.

Orientation: shows spatial relationships. Drawer slides from its edge. Popover scales from its trigger.

Continuity: preserves context across state changes. Tab indicator slides between tabs. Shared element morphs from list to detail.

Delight: adds personality. Confetti on a milestone. Spring overshoot on a badge. Only works because it's rare.

Common mistakes

Animating everything because the design system has a transition token. Tokens are tools, not requirements.

Page navigation with a 600ms transition. 200ms max. A shared-element transition on key content beats animating the entire viewport.

Animating focus rings or text selection. Set transition: none on focus-visible outlines.