Skeleton
Use to show a placeholder while content is loading.
<div class="flex w-full max-w-sm flex-col gap-3">
<twig:ui:Skeleton class="aspect-video w-full rounded-xl" />
<div class="flex flex-col gap-2">
<twig:ui:Skeleton class="h-4 w-full" />
<twig:ui:Skeleton class="h-4 w-3/4" />
</div>
</div>
Usage
<twig:ui:Skeleton class="h-4 w-[250px]" />
Examples
Avatar
<div class="flex items-center gap-3">
<twig:ui:Skeleton class="size-10 rounded-full" />
<div class="flex flex-col gap-2">
<twig:ui:Skeleton class="h-4 w-[150px]" />
<twig:ui:Skeleton class="h-4 w-[100px]" />
</div>
</div>
Text
<div class="flex w-full max-w-sm flex-col gap-2">
<twig:ui:Skeleton class="h-4 w-full" />
<twig:ui:Skeleton class="h-4 w-full" />
<twig:ui:Skeleton class="h-4 w-2/3" />
</div>
Card
<twig:ui:Card class="w-full max-w-sm">
<twig:ui:Card:Content>
<twig:ui:Skeleton class="aspect-video w-full rounded-lg" />
</twig:ui:Card:Content>
<twig:ui:Card:Header>
<twig:ui:Skeleton class="h-5 w-3/4" />
<twig:ui:Skeleton class="h-4 w-full" />
</twig:ui:Card:Header>
</twig:ui:Card>
Grid
<div class="grid w-full max-w-sm grid-cols-3 gap-2">
<twig:ui:Skeleton class="h-8" />
<twig:ui:Skeleton class="h-8" />
<twig:ui:Skeleton class="h-8" />
</div>
Animations
Set animation to shimmer, pulse or none. Defaults to shimmer.
shimmer
pulse
none
<div class="flex flex-wrap gap-8">
<div class="flex flex-col items-center gap-2">
<twig:ui:Skeleton animation="shimmer" class="h-12 w-24" />
<span class="text-xs text-neutral-500 dark:text-neutral-400">shimmer</span>
</div>
<div class="flex flex-col items-center gap-2">
<twig:ui:Skeleton animation="pulse" class="h-12 w-24" />
<span class="text-xs text-neutral-500 dark:text-neutral-400">pulse</span>
</div>
<div class="flex flex-col items-center gap-2">
<twig:ui:Skeleton animation="none" class="h-12 w-24" />
<span class="text-xs text-neutral-500 dark:text-neutral-400">none</span>
</div>
</div>
Synced shimmer
<twig:ui:Skeleton:Group class="grid w-full max-w-xl grid-cols-3 gap-4 rounded-xl">
<twig:ui:Skeleton class="h-24 rounded-xl" />
<twig:ui:Skeleton class="h-24 rounded-xl" />
<twig:ui:Skeleton class="h-24 rounded-xl" />
</twig:ui:Skeleton:Group>
RTL
<div class="flex flex-wrap gap-8">
<div class="flex items-center gap-3">
<twig:ui:Skeleton class="size-10 rounded-full" />
<div class="flex flex-col gap-2">
<twig:ui:Skeleton class="h-4 w-[150px]" />
<twig:ui:Skeleton class="h-4 w-[100px]" />
</div>
</div>
<div dir="rtl" class="flex items-center gap-3">
<twig:ui:Skeleton class="size-10 rounded-full" />
<div class="flex flex-col gap-2">
<twig:ui:Skeleton class="h-4 w-[150px]" />
<twig:ui:Skeleton class="h-4 w-[100px]" />
</div>
</div>
</div>
API Reference
<twig:ui:Skeleton>
| Prop | Type | Description |
|---|---|---|
animation |
'shimmer' | 'pulse' | 'none' |
The loading animation. Defaults to shimmer |
as |
string |
The HTML tag to render. Defaults to div |
<twig:ui:Skeleton:Group>
| Prop | Type | Description |
|---|---|---|
as |
string |
The HTML tag to render. Defaults to div |