Skeleton

Loading placeholders — text, title, controls, and block shapes.

Preview

Live

<span class="skeleton skeleton--title" aria-hidden="true"></span>
<span class="skeleton skeleton--text" aria-hidden="true"></span>
<span class="skeleton skeleton--button" aria-hidden="true"></span>
<span class="skeleton skeleton--block" aria-hidden="true"></span>

Variants

Text / title

Line placeholders for copy.

Controls

Button, pill, badge, chip shapes.

Block

Large content placeholder.

Accessibility

  • Skeletons are decorative — React sets aria-hidden.
  • Announce loading on a parent with aria-busy / live region if needed.
  • Replace skeletons with real content; do not leave them as permanent UI.

API

HTML classes

Class Description
.skeleton Base shimmer.
.skeleton--text / --title Line shapes.
.skeleton--pill / --badge / --chip / --button Control shapes.
.skeleton--block Large block.

React props

From src/core/Skeleton.tsx — extends HTMLAttributes<HTMLSpanElement>.

Prop Type Default Description
variant SkeletonVariant 'text' text | title | pill | badge | button | block | chip.