Skip to content

Skeleton

Purpose

Skeleton components provide animated placeholders while content is loading:

  • Base Skeleton for custom shapes
  • Pre-built variants for common patterns
  • Consistent pulse animation

When to use

Use Skeleton for:

  • Loading states in lists and tables
  • Placeholder content during data fetching
  • Improving perceived performance

Basic usage

Base Skeleton

tsx
import { Skeleton } from '@/shared/ui/components/Skeleton'

// Custom shape
<Skeleton className="h-12 w-12 rounded-full" />  // Avatar
<Skeleton className="h-4 w-[200px]" />           // Text line
<Skeleton className="h-32 w-full" />             // Image

SkeletonText

Multiple lines of text placeholder.

tsx
import { SkeletonText } from '@/shared/ui/components/Skeleton'

<SkeletonText lines={3} />

SkeletonCard

Card-shaped skeleton with optional header/footer.

tsx
import { SkeletonCard } from '@/shared/ui/components/Skeleton'

<SkeletonCard showHeader showFooter />

SkeletonTable

Table skeleton with configurable rows and columns.

tsx
import { SkeletonTable } from '@/shared/ui/components/Skeleton'

<SkeletonTable rows={5} columns={4} showHeader />

SkeletonList

List of skeleton items.

tsx
import { SkeletonList } from '@/shared/ui/components/Skeleton'

<SkeletonList count={5} showAvatar />

Props

Skeleton

PropTypeDescription
classNamestringShape and size classes
styleCSSPropertiesInline styles

SkeletonText

PropTypeDefaultDescription
linesnumber3Number of lines
classNamestring-Container class

SkeletonCard

PropTypeDefaultDescription
showHeaderbooleantrueShow header skeleton
showFooterbooleanfalseShow footer skeleton
classNamestring-Container class

SkeletonTable

PropTypeDefaultDescription
rowsnumber5Number of rows
columnsnumber4Number of columns
showHeaderbooleantrueShow header row
classNamestring-Container class

SkeletonList

PropTypeDefaultDescription
countnumber3Number of items
showAvatarbooleanfalseShow avatar placeholder
classNamestring-Container class

Notes

  • Uses Tailwind's animate-pulse for consistent animation
  • Compose base Skeleton for custom loading states
  • Match skeleton dimensions to actual content for smooth transitions