Caixa de seleção
Caixas de seleção permitem ao usuário selecionar um ou mais itens de um conjunto.
Caixas de seleção podem ser usadas para ativar ou desativar uma opção.
Se você tem várias opções aparecendo em uma lista, você pode economizar espaço usando caixas de seleção ao invés de interruptores liga/desliga. Se você tem uma única opção, evite usar uma caixa de seleção e use um interruptor de liga/desliga.
<Checkbox {...label} defaultChecked />
<Checkbox {...label} />
<Checkbox {...label} disabled />
<Checkbox {...label} disabled checked />
Caixas de seleção com FormGroup
You can provide a label to the Checkbox
thanks to the FormControlLabel
component.
<FormGroup>
<FormControlLabel control={<Checkbox defaultChecked />} label="Label" />
<FormControlLabel disabled control={<Checkbox />} label="Disabled" />
</FormGroup>
Tamanho
Use the size
prop or customize the font size of the svg icons to change the size of the checkboxes.
<Checkbox {...label} defaultChecked size="small" />
<Checkbox {...label} defaultChecked />
<Checkbox
{...label}
defaultChecked
sx={{ '& .MuiSvgIcon-root': { fontSize: 28 } }}
/>
<Checkbox {...label} defaultChecked />
<Checkbox {...label} defaultChecked color="secondary" />
<Checkbox {...label} defaultChecked color="success" />
<Checkbox {...label} defaultChecked color="default" />
<Checkbox
{...label}
defaultChecked
sx={{
color: pink[800],
'&.Mui-checked': {
color: pink[600],
},
}}
/>
<Checkbox {...label} icon={<FavoriteBorder />} checkedIcon={<Favorite />} />
<Checkbox
{...label}
icon={<BookmarkBorderIcon />}
checkedIcon={<BookmarkIcon />}
/>
<Checkbox
checked={checked}
onChange={handleChange}
inputProps={{ 'aria-label': 'controlled' }}
/>
Caixa de seleção com FormControlLabel
Uma caixa de seleção só pode ter dois estados em um formulário: marcado ou desmarcado. Ou submete o seu valor ou não. Visually, there are three states a checkbox can be in: checked, unchecked, or indeterminate.
<FormControlLabel
label="Parent"
control={
<Checkbox
checked={checked[0] && checked[1]}
indeterminate={checked[0] !== checked[1]}
onChange={handleChange1}
/>
}
/>
{children}
⚠️ When indeterminate is set, the value of the
checked
prop only impacts the form submitted values. It has no accessibility or UX implications.
Posicionamento do rótulo
FormGroup
is a helpful wrapper used to group selection control components.
Caixa de seleção customizada
Aqui está um exemplo de customização do componente. Você pode aprender mais sobre isso na página de documentação de sobrescritas.
<BpCheckbox />
<BpCheckbox defaultChecked />
<BpCheckbox disabled />
🎨 Se você está procurando inspiração, você pode verificar os exemplos de customização de MUI Treasury.
Quando usar
Acessibilidade
(WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#checkbox)
- Todos os controles de formulário devem ter rótulos, e isso inclui os botões de opção, caixas de seleção e interruptores. Na maioria dos casos, isso é feito usando o elemento
<label>
(FormControlLabel). - Quando um rótulo não pode ser usado, é necessário adicionar um atributo diretamente no componente de entrada. Nesse caso você pode aplicar um atributo adicional (por exemplo,
aria-label
,aria-labelledby
,title
) através da propriedadeinputProps
.
<Checkbox
value="checkedA"
inputProps={{ 'aria-label': 'Checkbox A' }}
/>