StructuredList

Lightweight React structured list for header and text rows, with selectable rows, compact density, and no sorting overhead. Renders a real table.

StructuredList is lighter than Table: no sorting or filtering. Add selectable for per-row checkboxes that toggle on row click.

When to use

Use StructuredList for simple row data that needs no sorting or filtering: a list of documents, contacts, or options with a few attributes. Add selectable when users pick rows.

When the data needs sorting, filtering, or many columns, use Table.

Examples

Basic list

Selectable rows

Compact, no dividers

Arabic (RTL)

Props

Props declared by StructuredList. Native attributes of the underlying element pass through.

<StructuredList>

PropTypeDefaultDescription
compactboolean
containedboolean
rowDividerboolean
colDividerboolean
selectableboolean

<StructuredListRow>

PropTypeDefaultDescription
selectedbooleanSelected state of a selectable row (controlled). Drives the row's auto-rendered checkbox + data-state="selected".
onSelectedChange(selected: boolean) => voidFired when a selectable row toggles - by its checkbox, a click anywhere on the row, or keyboard on the checkbox.
disabledbooleanVisually + interactively mutes the row and its checkbox.
selectionLabelstringAccessible name for a selectable row's auto-rendered checkbox.

<StructuredListHead>

PropTypeDefaultDescription
alignAlign

<StructuredListCell>

PropTypeDefaultDescription
alignAlign
__controlreact.ReactNode

Accessibility

The list renders a native <table> with header cells, so columns are announced with each value. Selectable rows expose role="checkbox" with the checked state and toggle on click or Space.

Give the table an aria-label that names the data set.