# 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
| Property | Default | Type |
| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 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 |
| value | - | () => SwitchApi\ |
| element | - | Snippet\<\[HTMLAttributes\<"label">]> \| undefined — Render the element yourself |
| children | - | Snippet\<\[() => SwitchApi\]> |
| element | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined — Render the element yourself |
| element | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined — Render the element yourself |
| element | - | Snippet\<\[HTMLAttributes\<"span">]> \| undefined — Render the element yourself |
| element | - | Snippet\<\[HTMLAttributes\<"input">]> \| undefined — Render the element yourself |