What are Motion Tokens and Why are They Essential in Design Systems?
Historically, design systems prioritized color palettes, typography scales, and spatial grid tokens while relegating animation to individual front-end developers’ whims. The result was predictable interface dissonance: a button hover transition executing over 150ms with ease-in alongside a modal overlay taking 450ms with an arbitrary cubic-bezier curve.
By abstracting animation into shared semantic tokens—such as --motion-duration-fast: 150ms; and --motion-easing-emphasized: cubic-bezier(0.2, 0.0, 0.0, 1.0);—teams maintain seamless parity between Figma prototyping variables and production CSS or JavaScript styling engines. This architecture aligns directly with modern W3C design token standards.
How to Architect a Motion Duration and Easing Token Scale
In high-density enterprise software, micro-interactions must prioritize speed and utility above all else. Feedback on simple state changes—like toggles, checkboxes, and button hover states—must resolve within 100ms to 200ms to maintain tactile immediacy. Larger layout transitions, such as sliding drawer sidebars or full-screen modal expansions, require 300ms to 400ms to prevent visual disorientation.
| Token Identifier | Duration | Cubic Bezier Easing | Production Application |
|---|---|---|---|
| motion-fast | 100ms – 150ms | cubic-bezier(0.4, 0.0, 0.2, 1) | Button hovers, checkbox toggles, tooltips |
| motion-medium | 200ms – 300ms | cubic-bezier(0.0, 0.0, 0.2, 1) [Entrance] | Dropdown menus, accordion expands, toasts |
| motion-slow | 350ms – 500ms | cubic-bezier(0.4, 0.0, 1, 1) [Exit] | Sheet drawers, modal dialogs, route transitions |
| motion-spring | Physics-based | stiffness: 300, damping: 25 | Draggable list items, gesture pull-to-refresh |
Accessibility: Implementing prefers-reduced-motion Tokens
Vestibular disorders affect millions of users who experience physical nausea, dizziness, or vertigo when exposed to parallax scrolling, sliding card animations, or sudden screen transitions. The cleanest architectural method to satisfy WCAG compliance is defining a global reduced-motion override within your design token CSS variables:
@media (prefers-reduced-motion: reduce) {
:root {
--motion-duration-fast: 0ms !important;
--motion-duration-medium: 0ms !important;
--motion-duration-slow: 0ms !important;
--motion-transition-default: opacity 150ms ease !important;
}
}
By substituting subtle opacity fades for spatial translation animations, users with vestibular sensitivities can navigate your product safely while retaining clear visual feedback on state changes. For further reading on foundational UI principles, examine our breakdown of command palette micro-interactions.
People Also Ask
What is the difference between CSS bezier curves and spring physics?
Cubic-bezier curves are time-based: you define an exact duration and the animation follows a fixed mathematical velocity curve. Spring physics are velocity- and mass-based: duration is dynamic and calculated based on user gesture speed, stiffness, and damping, providing natural tactile feedback for drag interactions.
How many motion tokens should a design system have?
A robust design system typically requires 4 duration tokens (Fast, Normal, Slow, Extra-Slow), 3 core easing curves (Standard, Decelerate, Accelerate), and 1 reduced-motion fallback token.
Why should animations be under 300ms in SaaS interfaces?
In professional productivity tools, users execute hundreds of repetitive interactions per hour. Any transition taking longer than 300ms introduces perceptible lag that impairs user efficiency and increases cognitive fatigue.
To master how fluid micro-transitions enhance complex component states, review our guide on Date Range Picker UX: B2B SaaS Calendar Design Guide.
