Pular para o conteúdo

Switch

Controle booleano para preferência com efeito imediato.

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 (switch) 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 Switch 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/switch

terminal · Vue 3/Nuxt 4

pnpm dlx shadcn-vue@latest add https://dsystem.sinapse.org.br/r/vue/switch.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 Switch instalado pela stack. O tema Sinapse vem dos tokens instalados pelo CLI do shadcn ou do shadcn-vue, então o exemplo deve continuar próximo da documentação oficial: componente, id e label associado.

Use itps-switch quando precisar do contrato copy-first em HTML ou wrappers finos. O input continua sendo type="checkbox" com role="switch"; track e thumb são apenas a camada visual.

Exemplos

Estados

EstadoReact/Next e Vue 3/Nuxt 4HTML
Ativado inicialdefaultChecked ou valor controladochecked no input
Desabilitadodisableddisabled no input
Controladochecked + onCheckedChangesincronize o atributo/estado no input

Use Switch para preferências de efeito imediato. Quando a escolha depende de envio ou faz parte de seleção múltipla, use Checkbox.

Preferências

Use em listas curtas de configurações independentes. Cada switch deve ter um name próprio quando enviado em formulário.

Quando usar

Use SwitchUse Checkbox
Ativar notificações, sincronização ou modo compacto.Aceitar termos, selecionar itens ou marcar opções para salvar depois.
A mudança acontece assim que o usuário alterna.A mudança depende de envio, revisão ou confirmação.
A opção é independente das demais.O usuário pode escolher múltiplas opções em um grupo.

Evite usar Switch para ações destrutivas, confirmações legais ou decisões que precisam de botão de envio.

API copy-first

Classe/atributoUso
itps-switchLabel clicável que envolve controle e texto.
itps-switch__controlÁrea visual que contém input, track e thumb.
itps-switch__inputCheckbox nativo que mantém foco, teclado e formulário.
itps-switch__trackTrilha visual do switch.
itps-switch__thumbBotão visual que se move entre estados.
itps-switch__labelTexto visível da preferência.
role="switch"Comunica semântica de liga/desliga.
checkedEstado ativado inicial do input nativo.
disabledBloqueia interação.
nameValor enviado quando o switch participa de formulário.

Acessibilidade

Mantenha o <input type="checkbox" role="switch"> no DOM para preservar foco, teclado e envio em formulário. O label deve envolver o controle e o texto para aumentar a área clicável. Use Space para alternar, disabled para bloquear interação e texto claro para indicar a preferência afetada.