# Switch Toggle between two states, such as on/off. ```svelte Label ``` ## Checked Color Use the [Tailwind data attribute syntax](https://tailwindcss.com/docs/hover-focus-and-other-states#data-attributes) to target the active state using `data-[state=checked]` ```svelte ``` ## List ```svelte
{#each ['Label 1', 'Label 2', 'Label 3'] as label, i (label)} {label} {#if i < 2}
{/if} {/each}
``` ## Icons ```svelte {#snippet children(switch_)} {#if switch_().checked} {:else} {/if} {/snippet} ``` ## Direction ```svelte Label ``` ## API Reference ### SwitchRootProps | Property | Default | 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? | "on" | string \| number \| undefined | The value of switch input. Useful for form submission. | | dir? | "ltr" | "ltr" \| "rtl" \| undefined | The document's text/writing direction. | | getRootNode? | - | (() => ShadowRoot \| Node \| Document) \| undefined | A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. | | element? | - | Snippet\<\[HTMLAttributes\<"label">]> \| undefined | Render the element yourself | ### SwitchRootProviderProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------- | --------------------------- | | value | - | () => SwitchApi\ | - | | element? | - | Snippet\<\[HTMLAttributes\<"label">]> \| undefined | Render the element yourself | ### SwitchRootContextProps | Property | Default | Type | Description | | -------- | ------- | ---------------------------------------- | ----------- | | children | - | Snippet\<\[() => SwitchApi\]> | - | ### SwitchControlProps | Property | Default | Type | Description | | -------- | ------- | ------------------------------------------------- | --------------------------- | | element? | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined | Render the element yourself | ### SwitchThumbProps | Property | Default | Type | Description | | -------- | ------- | ------------------------------------------------- | --------------------------- | | element? | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined | Render the element yourself | ### SwitchLabelProps | Property | Default | Type | Description | | -------- | ------- | ------------------------------------------------- | --------------------------- | | element? | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined | Render the element yourself | ### SwitchHiddenInputProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------- | --------------------------- | | element? | - | Snippet\<\[HTMLAttributes\<"input">]> \| undefined | Render the element yourself |