Skip to content
Extensões

Empty State

Componente para exibição de estados vazios com ícone, título, descrição e ação. Substitui o genérico "Nenhum registro encontrado" por uma experiência informativa e acionável. Dark mode automático via variáveis semânticas.

components/empty-state.css

Uso

Quando e como utilizar cada variante do empty state.

  • Default — Para seções e containers genéricos sem dados.
  • Compact — Para uso dentro de cards, tabelas e seções menores.
  • Large — Para página inteira, como tela de primeiro acesso ou boas-vindas.

Exemplos

Veja abaixo os exemplos interativos do componente em diferentes contextos.

Carregando exemplo...

Anatomia

Estrutura interna do componente e seus elementos.

ParteElementoDescrição
Container.empty-stateWrapper flexbox vertical centralizado
Ícone.empty-state__iconÍcone SVG ou ilustração, cor neutra sutil
Título.empty-state__titleTítulo descritivo, Space Grotesk 20px w600
Descrição.empty-state__descriptionTexto secundário, Inter 14px, max-width 400px
Ação.empty-state__actionBotão CTA opcional

Propriedades

Classes disponíveis para configurar o empty state.

PropriedadeTipoDefaultDescrição
.empty-stateclasseContainer principal do estado vazio.
.empty-state__iconclasseContainer do ícone ou ilustração.
.empty-state__titleclasseTítulo descritivo do estado vazio.
.empty-state__descriptionclasseTexto explicativo complementar.
.empty-state__actionclasseContainer do botão de ação (CTA).
.empty-state--compactclasseVariante compacta para uso em cards e tabelas.
.empty-state--largeclasseVariante grande para página inteira.

Código

Snippets prontos para copiar e usar no seu projeto.

Default com ação

html
<div class="empty-state">
  <div class="empty-state__icon">
    <svg><!-- ícone --></svg>
  </div>
  <h3 class="empty-state__title">Nenhum registro encontrado</h3>
  <p class="empty-state__description">Ainda não há registros nesta seção.</p>
  <div class="empty-state__action">
    <button class="btn btn--primary btn--sm">Criar registro</button>
  </div>
</div>

Compact (dentro de card)

html
<div class="empty-state empty-state--compact">
  <div class="empty-state__icon">
    <svg><!-- ícone --></svg>
  </div>
  <h3 class="empty-state__title">Nenhum anexo</h3>
  <p class="empty-state__description">Arraste arquivos aqui ou clique para upload.</p>
</div>

Large (página inteira)

html
<div class="empty-state empty-state--large">
  <div class="empty-state__icon">
    <svg><!-- ícone --></svg>
  </div>
  <h3 class="empty-state__title">Bem-vindo ao módulo</h3>
  <p class="empty-state__description">Comece criando sua primeira demanda.</p>
  <div class="empty-state__action">
    <button class="btn btn--primary">Começar</button>
  </div>
</div>

Design

Especificações visuais e tokens utilizados.

Especificações

PropriedadeDefaultCompactLarge
Padding48px 24px24px 16px80px 32px
Gap12px8px16px
Ícone48x4832x3272x72
Título20px w60016px w60024px w600
Descrição14px13px15px

Tokens utilizados

ElementoToken
Ícone--icon-base-neutral-subtle
Título--text-base-neutral-default
Descrição--text-base-neutral-secondary

Design System interno do GALES