Browse Components

Components

Button

Custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.

DesignUsageAccessibilityUpdates

Purpose

Start an action

Use buttons for actions such as submitting, saving, opening, or confirming.

Show action hierarchy

Variants help users identify the main action and secondary choices.

Cover common states

Loading, disabled, and focus states keep button behaviour predictable.

Anatomy

Button label
1

Container

2

Label

3

Left icon (optional)

4

Right icon (optional)

Configuration

Variants

Button variants communicate hierarchy and help users identify the primary action on a screen.

Primary action

Use for the main action on a screen. Each view should have only one primary button to communicate the next step.

Tone

Button tone changes the colour treatment within the selected variant so the action can match the surrounding context.

Button label

The default button tone. Use for standard actions in the main SGDS brand colour system.

Size

Button sizes let you match the visual weight of the action to the density of the surrounding layout.

Button label

The default size. Use for most primary actions across forms, dialogs, and general page content.

Leading icon

A leading icon sits to the left of the button label and reinforces the meaning of the action.

Button label

Use a leading icon when the icon adds clarity to the action. For example, a download icon before a download label.

Trailing icon

A trailing icon sits to the right of the button label and is typically used to signal direction or progression.

Button label

Use a trailing icon to indicate navigation, forward movement, or that a menu or panel will open.

State

Buttons expose disabled, loading, and active states for common interaction feedback.

Button label

Use for actions that are available immediately.

Full width

Full width makes the button fill its parent container for stacked or narrow layouts.

Button label

Use the default width for inline actions.

Structure

Button label

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 usedBordersgds-border-radius-md8pxsgds-border-width-11pxSpacingsgds-gap-none0pxGap used when the button has no icon slotsSizesgds-dimension-4848pxsgds-dimension-9696pxTypographysgds-font-size-label-md16pxColoursgds-color-fixed-light#F3F3F3sgds-color-fixed-light#F3F3F3Paddingsgds-padding-lg20pxSpace between the left and right edges of the component and its contentSizesgds-dimension-4848pxHeight of the buttonsgds-dimension-9696pxMinimum width of the buttonTypographysgds-font-size-label-md16pxFont size of the buttonsgds-line-height-xs24pxLine height of the button

Usage

When to use

  • Use button for a clear action that changes the page, saves progress, or moves the task forward.
  • Use the button variant that matches the importance of the action.

When not to use

  • Do not use button for navigation when a link would be clearer.
  • Do not use vague labels that force users to guess what happens next.

Best practices

Save changes
Use a clear action label

Specific labels help users understand the outcome before they act.

Click here
Do not use vague labels

Generic labels such as Click here force users to read surrounding text to understand what happens.

Accessibility considerations

Built-in accessibility

  • Buttons render as native buttons by default and anchors when href is provided.
  • The component exposes disabled and loading states to assistive technology.

Labels and content

  • Use button text that describes the action.
  • Add an accessible label when the visible text is replaced by an icon or loading state.

Focus and interaction

  • Keep buttons in the same order as the task flow.
  • Do not use a disabled button as the only way to explain what users need to do next.

Keyboard interaction

KeyInteractionTabMoves focus from the button to the next focusable element.Shift+TabMoves focus to the previous interactive element.EnterActivates the focused button.SpaceActivates the focused button.

Updates

DateVersionDescription23 Jun 2026v3.22.0Value and name prop for form use case in #704.04 May 2026v3.18.1Replace typography css variables in #638.18 Dec 2025v3.6.0Add default button color to prevent initial load of wrong color in #479.12 Nov 2025v3.5.6Feat/button spinner icon button in #461.12 Nov 2025v3.5.6Fix/modal close button misalignment in #463.

Roadmap

Planned itemStatusTargetFuture enhancements for buttonPlannedTBD

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

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