A flexible table component built on top of TanStack Table with built-in styling, interactions, and pagination support.
Band name | Genre | Year formed | Albums |
---|---|---|---|
Rock, Pop, Psychedelic Rock | 1960 | 13 | |
Hard Rock, Heavy Metal, Blues Rock | 1968 | 9 | |
Progressive Rock, Psychedelic Rock, Art Rock | 1965 | 15 | |
Rock, Blues Rock, Hard Rock | 1962 | 30 | |
Rock, Hard Rock, Glam Rock | 1970 | 15 |
1 - 5 of 10
import { Cell, ..., TableHeader, TablePagination } from '@backstage/ui';
<Table>
<TableHeader>
<Column />
</TableHeader>
<TableBody>
<Row>
<Cell />
<CellProfile />
</Row>
</TableBody>
</Table>
<TablePagination />
The main table component that renders data in a structured grid format.
Prop | Type | Default | Responsive |
---|---|---|---|
selectionBehavior | togglereplace | toggle | No |
disabledBehavior | selectionall | selection | No |
disabledKeys | Iterable<Key> | - | No |
selectionMode | singlemultiple | - | No |
selectedKeys | allIterable<Key> | - | No |
defaultSelectedKeys | allIterable<Key> | - | No |
onRowAction | (key: Key) => void | - | No |
onSelectionChange | (keys: Selection) => void | - | No |
onSortChange | (descriptor: SortDescriptor) => any | - | No |
className | string | - | No |
style | CSSProperties | - | No |
The header section of the table that contains the column definitions.
Prop | Type | Default | Responsive |
---|---|---|---|
onHoverStart | (e: HoverEvent) => void | - | No |
onHoverEnd | (e: HoverEvent) => void | - | No |
onHoverChange | (isHovering: boolean) => void | - | No |
className | string | - | No |
style | CSSProperties | - | No |
A column definition that describes how a column should be rendered.
Prop | Type | Default | Responsive |
---|---|---|---|
id | Key | - | No |
allowsSorting | boolean | - | No |
isRowHeader | boolean | - | No |
textValue | string | - | No |
className | string | - | No |
style | CSSProperties | - | No |
The body section of the table that contains the rows.
Prop | Type | Default | Responsive |
---|---|---|---|
renderEmptyState | (props) => ReactNode | - | No |
className | string | - | No |
style | CSSProperties | - | No |
A row definition that describes how a row should be rendered.
Prop | Type | Default | Responsive |
---|---|---|---|
textValue | string | - | No |
isDisabled | boolean | - | No |
id | Key | - | No |
href | string | - | No |
hrefLang | string | - | No |
target | string | - | No |
rel | string | - | No |
onAction | () => void | - | No |
onHoverStart | (e: HoverEvent) => void | - | No |
onHoverEnd | (e: HoverEvent) => void | - | No |
onHoverChange | (isHovering: boolean) => void | - | No |
onPress | (e: PressEvent) => void | - | No |
onPressStart | (e: PressEvent) => void | - | No |
onPressEnd | (e: PressEvent) => void | - | No |
onPressChange | (isPressed: boolean) => void | - | No |
onPressUp | (e: PressEvent) => void | - | No |
className | string | - | No |
style | CSSProperties | - | No |
A cell definition that describes how a cell should be rendered.
Prop | Type | Default | Responsive |
---|---|---|---|
id | Key | - | No |
textValue | string | - | No |
className | string | - | No |
style | CSSProperties | - | No |
A pagination component designed to work with the Table component.
Prop | Type | Default | Responsive |
---|---|---|---|
pageIndex | number | - | No |
pageSize | number | - | No |
setPageIndex | (pageIndex: number) => void | - | No |
setPageSize | (pageSize: number) => void | - | No |
rowCount | number | - | No |
onNextPage | () => void | - | No |
onPreviousPage | () => void | - | No |
onPageSizeChange | (pageSize: number) => void | - | No |
showPageSizeOptions | boolean | - | No |
className | string | - | No |
style | CSSProperties | - | No |
Coming soon.
Coming soon.
Coming soon.
Coming soon.
Coming soon.
Coming soon.
Coming soon.
This feature is not available yet — let us know if you'd like us to explore it!
This feature is not available yet — let us know if you'd like us to explore it!
This feature is not available yet — let us know if you'd like us to explore it!
This feature is not available yet — let us know if you'd like us to explore it!
Our theming system is based on a mix between CSS classes, CSS variables and data attributes. If you want to customise this component, you can use one of these class names below.
bui-Table
bui-TableHeader
bui-TableBody
bui-TableRow
bui-TableHead
bui-TableHeadSortButton
bui-TableCaption
bui-TableCell
bui-TableCellContentWrapper
bui-TableCellContent
bui-TableCellIcon
bui-TableCellProfileAvatar
bui-TableCellProfileAvatarImage
bui-TableCellProfileAvatarFallback
bui-TableCellProfileName
bui-TableCellProfileLink