Badge

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

DesignUsageAccessibilityUpdates

Purpose

Label at a glance

Badges attach short labels to content — a status, a count, a category — without breaking the reading flow.

Signal without words

Colour-coded tones communicate meaning quickly, so users can scan a list and immediately understand state.

Complement, don't crowd

Badges are deliberately small and quiet — they annotate content rather than compete with it.

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

Use when the text label is enough to convey the badge's meaning.

Playground

BETA
NeutralNeutral
OutlinedDismissibleIcon

Structure

Default Success Outlined

Component tokens

Component tokens are specific to each component. Use the table title as the prefix: padding-3-xs under sgds/badge means sgds/badge/padding-3-xs.

sgds/badge
CategoryComponent tokenSemantic tokenValuePaddingpadding-3-xssgds/padding/3-xspadding-nonesgds/padding/nonepadding-xssgds/padding/xs4pxBorderborder-color-mutedsgds/border-color-muted#DFDFDFborder-color-transparentsgds/border-color-transparentborder-radius-smsgds/border-radius/smborder-width-1sgds/border-width/11pxTypographyfont-size-14sgds/font-size/14font-weight-regularsgds/font-weight/regularline-height-20sgds/line-height/20Colourcolor-fixed-darksgds/color-fixed-darkcolor-fixed-lightsgds/color-fixed-light#F3F3F3surface-fixed-lightsgds/surface-fixed-lightprimary-border-color-mutedsgds/primary/border-color/mutedprimary-color-fixed-darksgds/primary/color/fixed-darkprimary-surface-defaultsgds/primary/surface/defaultprimary-surface-mutedsgds/primary/surface/mutedsuccess-border-color-mutedsgds/success/border-color/muted

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 stretch the badge into body copy

Long badge text is harder to scan and starts behaving like regular content.

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

DateVersionDescriptionLoading updates…

Roadmap

Planned itemStatusTargetFuture enhancements for badgePlannedTBD

Feedback

Have suggestions or feedback?

Share them with us on Slack → #design-system-feedback

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.