Checkboxes provide users with a range of options for a given statement where the user may select any number of choices, including zero, one or multiple. In a form, always place checkboxes underneath each other to aid in a user’s ability to scan the form.
Usage
The Checkbox component maps to a checkbox input and a label. The label is
provided as children to the component. If you need custom label behaviour use
the CheckboxPrimitive component.
Controlled
The Checkbox component passes on the original event through the onChange handler. Use the event target's checked property to get the latest value and update state accordingly.
Size
The Checkbox is available in a "small" size. Reserve this appearance for data-rich, dense interfaces.
Guidelines
- Avoid checkboxes with actions that are the opposite of what the user expects.
- The default view for checkboxes has no option selected.
- Checkbox options should be listed in a logical order (alphabetical, numerical, time-based, etc).
Groups
Use the CheckboxGroup to implement a group of checkboxes. Each Checkbox within a group must have a "value" prop.
Primitive
Use the CheckboxPrimitive to implement custom behaviours and appearances.
Indeterminate state
The indeterminate state of a checkbox input element is controlled by JavaScript, not HTML attribution. To make things more declarative and less confusing Balance checkboxes accept a "tri-state"; the checked value for a checkbox may be true | false | 'mixed', where "mixed" indicates an indeterminate state aligning with the aria-checked attribute.