Foundation · F4 · Motion

Motion proves — it never decorates.

Verified against Motion §04. Five durations, three curves, one signature beat. One thing moves at a time; the pop is reserved for the single payoff.

§04

Durations

TokenValueUse
--p-dur-micro120msHover, press, toggle
--p-dur-quick200msUI state, small reveal, tooltip
--p-dur-base320msMost entrances, modal, nav
--p-dur-pop480msThe signature burst
--p-dur-scene680msScene transitions, chart draw
§04

Easing curves

Watch each dot to feel the curve. Standard carries everything; Pop overshoots (the signature); Exit leaves faster than it arrives.

Standardcubic-bezier(.2,.7,.2,1)
Pop / overshootcubic-bezier(.34,1.56,.64,1)
Exitcubic-bezier(.4,0,1,1)
Signature

The pop

The Wild Burst scales in with a confident overshoot, then settles. Reserved for the payoff — a result, a logo reveal, a success. Max once per piece.

480ms · ease-pop · scales 0 → 1.18 → 1, holds still

Live

Interaction samples

Hover the button (lift + poppy glow, 120ms). Toggle the switch (knob slides on the pop curve).

Gate

Interaction spec & reduced motion

InteractionMotionDuration · easeReduced-motion
Hover / pressLift / scale120ms · standardColor only, no transform
FocusPoppy ring120ms · standardInstant ring
RevealSlide up (opacity stays 1)320ms · standardNo transform
Modal / toastScale-in + scrim320ms · popInstant appear
The popBurst overshoot480ms · popStatic end-state holds the fact

Global floor: prefers-reduced-motion: reduce collapses durations to ~0 (defined in tokens.css). Content is never hidden by motion — reveals keep opacity 1 and only translate, so a paused compositor still shows everything.