Motion & Animation
How to use motion purposefully — transitions, micro-animations, and loading states that enhance experience without overwhelming it.
What is it?
Motion and animation in design systems refers to the planned use of transitions, animations, and micro-interactions to communicate state changes, provide feedback, guide attention, and create a polished product feel. Motion has a formal language: duration, easing, delay, and direction — all of which affect how it's perceived.
Why it matters
Motion does real UX work: it helps users understand what changed (a sidebar sliding in), communicates state (a spinning loader), and connects spatial relationships (a modal expanding from a button). Without purposeful motion, transitions feel abrupt and state changes confusing. With too much motion, products feel distracting and exhausting.
Best Practices
- Duration tokens: 100ms (micro), 200ms (fast), 300ms (moderate), 500ms (slow). Most UI transitions belong in 100–300ms.
- Easing: ease-out for elements entering the screen, ease-in for elements leaving, ease-in-out for elements moving.
- Spring physics (Framer Motion, React Spring) for natural-feeling interactions — physics-based motion feels more alive.
- Purposeful motion only — every animation should communicate something. Decoration-only animations slow down the UI.
- Respect prefers-reduced-motion media query — always provide a no-animation alternative.
- Micro-animations for feedback: button press, toggle switch, checkbox check, like action.
- Loading animations: spinner for unknown duration, progress bar for known duration, skeleton for content loading.
- Route transitions: subtle and fast (< 300ms). Long page transitions feel slow, not polished.
- Avoid motion that doesn't enhance comprehension: parallax effects, excessive scroll animations, decorative bounces.
- Test animations on lower-powered devices — they run at lower frame rates and can feel broken.
Common Mistakes
- Animations with no purpose — pure decoration that adds cognitive load.
- Too long — transitions > 500ms feel sluggish and delay the user.
- Linear easing — mechanical and unnatural. Always use easing curves.
- Not respecting prefers-reduced-motion — causes vestibular disorders for some users.
- Animations that prevent interaction — users shouldn't have to wait for animations to complete.
- Inconsistent timing — one transition at 150ms, another at 300ms for the same type of interaction.
- Testing only on developer machines — smooth on a MacBook Pro, janky on a $200 Android.
Checklist
Research & Theory
Animation Principles (Disney 12 Principles)
Walt Disney's animators established 12 principles of animation in the 1930s. Squash and stretch, anticipation, ease in/out, and follow-through are directly applicable to UI animation.
Why it's relevant
UI animation that follows natural physics principles (ease-in-out, spring physics) feels more alive and trustworthy than linear mechanical motion.
Prefers-Reduced-Motion
A CSS media query that detects when a user has requested reduced motion in their OS settings. Affects users with vestibular disorders, motion sensitivity, and epilepsy.
Why it's relevant
Ignoring this media query is an accessibility failure. Always provide a non-animated alternative for every animation.
Real-World Examples
Linear
Transitions are deliberate and fast. New issue creation has a satisfying animation. Modal entrances are smooth. prefers-reduced-motion is respected. Motion is purposeful, never decorative.
Framer
The product demonstrates animation best practices throughout. Spring physics, exit animations, layout animations — all purposeful and well-timed.
Vercel
Deployment animations (building, checking, deploying) communicate state clearly. Not decorative — they provide real information about the deployment pipeline.