Skip to main content

What it governs

Every transition and animation: how long it takes and how it accelerates. Eleven tokens — seven durations and four easings. Motion is the least-decided foundation — see Open issues for what that leaves unsettled. Treat that as the cost of change: a color token overturns an Invoca decision, a duration token overturns nothing that has been written down.

Vocabulary

Durations are named by length (shortestcomplex) and easings by curve shape (ease-in, ease-out, sharp). Neither names what the value is for, so there is no shared way to say how Titan moves — see TITAN-GAP-16.

Durations

Entering is slower than leaving (225ms vs 195ms), and that asymmetry is deliberate. Arrival needs to be followed; departure needs to get out of the way. A dismissal that takes as long as an appearance feels sluggish, because the user has already moved on.

Easings

Choosing a token

Pair the easing with the direction. ease-out for entering, ease-in for leaving. Reversed, an entrance appears to hesitate and an exit appears to slam. This is the most common motion defect and it is invisible in a static review.

Token reference

Constraints

Retired

Accessibility

Reduced motion is the whole accessibility story for this foundation, and it is not currently implemented anywhere in the token layer.
  • Substitute, do not delete. A drawer that slid in should now appear instantly — it should still appear. Removing the transition must never remove the state change.
  • Large-area movement is the harmful case. Full-screen slides, parallax, and zoom-on-scroll trigger vestibular symptoms. A 150ms color fade on a button does not. When in doubt, keep opacity, drop transform.
  • Nothing flashes more than three times per second (WCAG 2.2 Three Flashes, AA). Loading indicators are the usual risk.
  • Anything that moves for more than five seconds needs a pause control (Pause, Stop, Hide, AA). Indeterminate spinners on long operations are the case to watch.
  • Motion must never be the only indication that something happened. Pair it with a text or state change a screen reader can announce.

Known issues

Motion: open issues

Divergences, open decisions, and undocumented gaps for Motion.
2 core components consume this foundation — derived from token usage in components/core/src/components, not assumed: Card · Dropzone
Last modified on September 7, 2026