Pular para o conteúdo
// visualizar em
salvo em todas as páginas

Radio group

Grupo de botões de rádio para uma escolha entre poucas opções, todas visíveis ao mesmo tempo. O grupo é uma única parada de tabulação; as setas movem e selecionam.

Feito com Base UIPadrão WAI-ARIA Radio GroupComponente clienteCódigo ↗
minimal · light · #3fa34d
Plano
disabled
readOnly

Instalação

Configure o Camaleo uma vez (Instalação) e importe o que precisar. Dê um nome ao grupo com Fieldset e FieldsetLegend, e envolva cada Radio num Label.

import { RadioGroup, Radio, Fieldset, FieldsetLegend, Label } from "@camaleo/react";

Anatomia

O RadioGroup guarda o valor. Cada Radio é um círculo com um ponto dentro, nomeado pelo Label em volta dele.

radioPro
[data-slot="radio-group"][data-slot="radio"] · [data-slot="radio-indicator"]texto do [data-slot="label"]

Exemplos

Cada exemplo é um arquivo real que você pode copiar. Todos usam o estilo, o modo e a cor escolhidos na barra acima.

minimal · light · #3fa34d
Plano
Região de armazenamento

Menor latência para clientes no Brasil.

Mais perto da maioria dos serviços dos EUA.

Mantém os dados dentro da União Europeia.

Com descrições

Quando só o nome não ajuda a escolher, ponha uma linha embaixo de cada opção e ligue com aria-describedby.

Período de cobrança

R$ 99 por mês, cancele quando quiser.

Controlado

Clique numa opção. value e onValueChange deixam o resto da tela reagir, aqui o preço embaixo.

Forma de pagamento

Obrigatório, com erro

Envie sem escolher. Sem um padrão seguro, marque o grupo como required e diga o que fazer no FieldError.

Enviar o código de acesso por

Cadastre um celular no seu perfil para usar esta opção.

Uma opção desativada

Desative só a opção que não pode ser usada e diga como liberá-la. As setas pulam essa opção.

Preferência de assento

Em linha

Duas ou três opções curtas podem ficar lado a lado. Rótulos maiores se leem mais rápido em coluna.

Entrega (confirmada)

Somente leitura

Numa etapa de revisão, readOnly mostra a escolha e continua focável, ao contrário de disabled, que apaga o visual.

Em contexto

Um radio group faz uma pergunta por vez. São pedaços inteiros de interface para copiar, no estilo que você escolheu.

Finalizar compra

Tipo de entrega

Total

R$ 467,80
Tipo de entregaCard · RadioGroup · Separator · Button

Aparência

Vale só para este dispositivo.

Tema
Densidade
Ajustes de aparênciaCard · Fieldset · RadioGroup

Cancelar assinatura

Você continua no Pro até 30/11/2026.

Qual é o principal motivo?
Pesquisa de cancelamentoCard · RadioGroup · Textarea · Button

Boas práticas

FaçaUm checkbox para um único sim.

Dá para marcar e desmarcar de novo.

EviteUm radio sozinho.

Depois de escolhido não dá para desfazer, então um radio solto prende a pessoa.

Tamanho da equipe
FaçaOpções que não se sobrepõem.

Cada resposta cabe em exatamente uma opção.

Tamanho da equipe
EviteFaixas que dividem o limite.

Uma equipe de 10 cabe em duas opções, então a pessoa chuta.

Props

PropriedadeTipoPadrãoDescrição
disabledbooleanfalseIgnora a interação em todas as opções.
readOnlybooleanfalseImpede mudar a escolha, mas mantém o grupo focável e legível.
requiredbooleanfalseSe é preciso escolher uma opção para enviar o formulário.
namestring—Nome do campo no envio do formulário.
valueany—O valor do radio escolhido (controlado). Para não controlar, use defaultValue.
defaultValueany—O valor escolhido no início (não controlado).
onValueChange(value, details) => void—Chamada quando a escolha muda.

O Radio recebe um value obrigatório (o que o grupo informa quando ele é escolhido) e disabled. Os atributos nativos passam direto.

Styling hooks

Mude o visual sem copiar o componente: use os atributos ou defina os tokens num elemento pai, num estilo ou no próprio grupo.

Atributos

data-slot"radio-group" · "radio" · "radio-indicator"
data-checkedpresente no radio escolhido
data-uncheckedpresente nos outros
data-disabledpresente quando desativado
data-readonlypresente quando somente leitura
data-invalidpresente quando o Field está inválido

Tokens que ele lê

Cor

--cml-accent--cml-accent-fg--cml-border-control--cml-check-on-border--cml-check-shadow--cml-field-bg--cml-focus-offset--cml-focus-ring--cml-focus-width

Forma e tamanho

--cml-check-border-width--cml-check-size--cml-font-size-field--cml-gap--cml-radius-check--cml-radius-pill--cml-radius-radio

Tipografia e movimento

--cml-duration-fast--cml-ease-standard--cml-font-body

Só deste componente

--cml-check-on-image--cml-corner-shape--cml-disabled-opacity--cml-radio-dot-shadow

Acessibilidade

TabLeva o foco para dentro do grupo, no radio escolhido (ou no primeiro), e para fora de novo.
SetasVão para o radio anterior ou o próximo e o escolhem.
SpaceEscolhe o radio com foco, se ainda não estiver escolhido.

Relacionados

Esta página foi útil? · Editar esta página no GitHub