Skip to main content

Figma Storybook

Checkbox

A small box that users can tick or untick to select or deselect an option. Use when users can pick more than one item from a list. Don't use when only one choice is allowed — use Radio Button instead.

Figma Storybook Docs

Description

What it does

Checkbox lets a user toggle a binary choice: selected or not selected. In a group, multiple checkboxes can be selected simultaneously.

Where it appears

Multi-select option lists, filter panels, permission settings, and any context where users need to pick one or more items from a set.

Why it exists

When multiple selections are valid, checkboxes are the appropriate control — they make it visually clear that combinations are permitted. Radio buttons do not allow this.

A single checkbox is appropriate for a single binary decision: "I agree to the terms". A group of checkboxes is appropriate for multi-select lists. Standalone checkboxes should never need a fieldset.

Anatomy

PartRequired?Notes
Checkbox control Required The interactive square. Must be 16–20px for touch usability, with a minimum 44×44px hit area.
Checked indicator Conditional Checkmark shown when selected. A dash (—) indicates an indeterminate state in parent/child group patterns.
Label Required Plain language description of the option. Always visible — never use placeholder text as a label.
Group container Conditional A <fieldset> wrapping all related checkboxes. Required for groups; omit for standalone checkboxes.
Group label Conditional A <legend> describing what the group of checkboxes collectively represents. Required when using a fieldset.

States

State Behaviour
Unchecked Empty box. Default state.
Checked Box with checkmark. Option is selected.
Indeterminate Box with dash. Used in parent/child tree patterns when some — but not all — child items are checked. Not a user-selectable state; set via JavaScript.
Disabled Greyed out. Use only when a checkbox is unavailable for a specific, communicated reason. Disabled fields are not announced to screen readers — consider using a read-only alternative.
Focus Focus ring on control. 2px solid focus ring, --op-color-focus-ring, with 2px offset.
Error Red border + error message. Used when a required group has no selection. See Form Control documentation.

Usage guidelines

Checkbox vs Radio Button vs Switch

Control Use when
Checkbox Multiple selections are valid. "Which notification types do you want?"
Radio button Exactly one selection is required. "How often should this reminder fire?"
Switch A single setting is being toggled on or off with immediate effect.

Do / Don't

Do

Use positive language for checkbox labels. "Email me about new responses" is clearer than "Don't suppress email notifications".

Don't

Don't use a checkbox to trigger an immediate action. Checkboxes are form inputs — their effect applies on form submission, not on click. Use a Switch for immediate-effect toggles.

Do

Use <fieldset> + <legend> for all checkbox groups. This is what makes the group label accessible — CSS styling alone doesn't communicate group structure to screen readers.

Don't

Don't use checkboxes for a single required choice where exactly one option must be selected. That's a radio button.

Was this page helpful?

Updated 9 September 2026