Table
Dense rows you can compare: the cost ledger, model lists, task events, knowledge documents.
When to use
Section titled “When to use”- Four or more columns of values that people compare. Objects with a title and a status are
Cardtiles instead.
What the consumer provides
Section titled “What the consumer provides”- Columns in priority order, each with a header label, an alignment and whether it sorts. Numbers use
num: right-aligned and tabular. Give the table acaptionor anaria-label. - Rows. They can take
aria-selectedand a row actionMenuin the last column. - An unknown value shows the word “unknown” in
ink-muted. Never a dash or a zero: Upmo shows costs honestly and never guesses. - For phones, which column is the card title, which is the status, which two or three form the meta line, and which holds the row actions. In the HTML bundle these are
u-cell-title,u-cell-status,u-cell-metaandu-cell-actionson the cells, withu-table--stackon the table. - Which columns come after the first four by priority. In the HTML bundle these take
u-col-lgon thethand on everytd.
Behaviour
Section titled “Behaviour”- The table is
surface-100inside abordercontainer withradius-md. The header is sticky, onsurface-200, inbody-smweight 600 andink-muted. Rows are 44px high, inbody, withborderrules. Hover showssurface-hover. Selected rows showsurface-selected. - Sortable headers are buttons with
aria-sort. The active sort shows a chevron. - From
bp-sm, the table shows the first four columns by priority. Frombp-lg, it shows every column. Below itsmin-width, it scrolls sideways inside its container. - Below
bp-sm, each row becomes a card. The title column leads in weight 600 and the status badge sits top right. The meta columns follow on one line inbody-smandink-muted, split by a middle dot. Row actions go in the card foot. Other columns hide. The header stays in the accessibility tree but is hidden from view, so sorting waits for a wider screen. - Code-like values (model ids, hashes) use
code.
Tokens
Section titled “Tokens”surface-100, surface-200, surface-hover, surface-selected, border, ink, ink-muted, radius-md.
Mantine
Section titled “Mantine”<Table.ScrollContainer minWidth={560}><Table stickyHeader highlightOnHover verticalSpacing="sm"> with Table.Thead, Table.Th, Table.Tbody, Table.Td. Below bp-sm, render the rows as a list of Cards instead (hiddenFrom="sm" and visibleFrom="sm"). Columns past the first four take visibleFrom="lg" on their Table.Th and Table.Td.