Motion
Data moves. Chrome does not.
Tokens
--duration-fast
150ms
Hover color and shadow. The only motion chrome is allowed.
--duration-normal
250ms
Overlay enter, result pop, state swaps.
--duration-slow
400ms
Large panels and full-surface reveals.
--duration-ambient
2000ms
Live-signal loops: pings, processing borders, garden staggers.
--ease-standard
cubic-bezier(0.4, 0, 0.2, 1)
Everything by default.
--ease-out-soft
cubic-bezier(0.16, 1, 0.3, 1)
Entrances that should land gently.
Overlays enter through the animation layer
Every consumer must import tw-animate-css once, or the primitives' enter and exit classes silently no-op.
Live signal may move
Agent thinking
Scan progress, asymptotic
Indexing contributions
Connecting chase
Connecting to search agent
Plain spinner, last resort
Reduced motion
Every animated component listens to prefers-reduced-motion and renders its final state instead.