Componentes
Table
betaMarcação semântica de tabela, já com rolagem horizontal contida. Para ordenar, selecionar ou paginar, use Data Table.
Ainda não é estável porque Rota não varrida pelo sensor. Ausência de medição não é aprovação. O contrato de maturidade explica o que cada requisito exige.
@voxmente/ui/components/ui/table
Orientação
Marcação semântica de tabela, já com rolagem horizontal contida. É a estrutura; a operação sobre a lista é o Data Table.
Quando usar
- Os dados são tabulares de verdade: mesmas colunas para todas as linhas, e a comparação entre linhas é o ponto.
- A lista é curta o bastante para não precisar de ordenação, seleção nem paginação.
- A leitura importa mais que a operação — um resumo dentro de uma tela maior.
Quando não usar
- Quando o usuário precisa ordenar, selecionar ou paginar: isso é Data Table, e reimplementar à mão custa mais.
- Para layout. Tabela é para dado tabular; grade de cartões é grid.
- Quando cada item tem forma própria: aí a peça é Item, ou Description List para um registro só.
Playground
<Table>
<TableHeader>
<TableRow>
<TableHead>Aluno</TableHead>
<TableHead>Progresso</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Marina Alves</TableCell>
<TableCell>82%</TableCell>
</TableRow>
</TableBody>
</Table>Anatomia
As partes deste componente e como se aninham. A árvore vem das demonstrações desta página, então descreve um exemplo que renderiza.
Table
└─ TableHeader
└─ TableRow
└─ TableHead
└─ TableBody
└─ TableRow
└─ TableCell
└─ TableRow
└─ TableCell
└─ TableFooter
└─ TableRow
└─ TableCellUso
Marcação semântica pura: cabeçalho, corpo e linhas. Sem ordenação, seleção ou paginação — para isso existe o data-table.
Rolagem horizontal
Table já embrulha o <table> num contêiner com overflow-x-auto. Não repita esse contêiner, e não envolva a tabela num pai com overflow-hidden — ele corta a rolagem em vez de habilitá-la.
Rodapé
TableFooter ganha fundo próprio e fica reservado para totais e resumos, não para mais linhas de dado.
Legenda
TableCaption fica fora da grade visual, abaixo da tabela — use para uma nota curta, não para título de seção.
Linha selecionada
TableRow reage a data-state="selected" e a aria-expanded sozinha — não escreva o destaque na mão em className.
Acessibilidade
O que o componente já garante, e o que continua sendo responsabilidade da tela.
- A região que rola horizontalmente precisa ser alcançável por teclado. O sensor registrou
scrollable-region-focusablenesta página — é um achado real, não hipótese. - Cabeçalho de coluna é cabeçalho de verdade, para que cada célula seja anunciada com o nome da coluna.
- Em 390 px a tabela rola; verifique que a rolagem é da tabela e não da página inteira.
Em contexto de produto
Onde isto aparece numa tela real da Vox Mente, e não numa vitrine.
No painel do professor a tabela lista as turmas com pessoa, progresso e estado — leitura, sem operação.
Ver o painel do professorComponentes relacionados
Vizinhos que resolvem o problema parecido. Os links são resolvidos contra o registro.
Referência da API
Extraída do TypeScript de @voxmente/ui a cada build. Se divergir do código, o código mudou.
Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow não têm props próprias — aceitam apenas as props herdadas, incluindo className e os atributos de DOM.
Origem do dado
- Orientação, acessibilidade e relacionados: documentação
- Anatomia: exemplo desta página
- Demonstrações e playground: componente real de @voxmente/ui
- Referência da API: TypeScript do pacote
- Cor, espaçamento e raio das demonstrações: tokens de theme.css