Componentes
Data Table
betaA camada de ordenação, seleção e paginação sobre a Table. Use quando a lista é grande o bastante para o usuário precisar operar sobre ela.
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/data-table
Orientação
A camada de ordenação, seleção e paginação sobre a Table. Entra quando a lista é grande o bastante para o usuário precisar operar sobre ela.
Quando usar
- A lista passa do que cabe numa tela e o usuário precisa navegar por páginas.
- Existe ação em lote: selecionar várias linhas e aplicar alguma coisa a todas.
- A ordem importa e muda conforme a pergunta que o usuário está fazendo.
Quando não usar
- Para uma lista curta e estável. A Table simples entrega o mesmo com menos peso.
- Quando a operação real é busca, e não ordenação: talvez o caminho seja filtro e busca, não paginação.
- Para dados que não são tabulares só porque a tabela é conveniente.
<DataTableContent>
<TableHeader>
<TableRow>
<DataTableColumnHeader>Aluno</DataTableColumnHeader>
<DataTableColumnHeader>Turma</DataTableColumnHeader>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Marina Alves</TableCell>
<TableCell>7º ano B</TableCell>
</TableRow>
</TableBody>
</DataTableContent>Anatomia
DataTable
└─ DataTableToolbar
└─ DataTableSearch
└─ DataTableContent
└─ TableHeader
└─ TableRow
└─ DataTableColumnHeader
└─ TableBody
└─ TableRow
└─ TableCell
└─ TableRow
└─ TableCell
└─ DataTablePagination
└─ DataTableCountUso
2 de 34 sessões
Toolbar com ações
Carregando
Vazio
Célula formatada, ações e paginação
2 de 27 alunos
Acessibilidade
- O estado de ordenação precisa ser anunciado no cabeçalho, não apenas indicado por uma seta.
- A caixa de seleção do cabeçalho precisa de nome acessível próprio — “selecionar todas as linhas”.
- Mudar de página troca o conteúdo sem recarregar: o usuário de leitor de tela precisa saber que o conteúdo mudou.
Componentes relacionados
Referência da API
DataTableColumnHeader
| Prop | Tipo | Padrão |
|---|---|---|
| align | "end" | "start" | "start" |
| onSort | (() => void) | — |
| sorted | false | "desc" | "asc" | false |
Também aceita as props de React, incluindo className e os atributos de DOM.
DataTableSkeleton
| Prop | Tipo | Padrão |
|---|---|---|
| columns* | number | — |
| rows | number | 5 |
DataTable, DataTableContent, DataTableCount, DataTableEmpty, DataTablePagination, DataTableSearch, DataTableToolbar, DataTableToolbarActions, TableBody, TableCell, TableHeader, TableRow não têm props próprias — aceitam apenas as props herdadas, incluindo className e os atributos de DOM.
Pendência editorial: exemplo em contexto de produto. A lacuna aparece aqui em vez de ser preenchida com orientação inventada.
- 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