Skeleton
An animated placeholder for content that is loading.
$ npx @beaket/ui add skeletonSource
import { Skeleton } from "@/components/ui/skeleton";
export const AllStates = () => (
<div className="flex flex-col gap-4">
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Text lines</p>
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-5/6" />
<Skeleton className="h-4 w-4/5" />
</div>
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Avatar + text</p>
<div className="flex items-center gap-3">
<Skeleton className="size-10 shrink-0" />
<div className="flex-1 space-y-2">
<Skeleton className="h-4 w-32" />
<Skeleton className="h-3 w-48" />
</div>
</div>
</div>
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Card</p>
<div className="border-border space-y-3 border p-4">
<Skeleton className="h-6 w-32" />
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-3/4" />
<Skeleton className="h-8 w-24" />
</div>
</div>
</div>
);
export default () => (
<div className="space-y-4">
<div className="flex items-center gap-3">
<Skeleton className="size-10 shrink-0" />
<div className="space-y-1.5">
<Skeleton className="h-3.5 w-28" />
<Skeleton className="h-3 w-20" />
</div>
</div>
<div className="space-y-2">
<Skeleton className="h-3.5 w-full" />
<Skeleton className="h-3.5 w-11/12" />
<Skeleton className="h-3.5 w-3/4" />
</div>
</div>
);Examples
All States
Text lines
Avatar + text
Card
Source
import { Skeleton } from "@/components/ui/skeleton";
export default () => (
<div className="flex flex-col gap-4">
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Text lines</p>
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-5/6" />
<Skeleton className="h-4 w-4/5" />
</div>
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Avatar + text</p>
<div className="flex items-center gap-3">
<Skeleton className="size-10 shrink-0" />
<div className="flex-1 space-y-2">
<Skeleton className="h-4 w-32" />
<Skeleton className="h-3 w-48" />
</div>
</div>
</div>
<div className="space-y-2">
<p className="text-fg-muted text-xs font-medium">Card</p>
<div className="border-border space-y-3 border p-4">
<Skeleton className="h-6 w-32" />
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-3/4" />
<Skeleton className="h-8 w-24" />
</div>
</div>
</div>
);Props
No documented props of its own — it takes the native element's attributes.