Skip to content

Skeleton

Placeholder shapes shown while content loads.

Browsers
Chrome 123+Firefox 121+Safari 17.5+
Tier
0
Bundle compressed
317 B
Forced layout budget
0 ms
Axe budget
0
SSR compatible
Yes
Published contract
Test harness

Playground

Skeleton

Text

Profile

Media

Table

Pulse, shimmer, static

Load and reveal

Loading workspace…

API

Skeleton

PropTypeDefaultDescription
variant"pulse" | "shimmer" | "none""pulse"Placeholder animation. Reduced motion disables animation and content reveal motion.
circlebooleanfalseRenders a circular placeholder instead of a rectangular one.
heightnumber | string—Placeholder height; a number is treated as pixels.
loadingbooleantrueFalse reveals children in the same wrapper, preserving dimensions and ref; the selected stylesheet animates the reveal.
widthnumber | string—Placeholder width; a number is treated as pixels.
childrenReactNode—Real content rendered once loading is false.
renderReactElement | ((props, state) => ReactElement)—Replace the rendered element while keeping behavior and accessibility wiring.

Keyboard

KeyAction

Accessibility

Skeleton keeps a stable wrapper while loading and revealing content. Loading placeholders are aria-hidden; the loaded children retain their native semantics. Choose pulse, shimmer or none. Reduced motion disables animation. Describe loading in the enclosing region rather than giving each decorative skeleton a live status.

Styling hooks

data-uiify-skeletondata-statedata-variantdata-shape--uiify-skeleton-w--uiify-skeleton-h