Design System

Data Table

Tabela de dados completa com busca, filtros, seleção, paginação e ações por linha. Usado no Command Center e portais. Construído sobre TanStack Table.

import { DataTable } from "@workspace/ui/components/data-table";

<DataTable
  columns={columns}
  data={consultants}
  searchKey="name"
  searchPlaceholder="Buscar por nome"
  filters={[
    { columnId: "plan", title: "Plano", options: [...] },
    { columnId: "status", title: "Status", options: [...] },
  ]}
  showPagination
  pageSize={20}
/>

Data Table (Figma)

Componente completo conforme Figma: título, toolbar de busca/filtros, tabela com checkbox e paginação.

Consultoras

Adicionar
Buscar por nome
PlanoStatus
Editar Colunas
Nome
Email
Telefone
Plano
Status
Vendedora
Criado
Rosilene Ferreira Neves
rosilenemarquesn@gmail.com
(21) 97988-1544
Master
Pré-cadastrada
Estefany Oliveira
06 de fev. de 2026 10:39
Maria Clara Santos
mariaclara@gmail.com
(11) 99876-5432
Plus
Ativa
Julia Silva
05 de fev. de 2026 14:22
Beatriz Oliveira
beatriz.oli@gmail.com
(85) 98765-4321
Start
Ativa
Carla Santos
04 de fev. de 2026 09:15
Ana Paula Carvalho
ana.paula@email.com
(86) 99123-4567
Master
Ativa
Estefany Oliveira
03 de fev. de 2026 16:48
Claudia Mendes
claudia.m@outlook.com
(31) 97654-3210
Plus
Pré-cadastrada
Julia Silva
02 de fev. de 2026 11:30
Fernanda Costa
fernanda.costa@gmail.com
(41) 98234-5678
Start
Ativa
Carla Santos
01 de fev. de 2026 08:45
Juliana Ribeiro
juliana.r@hotmail.com
(71) 99345-6789
Master
Ativa
Julia Silva
31 de jan. de 2026 17:12
Larissa Souza
larissa.souza@gmail.com
(61) 98456-7890
Plus
Ativa
Estefany Oliveira
30 de jan. de 2026 13:05
Patricia Lima
patricia.lima@email.com
(51) 97567-8901
Start
Pré-cadastrada
Carla Santos
29 de jan. de 2026 10:33
Renata Almeida
renata.almeida@gmail.com
(27) 98678-9012
Master
Ativa
Julia Silva
28 de jan. de 2026 15:50
Simone Pereira
simone.pereira@outlook.com
(48) 99789-0123
Plus
Ativa
Estefany Oliveira
27 de jan. de 2026 09:20
Vanessa Martins
vanessa.m@gmail.com
(19) 98890-1234
Start
Ativa
Carla Santos
26 de jan. de 2026 14:10
32 itens
AnteriorPróxima

Estrutura da página

Composição dos elementos que formam uma página com Data Table.

ComponenteClasse / PropFunção
PageHeadertítulo + botão primárioTítulo da página (text-xl font-semibold) e ação principal
Toolbar (busca)236x19px / rounded / pl-8Campo de busca com ícone search e placeholder
Toolbar (filtros)border-dashed / popoverBotões de filtro facetado (Plano, Status) com borda tracejada
Toolbar (colunas)border-dashed / ml-autoBotão para configurar visibilidade de colunas
DataTableTanStack Table + columnsTabela com header, rows, checkbox, ações e sorting
Paginaçãocount + prev/nextContador de itens e navegação entre páginas

Dimensões (Figma)

ElementoDimensãoDetalhes
Área de conteúdo1119px (x=250 até 1369)sidebar(191px) + content(1119px) + padding(130px) = 1440px
Título página27px heighttext-xl font-semibold
Barra de busca236x19px / roundedÍcone search 13px + placeholder 13px
Botões filtro~43-77px x 19pxÍcone 9px + label text / borda tracejada
Checkbox (header/row)8.4x8.4pxrounded-sm, primary quando checked
Avatar na row13x13px / circleAo lado do nome
Nome (row)14px textUnderline + ícone externo (9.6px)
Row height~29.8pxSeparador horizontal entre rows
Ações (row)10.8px circle iconmore-horizontal-circle-02
Paginação"32 itens" + prev/nextProgress bar 748px abaixo da tabela

Colunas padrão (Consultoras)

Colunas da tabela de consultoras no Figma. Cada tabela define suas próprias colunas via ColumnDef.

ColunaPosição Figma (x)Conteúdo
Checkbox252pxSeleção de linha
Nome270pxAvatar + nome (underline link) + ícone externo
Email469pxTexto simples
Telefone683pxFormato (XX) XXXXX-XXXX
Plano824pxStart / Plus / Master
Status929pxAtiva / Pré-cadastrada
Vendedora1071pxNome da vendedora responsável
Criado1207pxDD de MMM. de AAAA HH:MM
Ações1352pxMenu de ações (MoreHorizontal)

API Reference

PropTypeDefaultDescrição
columnsColumnDef<TData, TValue>[]Definição das colunas (TanStack Table)
dataTData[]Array de dados para a tabela
searchKeystringChave da coluna para busca global
searchPlaceholderstring'Buscar...'Placeholder do campo de busca
filtersArray<{ columnId, title, options }>Filtros facetados (botões com popover)
showPaginationbooleantrueExibir controles de paginação
pageSizenumber10Itens por página
renderGridItem(row) => ReactNodeQuando fornecido, renderiza grid ao invés de tabela
emptyMessagestring'Nenhum resultado encontrado.'Mensagem quando não há dados