Skeleton

Skeleton ocupa o espaço que o conteúdo real terá enquanto carrega. Combine forma e comprimento das linhas finais para a página não saltar; use Spinner quando não houver layout significativo a reservar.

Exemplos

Estado de carregamento de perfil

Um círculo e barras de texto desiguais mostram o que virá preservando a altura final da linha. Repetir barras genéricas de largura total torna o conteúdo em carregamento menos previsível.

Estado de carregamento de card

Use as mesmas proporções de mídia e texto do card carregado. Skeleton é uma prévia estrutural temporária, não decoração adicionada depois que o layout já está definido.

Quando usar

Use Skeleton quando a página conhece a forma do conteúdo que ainda está carregando.

Prefira outro componente quando:

  • A espera não tem forma final de conteúdo para preservar — use Spinner.
  • A operação tem progresso mensurável — use Progress.
  • Um resultado falhou ou precisa de explicação — use Alert ou um estado vazio explícito.

Acessibilidade

  • Skeleton é aria-hidden="true", então nunca anuncia uma barra de carregamento sem significado a leitores de tela.
  • Coloque o estado de carregamento na região ao redor quando isso importar, como aria-busy="true" no contêiner e uma mensagem de status próxima quando a espera não estiver óbvia.
  • O shimmer respeita prefers-reduced-motion parando a animação. Não adicione outra animação que devolva movimento a quem optou por reduzi-lo.
  • Skeleton é um <span> sem interação por teclado ou comportamento de foco.

API e código

NomeTipoObrigatóriaDescrição
widthnumber | stringPlaceholder width. Default `"100%"`.
heightnumber | stringPlaceholder height. Default `14`.
circlebooleanRender a circle using `height` as its diameter.

Use a altura de um círculo como seu diâmetro; dê às barras larguras parecidas com o conteúdo substituído:

html
<div aria-busy="true">
  <span
    class="lyra-skeleton lyra-skeleton--circle"
    style="width: 40px; height: 40px"
    aria-hidden="true"
  ></span>
  <span class="lyra-skeleton" style="width: 55%; height: 14px" aria-hidden="true"></span>
  <span class="lyra-skeleton" style="width: 85%; height: 12px" aria-hidden="true"></span>
</div>

<lyra:skeleton> Gerado do lyra-ds/blade v0.10.0.

PropPadrãoObrigatóriaValores de exemplo
width'100%'
height14
circlefalse
blade
<lyra:skeleton width="240px" :height="14" />