Pular para o conteúdo

Checkbox

Controle para consentimento, seleção múltipla e opções submetidas em formulário.

Instalação

Instale o Checkbox da sua stack e rode o comando individual ITpS em seguida. O comando itps add checkbox é theme-only: ele valida o slug e confirma que o contrato visual vem do tema ITpS, das classes copy-first e dos snippets desta página.

terminal · React/Next

pnpm dlx shadcn@latest add checkbox
pnpm dlx github:ITPS/sinapse-ui-cli add checkbox

terminal · Vue3/Nuxt4

pnpm dlx shadcn-vue@latest add checkbox
pnpm dlx github:ITPS/sinapse-ui-cli add checkbox

O comando individual adapta só este componente; não instala o catálogo inteiro.

Uso

Em React/Next com shadcn/ui e Vue3/Nuxt4 com shadcn-vue, use o Checkbox instalado pela stack. O tema ITpS vem dos tokens aplicados pela CLI, então o exemplo deve continuar simples e próximo da documentação oficial.

Use itps-checkbox quando precisar do contrato copy-first em HTML ou wrappers finos. O input continua nativo; a caixa visual só reflete foco, seleção, erro e desabilitado.

Exemplos

Estados

EstadoReact/Next e Vue3/Nuxt4HTML
Selecionado inicialdefaultChecked ou valor controladochecked no input
Desabilitadodisableddisabled no input
Inválidoaria-invalid="true"is-invalid no label e aria-invalid="true" no input

Associe mensagens de ajuda ou erro com aria-describedby. Para valor controlado em React/Vue, siga o padrão da stack em vez de copiar as classes .itps-checkbox.

Grupo

Use fieldset e legend quando a lista tiver um rótulo coletivo. Em formulário HTML, cada checkbox do grupo deve ter o mesmo name e um value próprio; no shadcn, controle a lista selecionada pelo estado da aplicação.

PeçaUso copy-first
itps-checkbox-groupWrapper vertical para um grupo de opções.
itps-checkbox-group__legendTítulo do grupo dentro do fieldset.
nameMesmo nome para opções da mesma lista.
valueValor enviado quando aquela opção está marcada.

Validação

Quando o checkbox for obrigatório, mostre a mensagem com itps-field__error e conecte a mensagem pelo aria-describedby.

Você precisa aceitar os termos para continuar.

API copy-first

Classe/atributoUso
itps-checkboxLabel clicável que envolve input, caixa visual e texto.
itps-checkbox__inputInput nativo visualmente oculto.
itps-checkbox__boxCaixa visual sincronizada com o input.
itps-checkbox__checkÍcone decorativo de seleção.
itps-checkbox__labelTexto visível da opção.
itps-checkbox-groupWrapper vertical para listas de opções.
itps-checkbox-group__legendTítulo do grupo dentro do fieldset.
is-invalidEstado inválido aplicado ao label.
checkedEstado selecionado inicial do input nativo.
disabledBloqueia interação.
aria-invalid="true"Comunica erro quando há mensagem conectada.
aria-describedbyLiga o input à mensagem de erro ou apoio.

Acessibilidade

Mantenha o <input type="checkbox"> no DOM para preservar foco, teclado e envio em formulário. Use Space para alternar, disabled para bloquear interação e aria-invalid apenas quando houver uma mensagem de erro conectada. Para preferência com efeito imediato, use Switch; para seleção submetida em formulário, use Checkbox.