UnflowUI
Components

Table

The dumb, presentational Table primitive family (Table/TableHeader/TableHead/TableBody/TableRow/TableCell/TableFooter/TablePagination) that DataTable composes — no sort/filter/selection logic lives here.

Overview

This is the foundation layer a <DataTable> is built from — real <table>/<thead>/<th>/<tbody>/<tr>/<td>/<tfoot> elements with no feature logic baked in. Sort indicators, select-all checkboxes, tooltips, and badges are composed as children (via CellHeader) rather than being props on these primitives — a component here never imports a feature component.

Use these directly for a plain styled table; reach for DataTable once you need sorting/filtering/pagination/selection/virtualization.

Import

import { Table } from '@unflowio/ui/components/Table';
import { TableHeader } from '@unflowio/ui/components/TableHeader';
import { TableHead } from '@unflowio/ui/components/TableHead';
import { TableBody } from '@unflowio/ui/components/TableBody';
import { TableRow } from '@unflowio/ui/components/TableRow';
import { TableCell } from '@unflowio/ui/components/TableCell';
import { TableFooter } from '@unflowio/ui/components/TableFooter';
import { TablePagination } from '@unflowio/ui/components/TablePagination';

Basic

NameRoleEmail
Ava CarterEngineering Managerava.carter@example.com
Liam NguyenProduct Designerliam.nguyen@example.com
Noah SilvaAccount Executivenoah.silva@example.com

Props

Table

PropTypeDefaultDescription
density'compact' | 'standard' | 'comfortable''standard'Sets a data-density attribute — every primitive's own CSS reads it via a group-data-[density=...]/table: selector, no state/Context threading.
layout'auto' | 'fixed''auto'table-layout CSS.
slotProps.containerBaseHTMLProps<HTMLDivElement>The horizontally-scrollable wrapper around the <table>.

compact

NameRole
Ava CarterEngineering Manager
Liam NguyenProduct Designer
Noah SilvaAccount Executive

standard

NameRole
Ava CarterEngineering Manager
Liam NguyenProduct Designer
Noah SilvaAccount Executive

comfortable

NameRole
Ava CarterEngineering Manager
Liam NguyenProduct Designer
Noah SilvaAccount Executive

TableHeader

PropTypeDescription
stickybooleanSticks to the top of the nearest scroll container.
dividersbooleanVertical rules between header cells.

TableHead

PropTypeDescription
align'left' | 'center' | 'right'

Deliberately has no sortable/selectable/badge props — compose those via CellHeader as children instead.

TableBody

PropTypeDescription
stripedbooleanZebra-stripes alternate rows via CSS nth-child.
NameRole
Ava CarterEngineering Manager
Liam NguyenProduct Designer
Noah SilvaAccount Executive

TableRow

PropTypeDescription
selectedbooleanComputed by the caller — this primitive never looks up selection state itself.
hoverableboolean
disabledboolean
Ava CarterEngineering Manager
Liam NguyenProduct Designer
Noah SilvaAccount Executive

TableCell

PropTypeDescription
align'left' | 'center' | 'right'
rowHeaderbooleanRenders <th scope="row"> instead of <td> — set on whichever cell identifies the row.
colSpan / rowSpannumberStandard HTML spanning.

TableFooter

PropTypeDescription
stickybooleanSticks to the bottom of the nearest scroll container.

TablePagination

A <td>-shaped adapter composing the existing Pagination (variant="table") as-is — accepts (almost) all of Pagination's own props plus colSpan, meant to sit inside a <TableFooter><TableRow>.

NameRoleEmail
Ava CarterEngineering Managerava.carter@example.com
Liam NguyenProduct Designerliam.nguyen@example.com
Noah SilvaAccount Executivenoah.silva@example.com