Skip to content

Tables

Tables display information in a grid-like format of rows and columns. They organize information in a way that’s easy to scan so that users can look for patterns and develop insights from data.

Principles

Organized: Information should be organized in a meaningful way, such as hierarchy or alphabetization.

Interactive: Tables should allow user interaction so that a data display is customizable and interactive.

Intuitive: Tables should be easy to use, with a logical structure that makes content easy to understand.

When to use

Tables are recommended when:

  • Users want to look up specific information or find records that fit specific criteria.
  • There is data comparison and precise numbers are important.
  • An action needs to be taken on one or multiple records.

Types

There are two types of tables:

  1. Compact (default)
  2. Comfortable

Compact

Compact tables SHOULD be used by default. With these tables, space is optimized and more results can be displayed on the screen.

Data Tables types low density

This type of tables MUST be used in case they’re located inside another table’s child row.

Data Tables types low inside high density

Comfortable

These tables are a valid option in cases where there are not many results (rows) or there are multiple actions per row that would make the contents of compact tables look too cramped.

Data Tables types high density

The use of the comfortable mode must be validated beforehand.

Design guidelines

Tables CAN contain:

  • Interactive components (such as chips, buttons or menus).
  • Non-interactive elements (such as badges).
  • Tools to query and manipulate data.

Anatomy

Data Tables anatomy

  1. Title (optional)
  2. Filters (optional)
  3. Table actions (optional)
  4. Header row
  5. Rows
  6. Pagination
  7. Row checkbox (optional)
  8. Sort buttons
  9. Row actions
  10. Container

Title

It is not mandatory to have it, especially for simple tables that only show a limited number of rows and static data.

If no filters or batch actions are needed, the entire toolbar is omitted and only the title remains.

Data Tables anatomy title

Filters

Users could filter the results within a table in different ways: by typing the value in an input (search) or by selecting among several filters that match some of the rows.

For the first case, the search input is placed in the table header, below the title.

Data Tables filters input

In case specific filters are needed, they are placed below the title as well, just like the input. They are displayed as interactive chips.

Data Tables filters chips

It could be the case that we need a mix of both, and we need to use a search input in addition to some filters.

The input is placed below the title and the filter action is placed next to the rest of the batch actions on the right side of the toolbar. In this case, the filter action always goes to the far right.

Data Tables filters input button The filters are displayed in a drawer that slides from the right side of the screen.

Do not use all the filtering options at once in the same table toolbar.

Data Tables filters dont This can cause a visual overload and distract or confuse users with too many buttons and actions to filter the data.

Table actions

When you need to perform actions that affect the entire table or selected rows in it, batch actions are used. These are located on the right side of the toolbar.

They can include simple actions with icon and text, actions with context menu, and other secondary actions that MUST be located in the context menu that opens from the ellipsis icon.

Data Tables anatomy batch actions

Within the batch actions section of the toolbar there CAN be a maximum of 3 main actions.

When there are more than 3, the rest MUST be placed inside the contextual menu of the ellipsis icon.

Data Tables anatomy batch actions ellipsis

Avoid showing more than 3 main actions for the table.

Data Tables filters dont

Header row

Contains header names that describe the type of content displayed in each column.

Text that is longer than the column width is truncated with an ellipsis.

Data Tables anatomy header

Rows

Striped rows can also be used in certain circumstances. A different background color MUST be used for each even row.

Data Tables anatomy striped

Row checkbox

When a row checkbox is selected, the row MUST display a different background color.

The addition of a background color fill provides an additional way to indicate that a row has been selected.

Data Tables anatomy checkbox

Row actions

A maximum of 3 actions per row are allowed. Generally there are 2 icons for the most important and/or most common (primary) actions, and a vertical ellipsis icon that displays a context menu for the other secondary actions.

  • If there are 3 actions per row, then they can all be displayed in line.
  • If there are 4 or more actions per row, then the 2 primary actions are displayed and the others must be displayed within the context menu.

By default, all the row action icons are shown.

Data Tables anatomy row actions

Do not show more than 3 main actions for each row.

Data Tables filters dont It gets more difficult for users to focus on the most important tasks if all the available actions are displayed at once.

These actions can also appear when a user hovers over a row. These icons are hidden, except for the vertical ellipsis icon (used to indicate that something can be done in a specific row).

Data Tables behavior row action hoverData Tables behavior row action hover menu

Behavior

Hover

Rows

When a user hovers over a row, that row displays a different background color.

Data Tables behavior row hover

Headers

When the user hovers over a column header:

A tooltip CAN display the full column name (if it’s truncated) or a more detailed description of the column.

Data Tables behavior header hover

If sorting is enabled, an arrow icon CAN appear next to the column header.

Data Tables behavior header hover sorting

Expand / Collapse

Child rows

A column MAY have additional information that CAN be displayed as an expanded child row.

This child row CAN contain plain text or even another table within.

Data Tables behavior expand collapse children 1

Whenever a table is inside a child row, it MUST be presented in compact mode (headers and rows are 40px high). In addition to this, a child row has left and right margins of 64px relative to the parent row.

Data Tables behavior expand collapse children 2

Normally, the headers of a table have a different color than its rows. In this case, child tables use a lighter color for headers in comparison to the main table.

Mobile

In lower resolutions, vertical and horizontal scrollbars appear to navigate the table columns and rows.

Data Tables behavior mobile

Specs

The font size and icon size for table elements are summarized as follows:

ElementFont size (px)Font weightIcon size (px)
Title18Semi-boldNo icon
Actions14 (uppercase)Semi-bold20
Chip filters12Regular12
Compact tables (default)
Header12Semi-bold20 (checkbox only)
Row13Regular20
Comfortable tables
Header12Semi-bold20 (checkbox only)
Row14Regular20

Compact

Data Tables specs 1

Comfortable

Data Tables specs 1

Columns that have numeric values MUST be right-aligned.

Data Tables specs 2

Color usage

  • neutral-300 for table borders and dividers.
  • neutral-200 for the main table header.
  • neutral-100 for the child table header.
  • alternate-50 as the background color for even rows inside a striped table.

Data Tables specs colors

Data Tables specs 3Data Tables specs 4Data Tables specs 5