Skeleton
Reserve space while application content loads.
Installation
pnpm dlx shadcn@4.18.0 add @siteplane/skeletonComplete the one-time setup first. Registry JSON lists source files and dependencies.
For this page’s examples, also install:
pnpm dlx shadcn@4.18.0 add @siteplane/cardUsage
import { Skeleton } from "@/siteplane/components/skeleton";
<Skeleton className="h-5 w-40" />;Card
Mirror the structure of the card that is loading, so the layout does not shift when the content arrives.
Table
Repeat row placeholders sized like the expected columns while table data loads.
API reference
Skeleton accepts native div props, children and refs. className adds dimensions and shape to the rounded animated surface. There are no size, variant, loading or data props; an empty skeleton has no useful height until you supply it. Native attributes follow HTML div.
Usage notes
Size the placeholders for the expected content and hide them from assistive technology. The surrounding region owns busy state and the loading announcement, as in the first example. Remove placeholders when data settles, then show real content, an empty state or an error. The shared motion stylesheet handles the skeleton animation; do not communicate progress through animation alone.