Foundations
Motion
Three duration tiers (120 / 200 / 320 ms) and three easing curves. No spring overshoots,
no bounces. All transitions reference var(--ease-standard) unless there is a
specific reason to deviate.
Duration tiers
Easing curves
--ease-standard Standard --ease-emphasized Emphasized --ease-out Out Usage rules
Default to standard
Use var(--ease-standard) + var(--dur-base) as your baseline.
Deviating requires a clear reason — not preference.
Match tier to complexity
Fast (120ms) for simple hover swaps. Base (200ms) for state changes visible in flow. Slow (320ms) for panels and overlays that take visual space.
No overshoots in product UI
--ease-emphasized has a slight overshoot (1.2). Reserve it for moments
where you deliberately want to draw attention — not standard interactions.
Respect prefers-reduced-motion
Wrap any animation that moves content across distance in an
@media (prefers-reduced-motion: no-preference) block,
or set transition-duration: 0.001ms in a reduced-motion override.