Skip to content
Extensões

List Group

Listas estilizadas com suporte a items ativos, desabilitados, clicáveis, cores contextuais, badges, ícones e layouts alternativos. Dark mode automático via variáveis semânticas.

components/list-group.css

Uso

Listas de items com interação e feedback visual. Mais estruturado que uma lista HTML nativa, menos complexo que uma table.

  • Simples — Lista de opções, itens de navegação, resultados.
  • Com badges — Contadores, status, quantidade de itens.
  • Com ícones e descrição — Menus de navegação com ícone + título + subtexto.
  • Cores contextuais — Sucesso, aviso, erro, informação.
  • Flush — Sem bordas externas para uso dentro de cards ou painéis.
  • Bordered — Borda colorida à esquerda indica status ou categoria.
  • Horizontal — Items lado a lado para tags ou filtros.

Exemplos

Básico, estados, badges, cores, conteúdo rico, flush, bordered e horizontal.

Carregando exemplo...

Anatomia

Estrutura interna do componente.

ParteElementoDescrição
Container.list-group<ul> ou <div> flex column com border-radius
Item.list-group__item<li>, <a> ou <button> com padding e borda
Ícone.list-group__iconContainer para ícone à esquerda (20×20)
Conteúdo.list-group__contentWrapper flex-1 para título e texto
Título.list-group__titleTexto principal (medium weight)
Texto.list-group__textDescrição secundária (13px)
Badge.badgeComponente Badge existente — alinha à direita via auto margin

Propriedades

Classes, estados e atributos disponíveis.

PropriedadeTipoDefaultDescrição
.list-groupclasseContainer da lista (flex column, sem list-style).
.list-group__itemclasseItem individual com padding, borda e fundo.
.list-group__item--actionclasseItem clicável com hover e cursor pointer.
.list-group__item--activeestadoItem ativo — fundo e texto brand, borda destacada.
.list-group__item--disabledestadoItem desabilitado — opacidade reduzida, sem interação.
.list-group__item--successclasseItem contextual verde — aprovado, concluído.
.list-group__item--warningclasseItem contextual amarelo — pendente, em análise.
.list-group__item--dangerclasseItem contextual vermelho — erro, reprovado.
.list-group__item--infoclasseItem contextual azul — informativo.
.list-group__iconclasseÍcone à esquerda do item (20×20).
.list-group__contentclasseWrapper do conteúdo principal (flex 1).
.list-group__titleclasseTítulo do item (medium weight).
.list-group__textclasseTexto secundário (13px, cor secondary).
.list-group--flushclasseRemove bordas externas e border-radius.
.list-group--horizontalclasseItems lado a lado em vez de empilhados.
.list-group--borderedclasseBorda colorida à esquerda indica status.

Código

Snippets prontos para copiar e usar.

Básico

html
<ul class="list-group">
  <li class="list-group__item">Primeiro item</li>
  <li class="list-group__item">Segundo item</li>
  <li class="list-group__item">Terceiro item</li>
</ul>

Com estados

html
<ul class="list-group">
  <li class="list-group__item list-group__item--active">Ativo</li>
  <li class="list-group__item list-group__item--action">Clicável</li>
  <li class="list-group__item list-group__item--disabled">Desabilitado</li>
</ul>

Com badges

html
<ul class="list-group">
  <li class="list-group__item list-group__item--action">
    Caixa de entrada
    <span class="badge badge--accent">14</span>
  </li>
  <li class="list-group__item list-group__item--action">
    Enviados
    <span class="badge badge--neutral">3</span>
  </li>
</ul>

Conteúdo rico (ícone + título + descrição + badge)

html
<ul class="list-group">
  <li class="list-group__item list-group__item--action">
    <span class="list-group__icon">
      <svg><!-- ícone --></svg>
    </span>
    <span class="list-group__content">
      <span class="list-group__title">Produtores</span>
      <span class="list-group__text">Cadastro e consulta</span>
    </span>
    <span class="badge badge--accent">248</span>
  </li>
</ul>

Cores contextuais

html
<ul class="list-group">
  <li class="list-group__item list-group__item--success">Aprovado</li>
  <li class="list-group__item list-group__item--warning">Pendente</li>
  <li class="list-group__item list-group__item--danger">Reprovado</li>
  <li class="list-group__item list-group__item--info">Informativo</li>
</ul>

Flush (sem bordas externas)

html
<ul class="list-group list-group--flush">
  <li class="list-group__item">Item</li>
  <li class="list-group__item">Item</li>
</ul>

Bordered (indicador lateral)

html
<ul class="list-group list-group--bordered">
  <li class="list-group__item list-group__item--active">Brand</li>
  <li class="list-group__item list-group__item--success">Sucesso</li>
  <li class="list-group__item list-group__item--warning">Aviso</li>
  <li class="list-group__item list-group__item--danger">Erro</li>
</ul>

Horizontal

html
<ul class="list-group list-group--horizontal">
  <li class="list-group__item list-group__item--active">Todos</li>
  <li class="list-group__item list-group__item--action">Bovinos</li>
  <li class="list-group__item list-group__item--action">Suínos</li>
</ul>

Design

Especificações visuais e tokens utilizados.

Especificações

PropriedadeValor
Border radiusvar(--radius-md) (8px)
Item padding12px 16px
Item font-size14px
Item gap12px (entre ícone, conteúdo e badge)
Ícone20×20
Texto secundário13px

Tokens utilizados

EstadoBackgroundBordaTexto
Default--surface-base-neutral-container-default--border-base-neutral-default--text-base-neutral-default
Hover--surface-base-neutral-container-hover
Active--surface-base-brand-container-low--border-base-brand-default--text-base-brand-default
Success--surface-base-success-container-low--text-base-success-default
Warning--surface-base-warning-container-low--text-base-warning-default
Danger--surface-base-error-container-low--text-base-error-default

Dark Mode

O componente inverte automaticamente via tokens semânticos. Cores contextuais e estados são preservados.

Design System interno do GALES