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

Checkbox

Caixa de seleção que liga ou desliga uma opção, ou escolhe quantas quiser de uma lista. O CheckboxGroup guarda os valores num array e pode controlar uma caixa de "selecionar todos".

Feito com Base UIPadrão WAI-ARIA CheckboxComponente clienteCódigo ↗
minimal · light · #3fa34d
defaultChecked
indeterminate
disabled

Instalação

Configure o Camaleo uma vez (Instalação) e importe o que precisar. Envolva cada checkbox num Label para o texto ser clicável e dar nome a ele.

import { Checkbox, CheckboxGroup, Label } from "@camaleo/react";

Anatomia

Um Checkbox é uma caixa com um indicador dentro. Um CheckboxGroup envolve vários checkboxes com rótulo e mantém os valores juntos.

checkboxNovidades do produto
[data-slot="checkbox-group"][data-slot="checkbox"] · [data-slot="checkbox-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
Quero receber e-mails sobre

Grupo com legenda

Fieldset render={<CheckboxGroup />} dá um nome às opções, então o leitor de tela anuncia "Quero receber e-mails sobre" antes de cada uma.

Colunas para exportar

2 de 4 colunas selecionadas

Selecionar todos

Clique nos filhos. Com allValues no grupo e parent numa caixa, ela mostra o estado misto quando só algumas estão marcadas.

Reembolsos acima de R$ 2.500,00 esperam a aprovação de um administrador.

Com descrição

Deixe o rótulo curto e explique a consequência embaixo, ligada com aria-describedby para ser lida depois do nome.

Obrigatório, com erro

Envie sem marcar. Diga o que fazer na mensagem de erro, não só "Obrigatório"; o Field liga a mensagem ao checkbox.

Disponível no plano Empresa.

Desativado, com o motivo

Uma caixa desativada ainda mostra o que está incluído. Quando estiver desmarcada, diga por quê, para a pessoa saber como conseguir.

SelecionarNotaClienteValor
#1042Padaria Pão DouradoR$ 1.280,00
#1043Estúdio LumeR$ 640,50
#1044Transportes AtlasR$ 3.915,00

Seleção de linhas

Numa tabela, a linha é o rótulo; então dê a cada checkbox um aria-label que nomeie a linha.

Em contexto

Checkboxes vivem em formulários e listas. São pedaços inteiros de interface para copiar, no estilo que você escolheu.

Crie sua conta

Grátis por 14 dias. Sem cartão.

Cadastro com termosCard · Field · Input · Checkbox · Button

Filtros

Marca
Disponibilidade
Painel de filtrosCard · Fieldset · CheckboxGroup · Separator

Checklist de lançamento

2 de 5 concluídas

ChecklistCard · CheckboxGroup · Checkbox

Boas práticas

Avisar por
FaçaCheckboxes para quantas opções a pessoa quiser.

Cada uma vale sozinha: dá para escolher nenhuma, uma ou todas.

Período de cobrança
EviteCheckboxes para opções que se excluem.

Mensal e anual ao mesmo tempo não faz sentido. Use um RadioGroup.

FaçaDiga o que a marcação liga.

Caixa marcada deve significar sim: "Quero receber o resumo semanal".

EviteRótulos negativos.

Uma marcação que quer dizer "não deixar de" obriga a pessoa a parar e reler.

Props

PropriedadeTipoPadrãoDescrição
namestringundefinedNome do campo no envio do formulário.
checkedbooleanundefinedSe a caixa está marcada (controlado). Para não controlar, use defaultChecked.
defaultCheckedbooleanfalseSe a caixa começa marcada (não controlado).
disabledbooleanfalseIgnora a interação e tira a caixa da ordem de tabulação.
onCheckedChange(checked: boolean, details) => void—Chamada quando a caixa é marcada ou desmarcada.
readOnlybooleanfalseImpede mudar o valor, mas mantém a caixa focável e legível.
requiredbooleanfalseSe a caixa precisa estar marcada para enviar o formulário.
indeterminatebooleanfalseEstado misto: nem marcada, nem desmarcada. Anunciado como "misto".
parentbooleanfalseSe a caixa controla os filhos de um CheckboxGroup (o "selecionar todos").
valuestring—Identifica a caixa dentro de um CheckboxGroup e é o valor enviado no formulário.

O CheckboxGroup recebe value, defaultValue e onValueChange (arrays com o value dos checkboxes), allValues para uma caixa pai, 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 checkbox.

Atributos

data-slot"checkbox" · "checkbox-indicator" · "checkbox-group"
data-checkedpresente quando marcada
data-uncheckedpresente quando desmarcada
data-indeterminatepresente no estado misto
data-disabledpresente quando desativada
data-invalidpresente quando o Field está inválido

Tokens que ele lê

Cor

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

Forma e tamanho

--cml-font-size-field--cml-gap--cml-radius-check

Tipografia e movimento

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

Só deste componente

--cml-check-border-width--cml-check-on-border--cml-check-on-image--cml-check-on-shadow--cml-check-shadow--cml-check-size--cml-corner-shape--cml-disabled-opacity

Acessibilidade

SpaceMarca ou desmarca o checkbox com foco.
TabVai para o próximo checkbox; cada um é uma parada de tabulação.

Relacionados

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