Skeleton Screen Generator
Compose a loading skeleton from avatars, headings, text lines, images and buttons, set the shimmer and radius, and copy ready HTML + CSS with a dark-mode variant.
Blocks
Drag a row to reorder, or use the arrows. Every block has its own size controls.
Style
Preview
HTML
CSS
How to build a skeleton screen
- Add the blocks that match your real layout — a header row with avatar, a title, a few text lines, an image, a button — and drag them into the right order.
- Match your design system: base and highlight colours, corner radius, gap and the shimmer speed. Flip the dark-mode preview to check both themes.
- Copy the HTML and CSS, or download a self-contained demo page, and swap the skeleton for real content once your data arrives.
FAQ
Why use a skeleton instead of a spinner?
A skeleton shows the shape of the content that is coming, so the wait feels shorter and the page does not jump when data lands. Spinners work better for short, unpredictable waits such as a form submit.
Is the shimmer accessible?
Mark the skeleton container with aria-hidden="true" and announce loading state separately with aria-busy or a live region. The generated CSS also stops the animation under prefers-reduced-motion.
How do I make the skeleton match my real component?
Measure the real thing: use the same line height for text bars, the same avatar diameter and the same image aspect ratio. A skeleton that shifts layout when it is replaced is worse than none.