Orbit loader
Three dots chasing each other around an orbit while something loads.
Waiting is part of the experience. These loaders and skeletons stay calm, match your colours, and stop animating when users ask for less motion.
17 live assets · React + Tailwind + Motion · restyle to your design tokens
Three dots chasing each other around an orbit while something loads.
Placeholder blocks with a light sweep while content loads.
Typing indicator or compact loader with a screen-reader label: three accent dots that rise and settle one after another in a rolling wave.
Thin progress bar for work of unknown length that you can pin to the page top or drop into a card, with a long and a short accent segment chasing across a tinted track.
Spinning ring whose accent tail fades to transparent behind a rounded head, with a soft glow over a faint track.
Classic activity indicator: a ring of rounded bars where a bright head steps around and each bar fades behind it, in the current text colour with role=status.
Table-shaped loading placeholder with a header, avatar-and-two-line first column and text cells, whose shimmer travels across each row and cascades down; rows and columns are props.
Determinate circular progress whose stroke springs to each value while the centred percentage counts along, morphing into a drawn tick with a soft pulse at completion.
A loader that springs from square to circle to triangle and back, turning as it morphs and settling upright between shapes, with role=status and a screen-reader label.
A chat typing bubble with a two-circle tail that springs out of the sender's corner, breathes while its three dots brighten in turn, and collapses away when typing stops, with stacked initials and a live 'is typing' announcement.
A status line whose text carries a band of light sweeping through it, stepping through optional labels with a soft rise-and-blur swap, behind a small pulsing dot and a polite live region.
A card-shaped skeleton (media, avatar and text lines) under one diagonal shimmer that sweeps the whole card, which cross-fades into the real content and springs to its height when loaded turns true.
Vertical progress for a long job: the running step spins with a live elapsed timer and an optional detail line, finished steps pop into drawn checks and keep their times, and the rail between them fills step by step.
Determinate progress bar that springs to each value with a counting percentage and a travelling glint, estimates time left from the value's real, smoothed pace, flags “Stalled” when nothing moves, and lands on a drawn check.
Aspect-locked image frame behind a softly breathing blurred placeholder (tiny inline image, gradient or dominant colour) that shows a ring only if loading drags on, then sharpens the real image in from blur and a slight zoom.
Corner tray for background uploads with an overall ring and a summary that swaps as work finishes, and a row per file whose ring springs to its progress, becomes a cancel button on hover or focus, morphs into a check when done and offers Retry on failure.
Stale-while-revalidate wrapper that keeps old content in place while it refreshes (dimmed and desaturated under a hairline sweep and an “Updating” chip, only if the refetch outlasts a short delay), then lifts with a soft highlight pass and an “Up to date” check.
With your agent
Use a skeleton when you know the layout that’s coming (a feed, a table) and a spinner or bar when you don’t. Both are here.
They carry a status role and label, so screen readers announce loading without reading out decorative shapes.
More of the library
Guides and articles
Save what you love to a sheet, connect Claude or Cursor, and every screen comes out in your style. Free for 3 days on annual plans, card needed.