docs/data/material/components/checkboxes/checkboxes.md
Checkboxes can be used to turn an option on or off.
If you have multiple options appearing in a list, you can preserve space by using checkboxes instead of on/off switches. If you have a single option, avoid using a checkbox and use an on/off switch instead.
{{"component": "@mui/internal-core-docs/ComponentLinkHeader"}}
{{"demo": "Checkboxes.js"}}
You can provide a label to the Checkbox thanks to the FormControlLabel component.
{{"demo": "CheckboxLabels.js"}}
Use the size prop or customize the font size of the svg icons to change the size of the checkboxes.
{{"demo": "SizeCheckboxes.js"}}
{{"demo": "ColorCheckboxes.js"}}
{{"demo": "IconCheckboxes.js"}}
You can control the checkbox with the checked and onChange props:
{{"demo": "ControlledCheckbox.js"}}
A checkbox input can only have two states in a form: checked or unchecked. It either submits its value or doesn't. Visually, there are three states a checkbox can be in: checked, unchecked, or indeterminate.
You can change the indeterminate icon using the indeterminateIcon prop.
{{"demo": "IndeterminateCheckbox.js"}}
:::warning
When indeterminate is set, the value of the checked prop only impacts the form submitted values.
It has no accessibility or UX implications.
:::
FormGroup is a helpful wrapper used to group selection control components.
{{"demo": "CheckboxesGroup.js"}}
You can change the placement of the label:
{{"demo": "FormControlLabelPosition.js"}}
Here is an example of customizing the component. You can learn more about this in the overrides documentation page.
{{"demo": "CustomizedCheckbox.js"}}
šØ If you are looking for inspiration, you can check MUI Treasury's customization examples.
(WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/)
<label> element (FormControlLabel).aria-label, aria-labelledby, title) via the slotProps.input prop.<Checkbox
value="checkedA"
slotProps={{
input: { 'aria-label': 'Checkbox A' },
}}
/>