UI

Skeleton

Placeholder animado com o formato do conteúdo que ainda está carregando.

Instalação

npx shadcn@latest add @lenstech/skeleton

Uso

import { Skeleton } from "@/components/ui/skeleton"
<Skeleton className="h-4 w-48" />

Defina tamanho e forma com classes utilitárias (h-*, w-*, rounded-full…) para imitar o conteúdo final.

Acessibilidade

O Skeleton é decorativo (aria-hidden). Marque o contêiner que está carregando com aria-busy="true" e, se necessário, um aria-label como "Carregando clientes", para que leitores de tela saibam o que está acontecendo.

Exemplos

Card

Lista

Trocando pelo conteúdo

Renderize o Skeleton enquanto os dados carregam e substitua pelo conteúdo real, mantendo as mesmas dimensões para a página não "pular".

Quando usar

  • Use no carregamento inicial de listas, cards e painéis cujo formato já é conhecido.
  • Não use para ações do usuário (salvar, enviar) — use isPending no Button ou um Spinner.
  • Não use para tarefas longas com progresso mensurável — use Progress.

API

Skeleton

Aceita todas as props de um <div>. Não há props próprias: o formato vem de className.

Prop

Type

On this page