Forme DS

Composants

Switch

L'interrupteur on/off. Enrobe le Switch d'Astryx. À réserver aux réglages qui s'appliquent immédiatement (préférence, activation d'une option) — pour une sélection soumise dans un formulaire, préférer Checkbox.

import { Switch } from "@forme-ch/ui/controls";

const [on, setOn] = useState(true);

<Switch isSelected={on} onChange={setOn}>
  Notifications par e-mail
</Switch>

États

<Switch defaultSelected>Activé par défaut</Switch>
<Switch>Désactivé</Switch>
<Switch isDisabled>Désactivé (disabled)</Switch>
<Switch isDisabled defaultSelected>Activé (disabled)</Switch>

Props

PropTypeDéfautDescription
children ReactNode — Libellé (voie RAC).
isSelected boolean — Mode contrôlé (activé/désactivé).
defaultSelected boolean — Mode non-contrôlé (état initial).
onChange (isSelected: boolean) => void — Callback au basculement.
isDisabled boolean — Désactive l'interrupteur.
name string — Nom du champ dans un <form> (mappé sur htmlName).
aria-label string — Nom accessible si aucun libellé visible (repli littéral « Interrupteur »).
isLabelHidden boolean — Masque le libellé visuel (garde l'a11y).

Accepte aussi className et style.

Accessibilité

Le nom accessible vient de children, sinon de aria-label (repli littéral « Interrupteur »). Si tu fournis un aria-label sans children, le libellé est automatiquement masqué. L'interrupteur expose l'état checked aux lecteurs d'écran et se bascule à la barre d'espace.

Do & Don't

✓ À faire

Utiliser un Switch pour un réglage à effet immédiat. Un libellé décrivant l'état activé.

✕ À éviter

Un Switch pour un choix qui n'est appliqué qu'à la validation d'un formulaire — préférer Checkbox.