Skeleton
Loading placeholders — layouts, animation variants, SkeletonText, and table-row lists.
Skeleton
Card skeleton
Profile skeleton
Animation variants
pulse is the default — quiet opacity oscillation. shimmer sweeps a soft gradient across the surface, often perceived as smoother on large blocks like hero images or card previews. none renders a static placeholder for snapshots or already-animated contexts. All three respect prefers-reduced-motion — motion is suppressed automatically when the OS requests it.
variant="pulse"
variant="shimmer"
variant="none"
SkeletonText
Renders lines stacked text placeholders with naturally varied widths — the last line is always shorter to mimic a paragraph ending mid-line. Replaces the recurring "3 hand-rolled Skeletons in a column" pattern.
lines=3 (default)
lines=5
lines=4 · shimmer
Loading list (table rows)
Stacked rows mimicking a data table during fetch. Use the same row count as the eventual data to avoid layout shift when the real content arrives.