animations that level up user experience
5 minutes read
•
October 30, 2025
5 minutes read
•
October 30, 2025
good animations fly under the radar. they guide attention, confirm actions, and add context without fighting the content
purpose
every movement should answer one question: what does the user gain here? taste is choosing the smallest motion that still communicates clearly
timing
150–250ms for microinteractions and 300–400ms for page transitions or bigger changes. calibrate by feel: if you notice it, it's probably too slow
distance-based
elements that travel farther can take slightly longer, proportional to distance (e.g. a button that moves 10px will take 100ms, a button that moves 20px will take 200ms). map motion to meaning, not flair
easing
use ease-out for quick entrances and ease-in for exits; for natural vibes, prefer cubic-bezier curves. taste lives in these curves — subtle over flashy
hover
bump contrast a bit or add a soft elevation (no layout shift) to indicate the button is interactive. tiny changes feel more trustworthy than big jumps
focus
use a visible outline and a short transition (120–160ms) to indicate the button is focused. clarity beats decoration
pressed
a tiny compression (scale 0.98) with a quick bounce back to confirm the click to indicate the button is pressed. snappy in, calm out
optimistic UI
for fast interactions, flip the button to "saved" with a short animation; on failure, revert with a tiny shake (2–3px). confirm success quickly; make errors noticeable but not dramatic
loading
prefer skeletons over spinners when there's structure; keep shimmer to 600–800ms per cycle so it doesn't scream at the user. taste is reducing stress, especially during wait time
source and destination
when a card becomes a page, move and scale from the card's position (match-move). show where things came from and where they go
hierarchy
animate backdrop and content separately to avoid "teleporting" the user to a new position. keep narrative continuity
respect prefers-reduced-motion. reduce trajectories and keep only quick fades — or no animation — when the user asks for less motion. taste includes respecting user comfort
prefers-reduced-motionapply these principles to the most frequent elements (buttons, lists, forms). tiny consistent improvements create a smoother experience without yelling "look at me"