Browse Components

Components

Table

Tables are used to display collections of data in organised rows and columns.

DesignUsageAccessibilityUpdates

Purpose

Compare structured data

Use tables when each record shares the same fields.

Handle dense records

Rows and columns give repeated information a predictable position.

Support row actions

Tables can include selection, sorting, filtering, and actions where needed.

Anatomy

1

Header row

2

Data row

3

Data cell

4

Border (optional)

5

Header cell

6

Header background (optional)

7

Row divider (bottom)

Configuration

Header position

Use headerPosition to put headers across the top, down the side, or both.

Headers across the top. Most common arrangement for tabular data.

Header background

Use header-background to apply a tinted fill to the header cells for stronger visual separation from the body.

Plain header. Suits tables embedded in low-contrast surfaces.

Cell borders

Use table-border to draw borders around every cell for tables with dense numeric data.

Default borderless cells keep the table light and uncluttered.

Responsive

Responsive tables can change layout at smaller breakpoints.

Use responsive tables when the table must remain readable on smaller screens.

Table layout

Table layout controls whether columns size automatically or use fixed distribution.

Use auto layout when content length should influence column sizing.

Structure

Design tokens used

Each row is a colour, spacing, or size value the component uses, and the right-most column tells you where in the component you'll see it.

CategoryTokenValueWhere it's usedPaddingsgds-padding-md16pxSpace between the left and right edges of the component and its contentsgds-padding-smSpace between the top and bottom edges of the component and its contentBordersgds-border-width-0Width variesBorder of the trsgds-border-width-11pxBottom border of items inside the component; bottom border of the thTypographysgds-font-weight-semiboldFont weight of the table head; font weight of the thSizesgds-dimension-56Minimum height of the table cell; minimum height of the table head

Usage

When to use

  • Use table when users need to compare values across rows and columns.
  • Use it for structured data where alignment helps users spot patterns or differences quickly.

When not to use

  • Do not use table for short content that reads better as a list or card.
  • Do not crowd the table with columns that users do not need for the decision at hand.

Best practices

Use a table when users need to compare records

Tables are for repeating data with shared attributes. Applications, transactions, devices.

Do not use a table for a single record

For attributes of a single item, a description list shows the label–value relationship more clearly.

Use clear, consistent column headers

Keep headers short and consistent, 'Submitted' for a date, 'Status' for a state, so users know each column.

Do not pack actions into too many columns

If every row needs three or more controls, move secondary actions into an overflow menu.

Accessibility considerations

Built-in accessibility

  • Tables render table, row, header, and cell components for structured data.
  • Responsive tables can receive focus so users can scroll the table area.

Labels and content

  • Use clear column and row headers.
  • Keep cell content concise and avoid using tables for layout.

Focus and interaction

  • Interactive elements inside cells should follow the table reading order.
  • Do not remove table headers when switching to responsive layouts.

Keyboard interaction

KeyInteractionTabMoves focus from the responsive table or cell control to the next focusable element.Shift+TabMoves focus to the previous interactive element.

Updates

DateVersionDescription19 May 2026v3.19.1Sgds-table prop not reflected, causing layout not to work in #670.13 May 2026v3.19.0Update table and textarea styling in #651.13 May 2026v3.19.0Created new prop for table-layout in #659.16 Feb 2026v3.10.0New static table styles in #537.04 Apr 2025v3.0.0- **Table of Contents** – Useful for the navigation for long content.

Roadmap

Planned itemStatusTargetFuture enhancements for tablePlannedTBD

Feedback

Have suggestions or feedback?

Share them with us on Slack → #ask-sgds-v3

Bug Reports

Found a bug or issue?

Report it on GitHub Issues → sgds/components/table

Singapore Government Design System

The Singapore Government Design System was developed to empower teams in creating fast, accessible and mobile-friendly digital services.

Past VersionsSGDS v1SGDS v2