Pular para o conteúdo

Switch

Liga ou desliga uma configuração, com efeito imediato.

O Switch é para uma configuração binária que vale na hora: ligar e-mails ao Cliente, ativar a Página pública. Se a escolha só vale depois de enviar um formulário, use Checkbox.

import { Switch } from "@rastreio-x/ui";

Padrão

O rótulo vai dentro de Switch.Content, ao lado do controle. Clicar no texto também alterna.

Playground

Ajuste tamanho e estados do interruptor e copie o código gerado.

Tamanhos

Três tamanhos, sm, md (padrão) e lg. Use sm em listas densas.

Controlado

Com isSelected e onChange você guarda o valor no estado. Mostre o efeito da escolha em texto, para não depender só da posição do botão.

Com descrição

Description explica a consequência de ligar. Fica abaixo do rótulo e é lida junto com ele.

Sem rótulo visível

Quando o contexto já nomeia o controle, informe aria-label.

Estados

Desabilitado mantém a posição (ligado ou desligado) mas não responde. Explique o motivo no texto próximo.

No Admin

Na preparação dos e-mails, uma chave geral controla um grupo de chaves de etapa. Desligar a geral desabilita as demais, sem mudar a escolha de cada uma.

Anatomia

  • Switch.Content: agrupa controle e rótulo; é a área clicável.
  • Switch.Control: o trilho.
  • Switch.Thumb: o botão que desliza.
  • Switch.Icon: ícone opcional dentro do botão.

Propriedades

Animações

O botão desliza e o trilho muda de cor em transição CSS curta. Com prefers-reduced-motion, a folha global da fachada reduz a transição a 0,01 ms: o estado muda sem deslizar.

Acessibilidade

  • Papel switch (React Aria), com estado ligado/desligado anunciado.
  • Tab foca; Espaço alterna. O anel de foco azul aparece só com o teclado.
  • O nome acessível vem do texto em Switch.Content ou de aria-label.
  • O estado não depende só da cor: a posição do botão também muda.

Boas práticas

Faça

Rótulo que nomeia a configuração e descreve o resultado ligado: E-mails ao Cliente.

Evite

Rótulos como Ativar/Desativar, que obrigam a adivinhar o estado atual.
  • Use para efeito imediato; para formulários com envio, prefira Checkbox.
  • Um rótulo estável: não troque o texto entre ligado e desligado.
  • Mostre o resultado da mudança (toast ou texto) quando o efeito não for visível.
  • Agrupe chaves relacionadas e desabilite as filhas quando a mãe estiver desligada.

Relacionados

  • Checkbox para escolhas que só valem ao enviar.
  • Tooltip para explicar uma configuração.
  • Alert para avisar sobre efeitos de ligar ou desligar.