Components/Skeleton

Feedback component

Skeleton

General-purpose loading placeholder that pulses with the slab-skeleton-pulse animation. Three exports: Skeleton (single block), SkeletonText (variable-width lines), SkeletonCard (full card shape).

Display3 exportsComposablePulse animation
components/feedback/Skeleton.jsx
Skeleton — single block
width · height · radius props
SkeletonText — paragraph lines
lines prop — auto-varied widths for natural feel
SkeletonCard — full card shape
header + body skeleton — matches Card component layout
Props
PropTypeDefaultDescription
width (Skeleton)string"100%"CSS width.
height (Skeleton)number | string16CSS height (px if number).
radius (Skeleton)stringvar(--radius-sm)Border-radius override.
inline (Skeleton)booleanfalsedisplay: inline-block for use inside text.
lines (SkeletonText)number3Number of skeleton lines to render.
gap (SkeletonText)number8Gap between lines in px.
header (SkeletonCard)booleantrueShow lime-height header bar placeholder.
lines (SkeletonCard)number3Body text lines.
Usage
import { Skeleton, SkeletonText, SkeletonCard } from "components/feedback/Skeleton";

// Single block
<Skeleton height={24} width="60%" />

// Paragraph
<SkeletonText lines={4} />

// Full card
<SkeletonCard lines={3} />

// Conditional — show skeleton while loading
{isLoading ? <SkeletonCard /> : <Card header="Stats">…</Card>}