Tables are used to organise and display data efficiently in cells, columns and rows.
The purpose of a table is to present data in a grid or matrix with header rows and columns showing the meaning and relationship of data between cells. They are highly customisable to suit a range of use cases.
Default table has a header and body.
When a table has no content or data, you can specify what’s displayed to indicate the empty state.
When sort or filter are active for a column they will be visually indicated to show an active state.
A body row can either be collapsed or expanded.
Tables are extra-small, small, medium (default) and large.
The title should clearly describe the purpose of the data.
Use one or two words to describe the column data. Column titles should use sentence case.
A range of properties can be used to customise the table’s behaviour.
Header cell displays resize handle so users can adjust the width of columns.
Overflowing text is truncated and indicated with an ellipsis. A tooltip provides full text on hover.
Rows can be expandable and display addtional data when expanded.
Header cells can include a filter icon used to trigger a popover with filter options.
Header cells can include a sort icon used to sort options.
Maintains column position so that are static as a user scrolls left and right to view data.
Data in a table can displayed across multiple pages which to be navigated using pagination.
A table can be scrolled both vertically and horizontally according to the data displayed.
Shell DS components are programmatically determinable with appropriate semantic markup and are designed to meet colour contrast requirements. If you’re not using Shell DS code, you will need to cover the accessibility considerations for each component in this pattern.
It is strongly recommended to simplify tables as much as possible and avoid spanned cells or multiple levels of headers, as more complex tables are not fully supported by all screen readers.
Every effort has been made to ensure that the Shell Design System follows accessibility best practice.
The Shell DS React framework incorporates keyboard operation to support the widest variety of assistive technologies and devices. For any future frameworks other than React, accessibility will need to be reviewed.
Help us to help you by contacting the Accessibility team for support and information regarding any questions relating to accessibility.
Is this page useful for you?
Your feedback helps to improve our documentation.