Pular para o conteúdo

Buscar no Feitio

↵ abre o primeiro↑↓ escolheEsc fecha

Table

A tabela organiza muitos itens do mesmo tipo em linhas e colunas, para comparar e agir. No mobile, cada linha vira um cartão.

Nesta página

Playground

NomeQuandoSituaçãoDisparosAções
Backup semanalDomingo, 3hEm dia48Editar Backup semanal
Regar as plantasTerça, 9hAtrasado3Editar Regar as plantas
Densidade
Legenda
Linhas
Fundo
HTML
<div style="inline-size: 100%"><div class="feitio-table-scroll" tabindex="0" role="region" aria-label="Nome"><table class="feitio-table"><thead><tr><th scope="col">Nome</th><th scope="col">Quando</th><th scope="col">Situação</th><th scope="col" data-align="end">Disparos</th><th scope="col"><span class="feitio-visually-hidden">Ações</span></th></tr></thead><tbody><tr><td class="title">Backup semanal</td><td data-label="Quando">Domingo, 3h</td><td data-label="Situação"><span class="feitio-tag" data-status="ok"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-check"></use></svg>Em dia</span></td><td data-align="end" data-label="Disparos">48</td><td class="actions"><a class="feitio-button" href="#playground" data-size="small">Editar<span class="feitio-visually-hidden"> Backup semanal</span></a></td></tr><tr><td class="title">Regar as plantas</td><td data-label="Quando">Terça, 9h</td><td data-label="Situação"><span class="feitio-tag" data-status="warn"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-warn"></use></svg>Atrasado</span></td><td data-align="end" data-label="Disparos">3</td><td class="actions"><a class="feitio-button" href="#playground" data-size="small">Editar<span class="feitio-visually-hidden"> Regar as plantas</span></a></td></tr></tbody></table></div></div>

Quando usar

Quando não usar

Exemplos

Agendamentos
NomeQuandoSituaçãoDisparosAções
Backup semanalDomingo, 3hEm dia48Editar backup semanal
Regar as plantasTerça, 9hAtrasado3Editar regar as plantas
Relatório do mêsDia 1, 8hPausado1.204Editar relatório do mês

Uma tabela de trabalho

Título, cabeçalho com o traço de tinta, números à direita e a ação de cada linha no fim.

Mostrar código
HTML
<div class="feitio-table-scroll" tabindex="0" role="region" aria-labelledby="agendamentos">
  <table class="feitio-table">
    <caption id="agendamentos">Agendamentos</caption>
    <thead><tr><th scope="col">Nome</th>…<th scope="col" data-align="end">Disparos</th></tr></thead>
    <tbody><tr><td class="title">Backup semanal</td>…<td data-align="end" data-label="Disparos">48</td></tr></tbody>
  </table>
</div>
Agendamentos (2)
NomeQuandoSituaçãoDisparosAções
Backup semanalDomingo, 3hEm dia48Editar backup semanal
Regar as plantasTerça, 9hAtrasado3Editar regar as plantas
Relatório do mêsDia 1, 8hPausado1.204Editar relatório do mês

No mobile

Na caixa com menos de 40rem, cada linha vira um cartão: o nome em cima, cada valor com o nome da coluna ao lado (data-label), as ações embaixo.

Mostrar código
HTML
<td class="title">Backup semanal</td>
<td data-label="Quando">Domingo, 3h</td>
TarefaPrazo
Revisar o contrato10 nov
Trocar as fotos14 nov

Ordenar pelo cabeçalho

A coluna que ordena é um link: o servidor devolve a página ordenada. A coluna ordenada leva aria-sort e a seta.

Mostrar código
HTML
<th scope="col" aria-sort="ascending"><a href="?ordem=prazo">Prazo…</a></th>
SelecionarTarefaPrazo
Revisar o contrato10 nov
Trocar as fotos14 nov

Ação em lote

Uma caixa por linha e as ações do lote em cima, em botões pequenos. É um formulário: as caixas marcadas vão junto com o botão apertado.

Mostrar código
HTML
<form action="/tarefas/lote" method="post">
  <button type="submit" name="acao" value="concluir" class="feitio-button" data-size="small">Concluir selecionadas</button>
  …
  <td class="select"><input type="checkbox" name="ids" value="12" aria-label="Selecionar revisar o contrato"></td>
</form>

Sem linhas, a tabela vira um EmptyState, no lugar das linhas. Nunca um cabeçalho sozinho, sem nada embaixo.

Anatomia

Agendamentos
NomeDisparosAções
Backup48Editar
  1. Título (caption): o nome da tabela, dito pelo leitor de tela.
  2. Cabeçalho: texto suave, com o traço de tinta embaixo.
  3. Linha: separada da próxima por uma linha fina.
  4. Números à direita, com algarismos de mesma largura.
  5. Ação da linha: botão pequeno, no fim.

Estados

Bons e maus padrões

Faça assim

ItemValor
Fotos1.204
Vídeos38

Números à direita: as casas se alinham e a comparação é de olho.

Não faça

ItemValor
Fotos1.204
Vídeos38

Tudo centralizado: os números não se alinham.

Faça assim

BackupEditar

A ação com palavra, pequena, no fim da linha.

Não faça

Backup
Plantas

Listras alternadas e ações só com ícone: barulho, e ninguém sabe o que o ícone faz.

Como escrever

Acessibilidade

Atributos

AtributoValoresPara quê
class="feitio-table"obrigatórioLinhas finas, cabeçalho com o traço de tinta, números de mesma largura.
class="feitio-table-scroll" tabindex="0"em voltaMede a própria largura: estreita, vira cartões; média, rola. Com tabindex="0", role="region" e um nome.
class="title"na célula do nomeO título do cartão no mobile.
data-labelnas outras célulasO nome da coluna, ao lado do valor no cartão.
data-align="end"na coluna de númerosNúmeros à direita.
class="actions"na célula das açõesBotões pequenos, no fim.
aria-sort"ascending", "descending"Na coluna ordenada.
Topo