Pular para o conteúdo

Checkbox

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

Em cada stack

HTML e Astro
Classes itps-* do CSS Sinapse, com todas as variantes desta página.
React e Vue
Componentes padrão do shadcn (checkbox) com o tema Sinapse: cores, fonte e raio vêm do tema, e as variantes itps-* desta página existem só no HTML.

Instalação

O comando instala o Checkbox da sua stack com o tema Sinapse. Configure o registry uma vez por projeto em Comece por aqui.

terminal · React/Next

pnpm dlx shadcn@latest add @sinapse/checkbox

terminal · Vue 3/Nuxt 4

pnpm dlx shadcn-vue@latest add https://dsystem.sinapse.org.br/r/vue/checkbox.json

Sem shadcn, não há instalação por componente: use o CSS Sinapse e as classes da API copy-first desta página.

Uso

Em React/Next com shadcn/ui e Vue 3/Nuxt 4 com shadcn-vue, use o Checkbox instalado pela stack. O tema Sinapse vem dos tokens instalados pelo CLI do shadcn ou do shadcn-vue, 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 Vue 3/Nuxt 4HTML
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.