Checkbox

Use checkboxes allow users to switch items on or off.

Use checkboxes to allow users to select one or multiple items from a list

 

Checkbox illustration 1

Usage

checkbox usage illustration 1

Use to allow users to agree or disagree for permissions, for example: terms and conditions, or marketing preferences.

checkbox usage illustration 2

Consider "Select All" when needed – If there are many options, provide a "Select All" checkbox to improve usability.

checkbox usage illustration 3

Do not use the checkbox component if users can only select one option from a selection. In this case, use a radio.

checkbox usage illustration 4

Use default states thoughtfully – Default to unchecked unless there’s a strong reason (e.g. preserving previous user choices).


Writing a checkbox

Writing labels

Checkbox groups need a group label, which should always sit aligned above it. This label allows users to understand what to enter as well as auto-focusing the input, which creates a larger touch target.
Copy for individual inputs in checkbox groups are in semibold for consistency. This is because they sit in a hierarchy below the group labels.
Only ask for information that is definitely needed - don’t mark fields as ‘required’, instead use ‘optional’.

Pre-filling inputs

Do not pre-select checkbox options as this makes it more likely that users will:

  • not realise they’ve missed a question
  • submit the wrong answer

Hint text

There are 2 types of hint texts:

  • text that appears below the checkbox list label - this should be relevant to the entire group, for example ‘Select all that apply’
  • text below the select item that's relevant to that item only

Error messages

Error messages should appear:

  • above the input
  • below the label and help text

These should be written in a concise, specific way using plain language. Don't use pleasantries, for example 'please', 'sorry'.
For standalone checkboxes, error messages should appear above the checkbox:

Standalone checkbox

There are times when a group label is not needed – a standalone checkbox for example. In these cases, make sure copy is concise so the checkbox makes sense.

Setting errors

In case you want to notify user about an error (typically this checkbox is required) you can provide error prop with text you want to display


Available platforms

Platform

Available

Figma

v3+

Web (@ovotech/element)

v3.1.0+

App (@ovotech/element-native)

v3.1.0+