Skip to content

Foundations

Motion

One curve, three durations, and a reduced-motion rule that is not optional.

One easing curve for the whole system. Three durations: --fast for a state flip, --mid for a panel, --slow for something the size of a page. A component that needs a fourth is usually doing two things.

Every animation in the package is gated behind motion-safe, and the keyframe layer carries one reduced-motion rule that stops anything marked data-m22-animated. A reader who asked for less motion gets the end state, not a faster version of the same move.

Motion tokens

Motion tokens tokens
TokenValueNotes
--easecubic-bezier(0.2, 0.7, 0.3, 1)─── Motion ───
--fast0.13s
--mid0.22s
--slow0.34s
--ease-out-expovar(--ease)
--duration-fastvar(--fast)
--duration-basevar(--mid)
--duration-slowvar(--slow)