Components › Forms & input › Choice › Switch

Switch

canon

On/off control that applies immediately.

Size sm (acrm !3911, AD 26 Sep 2026): 30×17, knob 13px, --shadow-xs, label var(--small) in --fg-secondary, gap --sp-2 — ONLY the secondary option in a dialog footer next to buttons (Další / Vytvořit další / Nevolat / Pozvánky); the full size would compete with the primary. Replaces the private .tk-more/.sw copy — migrated on 27 Sep 2026 (acrm !3950): TaskDialog „Další“, NewContactDialog „Vytvořit další“/„Nevolat“, NewMeetingForm „Pozvánky“/„Nahrávat“; .tk-more/.sw deleted, the app has ONE switch. Clickable label (acrm !3933, AD 26 Sep 2026): a click on the VISIBLE label toggles (not with labelHidden); focus stays on the role=switch button, onChange(on, event) keeps stopPropagation for clickable rows, no double toggle.

Used in 35 files · 16 areas · 52× — components/CheckMenu, components/assistant, components/datamart, components/mail, components/meetings, components/person …

Import

import { Switch } from '@acrm/ui'

Props

Switch packages/ui/src/components/Switch.tsx

NameTypeDefaultDescription
on *boolean——
onChange *(on: boolean, event: MouseEvent<HTMLElement, MouseEvent>) => void—Druhý argument je událost kliku — pro stopPropagation, když přepínač sedí v klikacím řádku. Přijde z přepínače NEBO z viditelného popisku (klik na popisek přepíná, AD 26. 9. 2026) — proto HTMLElement: zastavit se musí ta událost, která opravdu probublává k řádku.
label *ReactNode—Popisek u přepínače.
labelPosition'end' | 'start''end'Strana popisku. Výchozí vpravo; vlevo jen tam, kde to kanon určuje (patička psaní pošty).
labelHiddenboolean—Popisek žije jinde v řádku (výpis nastavení) — jen pro čtečky.
ariaLabelstring—Jméno pro čtečku. Bez něj je jménem label, pokud je to text (viditelný i skrytý) — viditelný popisek s tlačítkem programově svázaný není, takže jiné jméno by přepínač neměl. Předej ho, když se jméno liší od popisku (v seznamu nese jméno položky: „Zapnout workflow X", jinak jsou přepínače pro čtečku i test nerozlišitelné) nebo když popisek není text.
titlestring——
disabledboolean——
classNamestring——
size'sm'—sm = vedlejší volba v patičce dialogu vedle tlačítek (Další / Vytvořit další / Nevolat / Pozvánky): 30 × 17, páčka 13 px, popisek var(--small) v --fg-secondary. Plný přepínač s tmavým 13px popiskem by v patičce soutěžil s primárem. Jediná varianta (AD 26. 9. 2026); nahradila druhý přepínač dialogů .tk-more + .sw.

CSS classes

.acrm-switch.acrm-switch-row

Files