Browse Components

Components

Checkbox

Checkbox component is used when you require users to select multiple items from a list.

DesignUsageAccessibilityUpdates

Purpose

Select multiple options

Use checkboxes when users can choose more than one item from a list.

Show every choice

Visible options help users compare choices before they submit.

Group related choices

Use a shared label when several checkboxes answer the same question.

Anatomy

Option label
1

Checkbox control

2

Option label

Configuration

State

A checkbox can be unchecked, checked, or indeterminate. Indeterminate is used when a parent represents a mixed selection of its children.

Email me updates

Indicates the option has been selected. Use when the user has actively opted in or the value is pre-selected by default.

Group

Use a checkbox group to bind related options under a single label. The group manages the consolidated value of the selected checkboxes.

Subscribe to monthly digest

A single checkbox used on its own. For example, to confirm a setting or accept terms.

Hint text

Add hint text to a checkbox group to explain what users are choosing or how the selection will be used.

Email SMS Phone call

Use when the choice needs additional context, such as how the data will be used or what selecting an option implies.

Disabled

Use the disabled state to prevent interaction when the option is not available in the current context.

Email me updates

Use when the option is temporarily unavailable. Disabled checkboxes appear muted and cannot be focused or toggled.

Validation feedback

When the group is invalid, surface inline feedback so users can correct the input. Use hasFeedback to control whether validation shows as text, style, or both.

Email SMS Phone call

No feedback styling. Use when the field has no validation requirements.

Structure

Email SMS

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-form-padding-inline-smOuter spacing of the form checkGapsgds-form-gap-mdSpacing between items of the fieldset; spacing between items of the checkbox containersgds-form-gap-smSpacing between items of the label hint containersgds-checkbox-group-gapInternal checkbox group gap aliasBordersgds-form-border-width-defaultWidth variesBorder of the form check inputTypographysgds-font-size-label-mdFont size of the form labelsgds-font-weight-regularFont weight of the form labelSizesgds-spacer-2Spacing between items inside the componentsgds-icon-size-mdSize of the checkbox indicator iconBordersgds-form-border-radius-mdCorner radius of the form check input

Usage

When to use

  • Use this component to collect or change a specific piece of information in a predictable way.
  • Use it when the SGDS control matches the type of response users need to provide.

When not to use

  • Do not use this component when another SGDS control would reduce effort or make the choice clearer.
  • Do not ask for more information, options, or steps than users need at that point in the task.

Best practices

Email me updates
Use a single checkbox for one optional choice

Use a standalone checkbox when users are confirming or selecting one optional item within a form.

Email SMS Phone call
Do not use checkboxes for one required choice

If users must choose exactly one option, use radio buttons so the mutual exclusivity is clear.

Email SMS Phone call
Use checkbox groups for multi-select choices

Use checkboxes when users can select more than one option from the same set.

Yes No
Do not use two checkboxes for a yes-or-no decision

A pair of Yes and No checkboxes lets users select both. Use radio buttons or one clearly labelled checkbox instead.

Email SMS Phone call
Use checkbox groups for multi-select choices

Use checkboxes when users can select more than one option from the same set.

Yes No
Do not use two checkboxes for a yes-or-no decision

A pair of Yes and No checkboxes lets users select both. Use radio buttons or one clearly labelled checkbox instead.

Email SMS Phone call
Use checkbox groups for multi-select choices

Use checkboxes when users can select more than one option from the same set.

Yes No
Do not use two checkboxes for a yes-or-no decision

A pair of Yes and No checkboxes lets users select both. Use radio buttons or one clearly labelled checkbox instead.

NRIC Proof of address Income statement Supporting letter
Use a clear group label

A shared label helps users understand what the checkbox options represent before they start selecting.

Passport renewal Driving licence Housing grant Healthcare subsidy Work permit Business registration Marriage registration Property tax
Do not overload a checkbox group

If the list is long or hard to scan, use select or combo box instead of showing every option as a checkbox.

Accessibility considerations

Built-in accessibility

  • Checkboxes render native checkbox inputs and reflect checked, disabled, and invalid states.
  • Checkbox groups provide shared label, hint, and feedback areas.

Labels and content

  • Write labels that describe the choice clearly.
  • Use checkbox groups when users may select more than one option.

Focus and interaction

  • Users should be able to move through each checkbox and its feedback text in order.
  • Keep related checkboxes inside the same group when they answer one question.

Keyboard interaction

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

Updates

DateVersionDescription13 May 2026v3.19.0Ui discrepancy in #643.17 Oct 2025v3.5.4Ensure checkbox box remains square and not compressed by label text in.28 Jul 2025v3.1.0SgdsCheckboxGroup becomes a form component for multi selection checkbox #254.28 Jul 2025v3.1.0SgdsCheckbox becomes a standalone checkbox component for single selection checkbox @clukhei #254.

Roadmap

Planned itemStatusTargetFuture enhancements for checkboxPlannedTBD

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

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