Three spring speeds, exits faster than entrances, text that morphs, touch you can feel.
Every animation comes from one of three springs in lib/springs, so things you never thought about together move at the same pace. Exits run a tier faster than entrances. Nothing animates a keyboard action, and reduced motion keeps the fades and drops the movement.
| Spring | Enter | Exit | Used for |
|---|---|---|---|
| spring.fast | 0.08s · bounce 0 | 0.06s | Hover, focus, checkbox, tooltip |
| spring.moderate | 0.16s · bounce 0 | 0.12s | Dropdown, tabs, switch, sheet |
| spring.slow | 0.24s · bounce 0.12 | 0.16s | Dialog, drawer, landing reveal |
Counts, values and labels that change morph instead of swapping, so the eye keeps its place. The slider value, metric cards and status pills use it.
On a phone, switches, checkboxes, radios, toggles and slider steps answer with a light haptic tick. It is kept to moments with a physical cause, so it stays meaningful.
SkeletonReveal measures the real content and draws its skeleton in exactly the space it will take, so nothing moves when the data arrives. For whole blocks, see Reveal.