Motion

The signature moment of agent-driven UI is interface assembling itself as the stream arrives. That entrance is designed, budgeted, and interruptible — never decorative.

Tokens

TokenValueFor
--auri-motion-fast120msmicro state changes: chip color flips, hovers
--auri-motion-base240mscomponent entrances
--auri-motion-slow400mschoreographed sequences
--auri-motion-stagger40msper-sibling entrance delay, capped at 8
--auri-ease-outcubic-bezier(0.22, 1, 0.36, 1)entrances decelerate

The entrance

Fade plus an 8px rise, transform and opacity only — layout is reserved before the animation starts, so a streaming surface never shoves content you're reading (zero CLS, guaranteed by construction). Siblings that paint in one batch cascade with the stagger:

first
second
third
fourth

Interruptibility

A value that changes mid-transition retargets from wherever it currently is — a Progress fill glides to 7, and if 8 arrives early it bends toward 8 without snapping. Streams don't queue and don't jump.

Reduced motion

prefers-reduced-motion swaps the entrance for a fast opacity fade and drops the stagger entirely — feedback without movement, not silence. Skeleton shimmer freezes to a static tint.