# Switch Toggle between two states, such as on/off. ```tsx return ( Label ); } ``` ## List ```tsx return (
{['Option 1', 'Option 2', 'Option 3'].map((label, i) => (
{label} {i < 2 &&
}
))}
); } ``` ## Icons ```tsx return ( {(switch_) => (switch_.checked ? : )} Label ); } ``` ## Direction ```tsx return ( Label ); } ``` ## API Reference ### SwitchRoot | Property | Type | Description | | --- | --- | --- | | `ids` | Partial<{ root: string; hiddenInput: string; control: string; label: string; thumb: string; }>, undefined | The ids of the elements in the switch. Useful for composition. | | `label` | string, undefined | Specifies the localized strings that identifies the accessibility elements and their states | | `disabled` | boolean, undefined | Whether the switch is disabled. | | `invalid` | boolean, undefined | If `true`, the switch is marked as invalid. | | `required` | boolean, undefined | If `true`, the switch input is marked as required, | | `readOnly` | boolean, undefined | Whether the switch is read-only | | `onCheckedChange` | ((details: CheckedChangeDetails) => void), undefined | Function to call when the switch is clicked. | | `checked` | boolean, undefined | The controlled checked state of the switch | | `defaultChecked` | boolean, undefined | The initial checked state of the switch when rendered. Use when you don't need to control the checked state of the switch. | | `name` | string, undefined | The name of the input field in a switch (Useful for form submission). | | `form` | string, undefined | The id of the form that the switch belongs to | | `value` | string, number, undefined | The value of switch input. Useful for form submission. Default: "on" | | `dir` | "ltr", "rtl", undefined | The document's text/writing direction. Default: "ltr" | | `getRootNode` | (() => ShadowRoot, Node, Document), undefined | A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. | | `element` | ((attributes: HTMLAttributes<"label">) => Element), undefined | Render the element yourself | ### SwitchRootProvider | Property | Type | Description | | --- | --- | --- | | `value`* | SwitchApi | | | `element` | ((attributes: HTMLAttributes<"label">) => Element), undefined | Render the element yourself | ### SwitchRootContext | Property | Type | Description | | --- | --- | --- | | `children`* | (switch_: SwitchApi) => ReactNode | | ### SwitchControl | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"span">) => Element), undefined | Render the element yourself | ### SwitchThumb | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"span">) => Element), undefined | Render the element yourself | ### SwitchLabel | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"span">) => Element), undefined | Render the element yourself | ### SwitchHiddenInput | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"input">) => Element), undefined | Render the element yourself |