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
| Token | Value | For |
|---|---|---|
--auri-motion-fast | 120ms | micro state changes: chip color flips, hovers |
--auri-motion-base | 240ms | component entrances |
--auri-motion-slow | 400ms | choreographed sequences |
--auri-motion-stagger | 40ms | per-sibling entrance delay, capped at 8 |
--auri-ease-out | cubic-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:
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.