Composed Table

The table is a collection of related data held in a tabular format consisting of columns and rows.

 

Component checklist

Status

The status of the component

Ready for use!

Figma component

A link to the Figma library where the component lives.

Repository

A link to the repo where the component lives.

Usage


Text Cell Alignment

Do
Text in table cells are left-aligned.

Text in table cells should be left-aligned for clarity and easy scanning.

Don't
Text in table cells are centred.

Avoid center alignment as it disrupts readability and makes comparisons harder.


Missing Cell Values

Do
Empty table cells represented by a dash.

When there are gaps in available data for specific table cells, make use of dashes for text based data and "0" for numeric based data to illustrate this to users.

Don't
Empty table cells left blank.

Do not leave table cells empty if there is no available data.


Pagination Positioning

Do
Pagination is placed directly below the table.

Place pagination directly below the table so it remains visible and accessible, even when there are only a few rows.

Don't
Pagination is placed at the bottom of the screen.

Avoid placing the pagination at the bottom of a page when there are only a few table rows, as users may overlook it and miss the control entirely.


Column Quantity

Do
Tables with less than 6 columns.

By default we recommend limiting tables to a maximum of six columns to keep information scannable and easy to navigate.

Don't
Table with more than 6 columns.

Avoid displaying more than six columns at once, as this can overwhelm users—move non-essential columns into the customize column option.


Limited Non-text Element Usage

Do
Table with status indicators used.

Use non-text elements like status indicators, avatars, or badges sparingly to support readability and add clarity.

Don't
Table with avatars, status indicators and badges.

Avoid overloading tables with multiple non-text elements, as this reduces their impact and creates unnecessary visual noise.


Column Header Active State

Do
Column header in an active state when sorting has been applied.

Use the active state in column headers only to indicate when sorting is applied, ensuring users understand the interaction.

Don't
Column header in an active state randomly.

Avoid applying the active state to headers that are not using sorting, as this creates confusion and misleads users.


Table Cell Truncation

Do
Table text truncated if too long for the cell.

Apply truncation to overflow text so all rows maintain a consistent height, ensuring tables remain scannable.

Don't
Table text taking up more lines if too long for the cell.

Avoid allowing text to wrap into multiple lines—use a side panel or modal to show full content if truncation isn’t sufficient.


Fixed Column Positioning

Do
Fixed columns placed at the left.

Place fixed columns at the far left of the table to maintain consistency and support smooth navigation.

Caution
Fixed columns placed at the left and combined with select functionality.

When combining fixed columns with multi-select functionality, use care—stacking these side by side can feel jarring and hinder usability.

Don't
Fixed columns potisioned anywhere.

Avoid positioning fixed columns in the middle or far right, as this disrupts scanning and confuses users.


Table Row Sizing

Do
Table using a consistent comfy row height.

Use a single row size consistently—default to comfy, but switch to compact for dense, data-heavy tables.

Don't
Table using mixed comfy and compact table heights.

Mix different row sizes within the same table, as this breaks consistency and disrupts the user experience.


Empty State Pagination Positioning

Do
pagination placed right below the table.

Place pagination directly below the table, even in empty states, so it remains visible and accessible.

Don't
Pagination placed at the bottom of the page.

Avoid positioning pagination at the bottom of the page, as this hides it from users and disrupts discoverability.


Table Selection State

Do
Table row indicating being selected with a checkbox.

Indicate row selection through the active checkbox in the multi-select column, keeping the interaction clear and consistent through this area.

Don't
Table row indicating being selected with the hover colour.

Avoid using table row hover states to show selection, as this blurs the distinction between selection and simple mouse-over interaction.


Zebra Display Consistency

Do
Table with alternating zebra stiped rows.

Apply zebra striping (alternating row backgrounds) consistently to help users scan and navigate table content with ease.

Don't
Table with grouped zebra-striped rows.

Don't use inconsistent zebra patterns, as this disrupts readability and makes it harder for users to focus on the data.


Empty State Label

Do
Empty state message stating 'no entities available'.

Customize empty state labels so they clearly relate to the table’s content, helping users understand what is missing.

Don't
Empty state message stating ' no data - refresh or enter new data'.

Avoid adding extra instructions or actions in the label—keep it focused solely on communicating the absence of data.