Search the design system

Components

Table

The table component is used to display structured data in rows and columns for easy scanning and comparison.

table

Usage

Use a table to display structured information in rows and columns, making it easy for users to scan, compare, and understand data such as transactions or game history.

When to use Table

Choose a table when users need to organize and compare multiple attributes across items, or when showing datasets that benefit from clear alignment, like lists of players, bets, or transactions.

Formatting

Anatomy

A table is composed of the following elements.

Anatomy of a Table

A. Table header – Defines column labels and provides structure for the data.
B. Table row – Each row groups related data points that belong to the same record, transaction, or entity.
C. Table Total – Summarizes data across the table, e.g. totals. (optional).
D. Table cell – The smallest unit, containing a piece of data within a row and column.
E. Table Footer – Supportive text. (optional)

Size

Our tables are available in four row sizes: xsmall (32 px), small (48 px), medium (76 px), and large (96 px).
All sizes share consistent 16 px horizontal padding.

Row sizes

Note: xsmall supports only single-line text — never use it for multi-line content.

Min and max width

Table cells follow defined width limits to ensure readability and consistency. Each column has a minimum width of 120 px and a maximum width of 400 px to prevent individual columns from dominating the layout. The last column may expand to fill any remaining space.

Cell types

Our Simple table supports different cell types to match the content they display.

Text

Text in a table cell

Use for simple labels or single pieces of information.

Text + description

Text and description in a table cell

Use when additional context is needed under the main text.

Numeric

Numeric value in a table cell

Use for values like amounts or percentages, always right-aligned for readability.

Modify

Variants

Tables can be configured in different variations depending on the data and context.

Default

Default variant

Balanced spacing for general use, offering a clear overview and comfortable readability.

Striped

Striped variant

A striped table alternates row backgrounds to make large datasets easier to scan.

Sizes

We offer four table sizes to match content density and usage context. Each size is optimized for clarity, consistency, and accessibility across different scenarios.

Medium

Medium size

Default size for most use cases.

Large

Large size

Spacious, best for content-rich or touch-friendly interfaces.

Behavior

Scrolling

The table header remains sticky on vertical scroll to keep column labels visible. If the content exceeds the viewport width, the table can be scrolled horizontally. Tables have a maximum height of 90% of the viewport, after which the body becomes scrollable.

Note: Vertical scrolling should only be used on desktop. On mobile, avoid nested vertical scrolls as they create poor usability. Instead, let the table grow naturally and use horizontal scrolling or pagination when needed.

Sticky header in a table

Screen sizes

XS–small

Tables can be scrolled horizontally if the content exceeds the viewport width. The header remains sticky on vertical scroll to keep column labels visible. (<480px).

Table on a small device

Medium-large

Tables scale to available width and maintain alignment. The header is sticky on vertical scroll, and horizontal scrolling is enabled when needed. (≥481px – 1439px).

Table on a medium device

XL

Tables display more columns within the grid while preserving readability. The header remains sticky, and long datasets may be scrolled. (≥1440px).

Table on an extra large device

Best practice

Avoid long copy

Use concise text and descriptions to keep tables easy to scan. Long copy reduces readability.

Use short, clear text with a concise supporting description
Use short, clear text with a concise supporting description when extra context is needed.
Don’t repeat the same information in both text and description
Don’t repeat the same information in both text and description, or overload the cell with unnecessary details.

Alignment

Numbers should always be right-aligned to make comparisons easy across rows.

Keep numeric data right-aligned
Keep numeric data right-aligned to make comparisons easy across rows.
Don’t center or left-align numeric data
Don’t center or left-align numeric data, as it makes scanning and comparing harder.

Use spacing for readability

Tables should have enough padding and row height to feel open and easy to scan. Avoid squeezing rows and columns too tightly, as it makes the table harder to read and reduces clarity.

Keep sufficient gaps between columns and rows to support quick scanning
Keep sufficient gaps between columns and rows to support quick scanning.
Don’t cram information too tightly
Don’t cram information too tightly — it makes the table harder to read and less accessible.
ComponentsSwitch / Code
ComponentsTable / Code

© DesignTech - AB Svenska Spel

What's newTerms of useAccessibility statementCookiesTeams channel [Internal]
@svs/ui version
3.0.1

Feedback

We always want to improve the Design System and would be thrilled to get your feedback.

Please share your wisdom with us.

Microsoft Teams [internal]

Designsystem@svenskaspel.se