Status
The status of the component
Status
The status of the component
Figma component
A link to the Figma library where the component lives.
Repository
A link to the repo where the component lives.
Text in table cells should be left-aligned for clarity and easy scanning.
Avoid center alignment as it disrupts readability and makes comparisons harder.
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.
Do not leave table cells empty if there is no available data.
Place pagination directly below the table so it remains visible and accessible, even when there are only a few rows.
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.
By default we recommend limiting tables to a maximum of six columns to keep information scannable and easy to navigate.
Avoid displaying more than six columns at once, as this can overwhelm users—move non-essential columns into the customize column option.
Use non-text elements like status indicators, avatars, or badges sparingly to support readability and add clarity.
Avoid overloading tables with multiple non-text elements, as this reduces their impact and creates unnecessary visual noise.
Use the active state in column headers only to indicate when sorting is applied, ensuring users understand the interaction.
Avoid applying the active state to headers that are not using sorting, as this creates confusion and misleads users.
Apply truncation to overflow text so all rows maintain a consistent height, ensuring tables remain scannable.
Avoid allowing text to wrap into multiple lines—use a side panel or modal to show full content if truncation isn’t sufficient.
Place fixed columns at the far left of the table to maintain consistency and support smooth navigation.
When combining fixed columns with multi-select functionality, use care—stacking these side by side can feel jarring and hinder usability.
Avoid positioning fixed columns in the middle or far right, as this disrupts scanning and confuses users.
Use a single row size consistently—default to comfy, but switch to compact for dense, data-heavy tables.
Mix different row sizes within the same table, as this breaks consistency and disrupts the user experience.
Place pagination directly below the table, even in empty states, so it remains visible and accessible.
Avoid positioning pagination at the bottom of the page, as this hides it from users and disrupts discoverability.
Indicate row selection through the active checkbox in the multi-select column, keeping the interaction clear and consistent through this area.
Avoid using table row hover states to show selection, as this blurs the distinction between selection and simple mouse-over interaction.
Apply zebra striping (alternating row backgrounds) consistently to help users scan and navigate table content with ease.
Don't use inconsistent zebra patterns, as this disrupts readability and makes it harder for users to focus on the data.
Customize empty state labels so they clearly relate to the table’s content, helping users understand what is missing.
Avoid adding extra instructions or actions in the label—keep it focused solely on communicating the absence of data.