# Switch A toggle control for binary on/off states. ## Installation Start from a Svelte 5 application, then install the component package, shared theme, and Bits UI peer: ```bash pnpm add coss-svelte @coss-svelte/theme bits-ui ``` Import `@coss-svelte/theme/style-coss.css` after Tailwind from the application's global stylesheet. ## Usage ```svelte ``` ## Anatomy - `Switch` - `SwitchThumb` ## API Reference ### Switch A toggle control for binary on/off states. | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `useId()` | ID forwarded to the form control. | | `bind:checked` | `boolean` | `false` | Checked state for the control. Bind with `bind:checked` when supported. | | `label` | `string` | `""` | Accessible label or fallback visible label for the control. | **Composition and refs** - `children: Snippet<[SwitchRootSnippetProps]>` - `bind:ref: HTMLElement \| null` Inherits from [Bits UI Switch.Root](https://bits-ui.com/docs/components/switch#root). ### SwitchThumb Renders the draggable or moving indicator. **Composition and refs** - `children: Snippet<[SwitchRootSnippetProps]>` - `bind:ref: HTMLElement \| null` Inherits from [Bits UI Switch.Thumb](https://bits-ui.com/docs/components/switch#thumb). ## Implementation Details | Field | Value | | --- | --- | | Status | Stable | | Foundation | bits | | Category | Toggle & Choice | | Particles | 6 | ## Status Stable for the current coss-svelte surface. ## Agent Notes - Import Svelte exports directly from `coss-svelte`. - This is Svelte 5 code: use `class`, lowercase event properties, runes, snippets, and documented `bind:*` contracts. Do not emit JSX, React hooks, `className`, `asChild`, or Base UI imports. - Prefer this route's example and generated API table over React COSS snippets; COSS React particles are design references only. - The copy-and-own registry is a preview. Inspect `/r/switch.json` for the complete local file and dependency closure. - Switch is stable in the current source catalog.