Motion should feel considered, not decorative. Every transition is built from two primitives: a duration and an easing. The system ships five of each. All interaction transitions are composed from these tokens — no ad-hoc timings.
Hover any card to see the duration.
--t-hover. Press: scale(.96) at --dur-instant.--dur-fast via --t-hover.--ease-spring — a whisper of overshoot.in-out. Card rises + scales on out-expo.--t-enter.--t-hover on every interactive element. Consistency is motion.--ease-spring sparingly — toggles, confirmation ticks.prefers-reduced-motion. The system already does.--ease-sharp at --dur-base.transition: all 150ms ease. Use a token.transform.