Skip to main content

Skeleton

Animated loading placeholders that match the shape of content before data arrives. Uses role="status" + .skeleton classes from @primus/ui-core — no JavaScript required.

Preview · Skeleton

Code​

<!-- Text lines -->
<div role="status" class="skeleton line"></div>
<div role="status" class="skeleton line" style="width: 60%"></div>
<div role="status" class="skeleton line-sm"></div>

<!-- Avatar circle -->
<div role="status" class="skeleton avatar"></div>
<div role="status" class="skeleton circle"></div>

<!-- Image/card box -->
<div role="status" class="skeleton box"></div>

<!-- Custom size -->
<div role="status" class="skeleton line" style="height: 2rem; width: 40%; border-radius: 4px"></div>

<!-- Stat card skeleton -->
<div class="card" style="padding:1rem">
<div role="status" class="skeleton line-sm" style="width:50%;margin-bottom:0.5rem"></div>
<div role="status" class="skeleton line" style="height:2rem;width:70%;margin-bottom:0.5rem"></div>
<div role="status" class="skeleton line-sm" style="width:40%"></div>
</div>

Skeleton classes​

ClassShapeDimensions
.skeleton.lineFull-width line100% × 1rem, rounded
.skeleton.line-smNarrow line100% × 0.75rem, rounded
.skeleton.avatarCircle2.5rem × 2.5rem
.skeleton.circleCircle (alias)2.5rem × 2.5rem
.skeleton.boxRectangle100% × 8rem

All classes apply the shimmer animation automatically. Override size with inline styles.

Version history

See the Changelog for version history and breaking changes.