Pular para o conteúdo

Botões de opção

Botões de opção permitem o usuário selecionar uma das opções de um conjunto.

Use botões de opção quando um usuário precisar ver todas as opções disponíveis. If available options can be collapsed, consider using a Select component because it uses less space.

Os botões de opção devem ter a opção comum e mais usada selecionada por padrão.

Radio group

O componente RadioGroup é um wrapper utilizado para agrupar componentes Radio, fornece uma API mais simples e adequada para a acessibilidade por teclado.

Press Enter to start editing

Direção

To lay out the buttons horizontally, set the row prop:

Controlled

You can control the radio with the value and onChange props:

Press Enter to start editing

Botões de opção independentes

O componente Radio também pode ser usado de forma independente, sem o wrapper RadioGroup.

Press Enter to start editing

Tamanho

Use the size prop or customize the font size of the svg icons to change the size of the radios.

Press Enter to start editing

Cor

Press Enter to start editing

Posicionamento do rótulo

Você pode alterar o posicionamento do rótulo com o componente FormControlLabel na propriedade labelPlacement:

Exibição de erro

Em geral, os botões de opção devem ter um valor selecionado por padrão. Se esse não for o caso, você pode exibir um erro se nenhum valor estiver selecionado quando o formulário for submetido:

Choose wisely

Opções customizadas

Aqui está um exemplo de customização do componente. You can learn more about this in the overrides documentation page.

useRadioGroup

Para situações de uso avançadas de customização, um hook useRadioGroup() é exposto. Ele retorna o valor do contexto do grupo de botões de opção pai. O componente de botões de opção usa este hook internamente.

API

import { useRadioGroup } from '@material-ui/core/RadioGroup';

Retornos

value (object):

  • value.name (string [opcional]): O nome usado para fazer referência ao valor do controle.
  • value.onChange (func [optional]): Callback fired when a radio button is selected.
  • value.value (any [opcional]): Valor do botão de opção selecionado.

Exemplo

Press Enter to start editing

Quando usar

Acessibilidade

(WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/radiobutton/)

  • 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. In most cases, this is done by using the <label> element (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 propriedade inputProps.
<Radio
  value="radioA"
  inputProps={{
    'aria-label': 'Radio A',
  }}
/>