Skeleton

Loading placeholder with shimmer animation for content loading states.

Text Lines

Base

ClassDescription
.ui-skeletonBase class

Variant

ClassValue
.ui-skeleton--texttext
.ui-skeleton--headingheading
.ui-skeleton--circlecircle
.ui-skeleton--rectrect
.ui-skeleton--staticstatic

Pulse

ClassDescription
.ui-skeleton--pulsepulse

Override these CSS custom properties to customize the component.

TokenDefaultDescription
--ui-skeleton-bg var(--ui-color-bg-inset) Background color
--ui-skeleton-shimmer var(--ui-skeleton-shimmer) Shimmer
--ui-skeleton-radius var(--ui-radius-sm) Corner radius

Shapes

<div class="ui-flex ui-gap-2 ui-items-start">
  <div class="ui-skeleton ui-skeleton--circle"></div>
  <div style="flex: 1; display: flex; flex-direction: column; gap: var(--ui-space-1);">
    <div class="ui-skeleton ui-skeleton--heading"></div>
    <div class="ui-skeleton ui-skeleton--text"></div>
  </div>
</div>

Card Skeleton

<div class="ui-card" style="width: 304px;">
  <div class="ui-skeleton ui-skeleton--rect"></div>
  <div style="padding: var(--ui-space-2); display: flex; flex-direction: column; gap: var(--ui-space-1);">
    <div class="ui-skeleton ui-skeleton--heading"></div>
    <div class="ui-skeleton ui-skeleton--text"></div>
    <div class="ui-skeleton ui-skeleton--text" style="width: 70%;"></div>
  </div>
</div>

Pulse Animation

<div class="ui-skeleton ui-skeleton--text ui-skeleton--pulse"></div>

Static

<!-- No animation, just a placeholder block. -->
<div class="ui-skeleton ui-skeleton--static" style="width: 200px;"></div>