Press scale
120ms · ease-outPress feedback for every clickable button — a more immediate “got it” signal than hover.
The time dimension of interaction: what easing looks like, how 100ms vs 500ms feels, and which micro-interaction to reach for — all playable.
The same distance, different distributions of time. Hover a card to replay a real element — a toast entering with that curve (springs visibly overshoot). Default to ease-out for UI transitions (fast response, gentle settle); every curve value is copyable.
linear
uniform-speed semantics (progress bars, marquees); almost never right for UI transitions
ease
browser default; the fallback when you have no specific intent
ease-out
entrances — respond fast, settle gently; the default for UI transitions
ease-in
exits — ease in, accelerate away; feels sluggish on entrances
ease-in-out
in-view moves (reorder, swap) — soft on both ends
cubic-bezier(0.2, 0, 0, 1)
system-grade standard curve: instant response, rock-steady settle; dense UIs
cubic-bezier(0, 0, 0, 1)
pure-deceleration entrance — elements arriving from off-screen
cubic-bezier(0.3, 0, 1, 1)
pure-acceleration exit — elements leaving the screen
cubic-bezier(0.34, 1.56, 0.64, 1)
playful overshoot entrance (badges, emoji reactions); use sparingly, careful in B2B
cubic-bezier(0.68, -0.6, 0.32, 1.6)
wind up, then overshoot — emphatic one-shot animations that direct attention
The same move at five durations (same easing). Rule of thumb: micro feedback 100-150ms · standard transitions 200-300ms · attention 400ms+; past 500ms a UI transition is just making people wait.
Live demos of the everyday micro-interactions — hover / click to try; each with when-to-use and copyable CSS.
One list component in all eight states — empty and error states are the line between “professional” and “half-finished”. Full checklist → app-factory playbook 4.2 §3.
Never bare “No data” — say what will live here and give one clear next action
Every animation on this page respects prefers-reduced-motion (falls back to static end states).