‮Skip to content‬
uiify

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

‮Prop‬‮Type‬‮Default‬‮Description‬
variant"pulse" | "shimmer" | "none""pulse"‮Placeholder animation. Reduced motion disables animation and content reveal motion.‬
circlebooleanfalse‮Renders a circular placeholder instead of a rectangular one.‬
heightnumber | string—‮Placeholder height; a number is treated as pixels.‬
loadingbooleantrue‮False 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‬

‮Key‬‮Action‬

‮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