Semantic table element for presenting data.
Full name | Group | |
---|---|---|
Danilo Sousa | danilo@example.com | Developer |
Zahra Ambessa | zahra@example.com | Admin |
Jasper Eriksson | jasper@example.com | Developer |
<Table.Root>
<Table.Header>
<Table.Row>
<Table.ColumnHeaderCell>Full name</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Email</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Group</Table.ColumnHeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.RowHeaderCell>Danilo Sousa</Table.RowHeaderCell>
<Table.Cell>danilo@example.com</Table.Cell>
<Table.Cell>Developer</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Zahra Ambessa</Table.RowHeaderCell>
<Table.Cell>zahra@example.com</Table.Cell>
<Table.Cell>Admin</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Jasper Eriksson</Table.RowHeaderCell>
<Table.Cell>jasper@example.com</Table.Cell>
<Table.Cell>Developer</Table.Cell>
</Table.Row>
</Table.Body>
</Table.Root>
Groups the Header
and Body
parts. This component is based on the table
element and supports common margin props.
Prop | Type | Default |
---|---|---|
size | Responsive<"1" | "2" | "3"> | "2" |
variant | "surface" | "ghost" | "ghost" |
layout | Responsive<"auto" | "fixed"> |
Contains the column headings for the table, based on the thead
element.
Displays the table data. This component is based on the tbody
element.
A row of table cells. Based on the tr
element.
Prop | Type | Default |
---|---|---|
align | Responsive<"start" | "center" | "end" | "baseline"> |
A basic table cell. This component is based on the td
element, but uses justify
instead of align
to control how horizontal space is distributed within the table cell.
Prop | Type | Default |
---|---|---|
justify | Responsive<"start" | "center" | "end"> | |
width | Responsive<string> | |
minWidth | Responsive<string> | |
maxWidth | Responsive<string> | |
p | Responsive<enum | string> | |
px | Responsive<enum | string> | |
py | Responsive<enum | string> | |
pt | Responsive<enum | string> | |
pr | Responsive<enum | string> | |
pb | Responsive<enum | string> | |
pl | Responsive<enum | string> |
The header of a table column. Based on the th
element and provides the same props interface as the Cell
part.
Prop | Type | Default |
---|---|---|
justify | Responsive<"start" | "center" | "end"> | |
width | Responsive<string> | |
minWidth | Responsive<string> | |
maxWidth | Responsive<string> | |
p | Responsive<enum | string> | |
px | Responsive<enum | string> | |
py | Responsive<enum | string> | |
pt | Responsive<enum | string> | |
pr | Responsive<enum | string> | |
pb | Responsive<enum | string> | |
pl | Responsive<enum | string> |
The header of a table row. Based on the th
element and provides the same props interface as the Cell
part.
Prop | Type | Default |
---|---|---|
justify | Responsive<"start" | "center" | "end"> | |
width | Responsive<string> | |
minWidth | Responsive<string> | |
maxWidth | Responsive<string> | |
p | Responsive<enum | string> | |
px | Responsive<enum | string> | |
py | Responsive<enum | string> | |
pt | Responsive<enum | string> | |
pr | Responsive<enum | string> | |
pb | Responsive<enum | string> | |
pl | Responsive<enum | string> |
Use the size
prop to control how large the text and padding of the table cells should be.
Full name | |
---|---|
Danilo Sousa | danilo@example.com |
Zahra Ambessa | zahra@example.com |
Full name | |
---|---|
Danilo Sousa | danilo@example.com |
Zahra Ambessa | zahra@example.com |
Full name | |
---|---|
Danilo Sousa | danilo@example.com |
Zahra Ambessa | zahra@example.com |
<Flex direction="column" gap="5" maxWidth="350px">
<Table.Root size="1">
<Table.Header>
<Table.Row>
<Table.ColumnHeaderCell>Full name</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Email</Table.ColumnHeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.RowHeaderCell>Danilo Sousa</Table.RowHeaderCell>
<Table.Cell>danilo@example.com</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Zahra Ambessa</Table.RowHeaderCell>
<Table.Cell>zahra@example.com</Table.Cell>
</Table.Row>
</Table.Body>
</Table.Root>
<Table.Root size="2">
<Table.Header>
<Table.Row>
<Table.ColumnHeaderCell>Full name</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Email</Table.ColumnHeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.RowHeaderCell>Danilo Sousa</Table.RowHeaderCell>
<Table.Cell>danilo@example.com</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Zahra Ambessa</Table.RowHeaderCell>
<Table.Cell>zahra@example.com</Table.Cell>
</Table.Row>
</Table.Body>
</Table.Root>
<Table.Root size="3">
<Table.Header>
<Table.Row>
<Table.ColumnHeaderCell>Full name</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Email</Table.ColumnHeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.RowHeaderCell>Danilo Sousa</Table.RowHeaderCell>
<Table.Cell>danilo@example.com</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Zahra Ambessa</Table.RowHeaderCell>
<Table.Cell>zahra@example.com</Table.Cell>
</Table.Row>
</Table.Body>
</Table.Root>
</Flex>
Use variant="surface"
to add a visually enclosed backplate to the table.
Full name | Group | |
---|---|---|
Danilo Sousa | danilo@example.com | Developer |
Zahra Ambessa | zahra@example.com | Admin |
Jasper Eriksson | jasper@example.com | Developer |
<Table.Root variant="surface">
<Table.Header>
<Table.Row>
<Table.ColumnHeaderCell>Full name</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Email</Table.ColumnHeaderCell>
<Table.ColumnHeaderCell>Group</Table.ColumnHeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row>
<Table.RowHeaderCell>Danilo Sousa</Table.RowHeaderCell>
<Table.Cell>danilo@example.com</Table.Cell>
<Table.Cell>Developer</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Zahra Ambessa</Table.RowHeaderCell>
<Table.Cell>zahra@example.com</Table.Cell>
<Table.Cell>Admin</Table.Cell>
</Table.Row>
<Table.Row>
<Table.RowHeaderCell>Jasper Eriksson</Table.RowHeaderCell>
<Table.Cell>jasper@example.com</Table.Cell>
<Table.Cell>Developer</Table.Cell>
</Table.Row>
</Table.Body>
</Table.Root>