interface

SkeletonCard

A loading-placeholder card — a glass Surface with an optional thumbnail block and a stack of text bars, swept by a frame-driven shimmer band. The 'still generating / not loaded yet' state before content populates. Rises in on the house spring; the shimmer loops so the placeholder feels live.

$ npx ondajs add skeleton-card

SkeletonCard

A loading-placeholder card — the "still generating / not loaded yet" state shown before real content populates. A glass Surface holds an optional thumbnail block plus a stack of text bars (deterministic, varying widths), with a single highlight band sweeping across them on a frame-driven loop — the same moving-gradient idea as ShimmerSweep, but a soft sheen over the bars rather than a text clip. The card rises in on the house spring; the shimmer keeps moving so the placeholder feels live. Token defaults look great with zero props.

Props

PropTypeDefaultNotes
linesnumber3Number of text bars below the thumbnail.
thumbnailbooleantrueShow the leading avatar / thumbnail block.
shimmerSpeednumber48Frames per shimmer pass; lower is faster.
shimmerColorstring#26262ETravelling sheen color (--onda-border-lit).
barColorstring#121217Resting fill of bars / thumbnail (--onda-surface-2).
delaynumber0Frames before entrance.
widthnumber480Card width.
heightnumberCard height; omit to size to content.
size'hero' | 'heading' | 'subheading' | 'body' | 'caption'Semantic role for base bar height (canvas-aware).
placementregion or {x,y,anchor}Canvas placement.

Usage

TSX
import { SkeletonCard } from './components/onda/skeleton-card/SkeletonCard';

export const LoadingScene = () => (
  <SkeletonCard lines={3} thumbnail placement="center" />
);