Browse Components

Components

Badge

Badges can be used to highlight important bits of information such as labels, notifications and status.

DesignUsageAccessibilityUpdates

Purpose

Add short labels

Use badges for compact status, category, or count labels.

Show status quickly

Colour variants help users scan states such as active, warning, or danger.

Support dense layouts

Badges add meaning beside text while keeping rows and cards compact.

Anatomy

Badge label
1

Container

2

Content

3

Icon (optional)

Configuration

Variants

Badge variants use colour to convey meaning at a glance. Each variant signals a different status or category.

NeutralNeutral

The default tone for generic labels with no particular status weight. Use when the badge is purely informational, whether you need a stronger filled style or a quieter outlined style.

Outlined

Controls whether the badge uses a filled or outlined style. Outlined gives the badge a lighter visual presence.

Neutral Primary Accent Success Warning Danger Cyan Purple

The default filled style uses a solid background. Use when badges need to read strongly at a glance across the full variant set.

Dismissible

Add a close button when the user should be able to remove the badge. For example, active filters or removable tags.

Filter

Use when the badge is informational only and should not be removed by the user.

Icon

Pair the badge with an icon when a visual cue helps users recognise meaning faster than the text alone.

Active

Add an icon through the icon slot. Use small, recognisable icons that reinforce the badge's meaning without competing with the label.

Full width

Use full width when the badge needs to align to the width of its container.

Application review in progress

Use the default width for short inline labels.

Structure

Badge

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-xs4pxSpace between the left and right edges of the badge container and its contentsgds-padding-noneSpace between the top and bottom edges of the component and its content; also removes right padding when dismissiblesgds-padding-3-xsSpace between the left and right edges of the badge label and its contentBordersgds-border-radius-smCorner radius of the badge; corner radius of the sgds close buttonsgds-close-btn-border-radiusCorner radius alias used by the dismissible close buttonsgds-border-width-11pxBorder of the badgeTypographysgds-font-size-label-xsFont size of the badgesgds-line-height-3-xsHeight variesLine height of the badgeSizesgds-dimension-192Maximum width before the badge label truncatessgds-dimension-24Height of the badge

Usage

When to use

  • Use badge for short supporting labels such as status, count, or category.
  • Use it when a small visual cue helps users interpret nearby content more quickly.

When not to use

  • Do not use badge as the main message or action on the page.
  • Do not put long sentences inside a badge.

Best practices

NeutralNeutral
Keep the badge short

A short status or category label works best because users can read it at a glance.

This is a very long badge label that should be plain text instead
Do not put sentences inside a badge

Long badge text is hard to scan at a glance and stops looking like a label.

Accessibility considerations

Built-in accessibility

  • Badges work as visual labels for status, count, or category information.
  • The component does not add custom keyboard behaviour.

Labels and content

  • Use clear badge text instead of relying on colour alone.
  • Keep the badge close to the content it describes.

Focus and interaction

  • Do not make badges focusable unless they are paired with an interactive control.
  • If the badge changes status, make sure the surrounding content explains the change.

Keyboard interaction

This component does not have a separate keyboard interaction table because:

  • Badges are visual labels for status, count, or category information.
  • They should not receive focus unless they are part of another interactive control.

Updates

DateVersionDescription09 Jun 2026v3.21.1Truncation is controlled by CSS not JS in #677.04 May 2026v3.18.1Update badge font size and line height in #635.06 Oct 2025v3.5.0New variants and tone in #409.04 Sept 2025v3.3.2Tooltip badge event clashes in #363.29 Aug 2025v3.3.0310 badge suggest a new feature enhance sgds badge to support truncation and tooltip on hover in #337.

Roadmap

Planned itemStatusTargetFuture enhancements for badgePlannedTBD

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/badge

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