Table

Angular

See content

Blazor

See content

Table enables visualization, comparison or analysis of data across columns and rows.

Usage

Tables are used to organize data with a logical relationship in grids. A table makes it efficient to look up values across multiple categories and allows the user to compare information in rows and columns.

Table can contain:

  • Interactive components (such as checkboxes, buttons or menus)

  • Non-interactive elements (such as badges or status)

  • Tools to query and manipulate data

When to use

Use tables when:

  • Exact values are useful to know.

  • When an item has 3 or more interesting dimensions of data and when a summary or a graph will be insufficient.

  • When the data can grow and/or if the user needs to search, filter, or batch operations to process data.

Anatomy

  1. Title and description: contain the data table title and an optional description.

  2. Header: Headers indicate what the rows or columns represent. It also indicates the unit of data on the rows or columns.

  3. Sorting: allow the user to sort the data

  4. Row: contain the data

  5. Columns: contain the data

  6. Pagination: Number of pages of the table and button to navigate across them

  7. Filtering & Search: allow the user to manipulate the data

Title

The title should be speaking in the sense of the user's understanding, rather than in the system's language and make it clear what type of data the table contains.

Header

Headers indicate what the rows or columns represent and must stand out, for example in bold.

They should be short (one or two words) and aligned with their related data.

The height of the header row must be the same as the height of the content.

The header provides clarity if data is non-descriptive or ambiguous. Tables should always include table headers.

Sorting

Sorting controls improve data tables usability. Sorting controls are located in the column headers and indicated with an arrow or a chevron icon.

A sorted table has 3 states:

  • unsorted (no icon)

  • sorted-up (chevron-up + accent color)

  • sorted-down (chevron-down + accent color)

The icon indicates the current sorted state and is only shown if sorting is activated.

If the data is numerical, the default sorting order is 0 to XXX. If the data is alphabetical, the sorting order will be A to Z. It could be reversed with one click. If the content is not sortable, the functionality is deactivated.

Rows

Can be expanded or collapsed by an icon button containing a chevron icon.

Columns

Numerical data is often right aligned. Text data is left aligned. Columns should be ordered by priority or in a way that tells a story with the data.

Pagination and scrolling

Prefer using pagination (see the pagination component) in cases where the user is searching for specific information due to its flexibility as it allows the user to skip straight to the last few sets if required, otherwise prefer infinite scrolling.

Filtering & Search

Any filtering controls that manipulate the dataset should be placed directly above the table with the option to clear all data. It is also possible to use built-in filters in the table column headers.

Placement

Tables should be placed in a page's main content area and given plenty of space to display data without truncation.

Do's & Don'ts

Do

  • The user should be able to interact with the table, so he can customize how data is displayed or interacted with.

  • 6 to 8 columns per table should be the maximum, depending on the resolution.

  • If horizontal scrolling can't be avoided, freeze the column that identified the rows.

Don't

  • Don't use table as a replacement for a spreadsheet application.

  • A table is used to display data, its goal is to display information and make some edits, not to change every data one by one.

  • Avoid horizontal scrolling as much as possible

Do

Text data should be left-aligned within a table.

Don’t

Text center-aligned shouldn’t be applied because it isn’t readable.

Do

Numerical data should be right-aligned in general cases, for the comfort of scanning and comparing. Except for nominal numbers (they can’t be compared) such as ZIP codes, IP addresses, these ones have to be left-aligned. Alignment of column headers follow the rules of the data.

Don’t

Alignments don’t have to be always on left. Alignments follow the nature of data present in the table.

Do

The row alignement should be centered vertically for each data. It will be better for readability.

Don’t

Do not align top or bottom for the data.

Do

6 to 8 columbs per table should be the maximum, depending on the resolution.

Don’t

Do not add more than 8 columns per table. If there are too many columns, use filters to display and select columns.

Do

If horizontal scrolling can’t be avoided, freeze the column that identified the rows.

Don’t

Avoid horizontal scrolling as much as possible. Think about your data prioritized, you could reduce it with essential data to display with columns filters.

Do

When there are no data or gaps, use the placeholder “-” to represent N/A or Null value for not overloading the table.

Don’t

Do not use Null or N/A, use instead the placeholder “-” in tables because the text could be confused with a real data.

Do

If inside a table you only have less than 3 action buttons, you should consider to insert a column with the 2 action buttons.

Don’t

Below 3 action buttons, avoid using the action menu. It is better to use a column where you can insert directly the action buttons.

Do

Use the action menu when you have more than 3 action buttons. It will be light and clear for reading and using the tab.

Don’t

Do not insert more than 2 action button in a column. Other else the tab will be overloaded by action buttons and be difficult for the user to understand what it is expected.

Log in

Log in with Michelin ID

To connect to the Design System, I will need:

  • A Michelin ID (e.g. F012345)
  • Double authentification (with the NetIQ application or by SMS)
  • A password associated with your Michelin ID

I don’t have a Michelin ID and/or email

In order to connect to the Design System, I need:

  • A user ID or an email
  • A password

If you have never accessed the Design System, you can request access via this link.