Padrões

Skeleton

Placeholder animado para estados de carregamento. Substitui o spinner em telas com estrutura conhecida, reduzindo a percepção de espera.

Anatomia

Feed
1
2
3
1

Skeleton circular

rounded-full. Usado em avatars. Border-radius espelha o do elemento real — nunca use rounded para avatar.

2

Skeleton de texto

Altura fixa (h-2.5 a h-3.5). Widths variadas (40–75%) para evitar aparência de bloco uniforme. Sempre rounded.

3

Skeleton de imagem

aspect-square ou altura fixa. rounded-xl espelha a capa. O shimmer (::after) percorre todos em 1.4s — nunca altere a duração.

Token base

Classe .skeleton

position: relative overflow: hidden background: #1a1a1a

::after — shimmer

background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.04) 50%, transparent 100%) animation: shimmer 1.4s ease-in-out infinite

@keyframes shimmer

0% { translateX(-100%) } 100% { translateX(100%) }

Regra

Nunca use cor diferente de #1a1a1a. Border-radius espelha o do elemento real.

Coleção (ColecaoSkeleton)

Saudação + hero card + grid 3 colunas.

Código

{'<'}ColecaoSkeleton {'/>'} skeleton h-3 w-32 rounded mb-2 skeleton h-7 w-24 rounded mb-4 skeleton rounded-2xl h-[104px] mb-6 grid grid-cols-3 gap-px skeleton aspect-square (×9)

Listas (ListasSkeleton)

Grid 2 colunas com capa quadrada + título + artista.

Código

{'<'}ListasSkeleton {'/>'} px-4 grid grid-cols-2 gap-3 mt-1 skeleton rounded-xl aspect-square skeleton h-3 w-4/5 rounded mt-2 skeleton h-2.5 w-3/5 rounded mt-1.5 (×8 itens)

Feed (FeedSkeleton)

Avatar + nome + imagem full-width + ações e legenda.

Código

{'<'}FeedSkeleton count={3} {'/>'} border-b border-[#1a1a1a] skeleton w-9 h-9 rounded-full skeleton h-3 w-28 rounded skeleton h-2.5 w-20 rounded skeleton aspect-square w-full skeleton h-6 w-6 rounded-full (×2) skeleton h-3 w-40 rounded skeleton h-2.5 w-24 rounded

List Item

Linha de lista com capa à direita. Usado em GeneroDiscos e DiscoDetalhe relacionados.

Código inline

flex items-center gap-3 px-4 py-3 flex-1 space-y-2 skeleton h-3.5 rounded w-2/3 skeleton h-3 rounded w-1/2 skeleton h-2.5 rounded w-2/5 skeleton w-12 h-12 rounded-lg

Regras

Quando usar skeleton vs spinner

Skeleton → estrutura da tela é conhecida Spinner → conteúdo imprevisível ou ação pontual

Border-radius

Espelha o elemento real. texto → rounded (6px) capa → rounded-lg (8px) ou rounded-xl (12px) avatar → rounded-full

Larguras dos textos

Variar entre w-1/2, w-3/5, w-4/5 para evitar aparência de bloco uniforme.

Duração

1.4s ease-in-out infinite Não alterar — garante consistência perceptiva.