Browse Components

Components

Combo box

A combo box lets users make one or more selections from a list using text input, the keyboard, or the mouse.

DesignUsageAccessibilityUpdates

Purpose

Search within a list

Use combo box when users need to filter a longer list of options.

Constrain choices

Users can type to narrow options while still selecting valid values.

Support single or multiple values

Use single or multi-select modes based on the question.

Anatomy

Option label
Secondary text
Option label
Secondary text
Option label
Secondary text
1

Label

2

Value (Placeholder text/Filled text)

3

Input container

4

Option label

5

Secondary text (optional)

6

Menu (dropdown)

Configuration

Hint text

Add hint text to the combo box to clarify what users are searching for.

Singapore Malaysia Indonesia

The default. Use when the label alone is enough.

Placeholder

Use placeholder text to suggest the kind of value the user can search for.

Singapore Malaysia

Empty input with no helper text inside.

Selection mode

Combo boxes can accept a single value or multiple values through checkbox items. In multi-select, selected values wrap within the same field width and the control grows vertically as needed.

Singapore Malaysia Indonesia

User picks one option; selecting another replaces the first.

Disabled

Disable the combo box so its value cannot be changed.

Singapore Malaysia

Default interactive state.

Validation feedback

Show error styling and a feedback message when the input is invalid.

Singapore Malaysia

No feedback shown.

Clearable

Clearable combo boxes let users remove the selected value without deleting text manually.

GovTech MCI

Use clearable when users commonly need to reset a selected value.

Loading and empty state

Use loading and empty async menu states when combo box options are retrieved after the user searches.

GovTech

Use loading while options are being fetched.

Multi-select badge width

Multi-select selections can use full-width badges when labels need to align in a stacked layout.

Finance and procurement services Health support services

Use the default badge width for short selected labels.

Disabled option

Individual combo box items can be disabled when an option is unavailable.

GovTech MCI

Use available options for selectable values.

Structure

Housing Transport Health

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-ySpace between the top and bottom edges of the field and the typed valueGapsgds-gap-xs8pxSpacing between items of the combobox input containerBordersgds-form-border-width-defaultWidth variesPadding of the combobox input containerSizesgds-dimension-4848pxHeight of the combo box input containersgds-icon-size-mdSize of the clear icon in the combo boxOutlinesgds-outline-focusFocus outline of the form clearable when keyboard-focusedsgds-outline-offset-focusFocus-outline offset of the form clearable when keyboard-focused

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

Singapore Malaysia Indonesia Thailand Vietnam
Use combo box for longer option lists

Use combo box when the list is long enough that typing helps users reach an option faster than scrolling.

Email SMS
Do not use combo box for very short lists

For a small number of options, use a simpler control such as radio buttons or select instead.

Housing grants Transport licences Health subsidies
Use a clear label and supporting hint

Keep the visible label specific, and use hint text to clarify what users can search for.

Housing grants Transport licences Health subsidies
Do not rely on placeholder as the only instruction

Placeholder text disappears once users type. Keep the field label visible so the purpose stays clear.

Ministry of Manpower (MOM) Ministry of Health (MOH) Ministry of Social and Family Development (MSF)
Keep option text specific and searchable

Use option labels that match the words users are likely to type so filtering stays reliable.

School A School B School C
Do not use combo box as free-text input

Combo box is for filtering and selecting from provided options. For custom values, use a text input.

Accessibility considerations

Built-in accessibility

  • Combo boxes combine an input with a selectable list of options.
  • The component emits input, change, focus, blur, and select events for application state.

Labels and content

  • Use clear placeholder or label text that tells users what to search for.
  • Keep option labels short and unique enough to recognise when filtered.

Focus and interaction

  • Users should be able to type in the field and move to filtered options.
  • Return users to a predictable point in the flow after a selection is made.

Keyboard interaction

KeyInteractionTabMoves focus from the combo box to the next focusable element.Shift+TabMoves focus to the previous interactive element.↓ Downor↑ UpOpens the combo box menu or moves focus between available options.EnterActivates the focused focused option.EscCloses the open combo box when supported by the component.BackspaceRemoves the last selected item when multi-select is enabled and the input is empty.

Updates

DateVersionDescription09 Jun 2026v3.21.1Input prematurely expand in height for multiselect in #695.02 Jun 2026v3.20.0Support custom validation with noValidate in #646.23 Jan 2026v3.7.0Asynchronous combobox in #499.23 Jan 2026v3.7.0Selection does nothing for disabled option in #524.19 Dec 2025v3.6.1Added clear all button for combobox and added handlin… in #476.

Roadmap

Planned itemStatusTargetFuture enhancements for combo boxPlannedTBD

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/combo-box

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