Skip to main content
Substrate has no named duration tokens — no fast/normal/slow steps and no --ease-* set. Motion is one continuous product, from generated/global/css/tokens.gen.css:

The three motion variables

Components don’t pick from a duration menu; their style descriptors carry a duration multiple, so a component’s transition is duration-base × motionFactor × multiplier. In generated CSS this surfaces as --surface-transition-duration, --surface-transition-delay, and --surface-transition-timing.

Reduced motion

Reduced motion is handled by the runtime, not by a generated media-query block: when prefers-reduced-motion: reduce matches, the runtime sets motionFactor to 0, which zeroes every resolved duration through the single formula above. Because motionFactor is a user preference, motion sensitivity is also adjustable between 0 and 1 — it is not a binary switch.
A brand can constrain how much motion users can dial in with flexibility.motion (min/max) — for example pinning max below 1 for a deliberately restrained product.

Config: Motion

How to author duration-base and easing in a brand config.