StealThis .dev

Empty States — Skeleton + spinner + progressive load set

A side-by-side gallery of loading-state primitives for product UIs — shimmering skeletons for list rows, profile cards and table data, an inline spinner button with a pending-to-resolved cycle, a determinate upload progress bar with live percentage, and a staggered progressive content reveal. A segmented switcher highlights and replays each variant, while a single Reload button replays the whole loading-to-loaded sequence with an accessible status line and toast feedback.

在 Lab 開啟
html css vanilla-js
目標: JS HTML

程式碼

Skeleton + spinner + progressive load set

A compact reference board that puts every common loading primitive in one place so you can compare the feel of each pattern. The grid shows shimmering skeletons (a list with avatars, a profile card, and a four-row table), an inline spinner button that toggles a pending state before resolving, a determinate progress bar that animates an upload to 100% with a live percentage, and a progressive reveal of KPI tiles that stagger in one after another.

A segmented control at the top acts as a variant switcher: pick Skeleton, Spinner, Progress, or Reveal to dim the rest of the board, spotlight that primitive, and replay it in isolation — or choose All to see the full set together. The Reload button replays the entire loading → loaded choreography across every panel at once, driving an aria-live status line and a small toast so screen readers and sighted users both get feedback.

Everything is vanilla HTML, CSS, and JavaScript with no dependencies. The shimmer is a single animated gradient, the spinner and progress bar are pure CSS plus a tiny interval, and the reveal uses staggered timers. Motion respects prefers-reduced-motion, the segmented control is arrow-key navigable, and timers are tracked so repeated reloads cancel cleanly without overlapping animations.