T2 EducaçãoMidas

Toggle

Botão de dois estados (ligado/desligado), como negrito num editor ou favoritar. Variantes ghost e outline; tamanhos sm, default e lg.

Código-fonte

Exemplos

Interaja com o componente e copie o código de cada exemplo.

Básico

Outline e com texto

Tamanhos e desabilitado

import { Toggle } from "@t2-educacao/midas";

Uso

import { TextB } from "@t2-educacao/midas/icons";

<Toggle aria-label="Negrito">
  <TextB />
</Toggle>

Props

Aceita as props do Toggle do Radix mais:

PropTipoPadrãoDescrição
variant"ghost" | "outline""ghost"Estilo visual
size"sm" | "default" | "lg""default"28, 32 ou 36px de altura
pressedbooleanEstado controlado
defaultPressedbooleanfalseEstado inicial (não controlado)
onPressedChange(pressed: boolean) => voidChamado ao alternar
disabledbooleanfalseDesabilita

Variantes

VarianteQuando usar
ghostBarras de ferramentas, onde vários toggles ficam lado a lado
outlineToggle isolado que precisa parecer clicável

Exemplos

Com texto

import { Star } from "@t2-educacao/midas/icons";

<Toggle variant="outline">
  <Star /> Favorito
</Toggle>

Controlado

const [favorito, setFavorito] = useState(false);

<Toggle pressed={favorito} onPressedChange={setFavorito} aria-label="Favoritar curso">
  <Star weight={favorito ? "fill" : "regular"} />
</Toggle>

Para vários toggles relacionados, use ToggleGroup.

Acessibilidade

  • Usa aria-pressed para anunciar o estado.
  • Toggle só com ícone exige aria-label.
  • O rótulo descreve a ação, não o estado ("Negrito", não "Negrito ativado").

Não faça

  • Usar Toggle para ações que não têm estado (ex.: "Enviar"): use Button.
  • Usar Toggle em formulários de configuração: prefira Switch ou Checkbox.

On this page