Design System
Table

Table

Table containers allow merchants to view a vertical list of items with property values and related actions.

Anatomy

The Table is designed to easily integrate with other components to create the view. You must understand the concept of the DataView Pattern before reading this section.

const { getBodyCell, getHeadCell, getTable, data } = useTableState<T>({
  status,
  columns,
  items,
})
 
<Table {...getTable()}>
  <THead>
    {columns.map((column) => {
      return <THeadCell {...getHeadCell(column)} />
    })}
  </THead>
  <TBody>
    {data.map((item) => {
      return (
        <TBodyRow key={item.id}>
          {columns.map((column) => {
            return <TBodyCell {...getBodyCell(column, item)} />
          })}
        </TBodyRow>
      )
    })}
  </TBody>
</Table>

Styling

The table and its composites accepts a className as property.

<Table className="custom-class" />
<THead className="custom-class" />
<THeadCell className="custom-class" />
<TBody className="custom-class" />
<TBodyRow className="custom-class" />
<TBodyCell className="custom-class" />

Data Attributes

TableBodyRow

The clickable attribute is true whether the onClick property is passed:

  • [data-clickable="true"]
  • [data-clickable="false"]

The selected attribute is true whether the selected property is passed:

  • [data-selected="true"]
  • [data-selected="false"]

TableCell

The clickable attribute is true whether the onClick property is passed:

  • [data-clickable="true"]
  • [data-clickable="false"]

The fixed attribute is true whether the column.fixed property is passed:

  • [data-fixed="true"]
  • [data-fixed="false"]

Accessibility

This component implements the Table pattern.

Related components