Toggle Group
A control element that switches between two states, providing a binary choice.
	<script lang="ts">
  import { ToggleGroup } from "bits-ui";
  import { TextB, TextItalic, TextStrikethrough } from "$icons/index.js";
 
  let value: string[] | undefined = ["bold"];
</script>
 
<ToggleGroup.Root
  bind:value
  type="multiple"
  class="flex h-input items-center gap-x-0.5 rounded-card-sm border border-border bg-background-alt px-[4px] py-1 shadow-mini"
>
  <ToggleGroup.Item
    aria-label="toggle bold"
    value="bold"
    class="inline-flex size-10 items-center justify-center rounded-9px bg-background-alt transition-all hover:bg-muted active:scale-98 active:bg-dark-10 data-[state=on]:bg-muted data-[state=off]:text-foreground-alt data-[state=on]:text-foreground active:data-[state=on]:bg-dark-10"
  >
    <TextB class="size-6" />
  </ToggleGroup.Item>
  <ToggleGroup.Item
    aria-label="toggle italic"
    value="italic"
    class="inline-flex size-10 items-center justify-center rounded-9px bg-background-alt transition-all hover:bg-muted active:scale-98 active:bg-dark-10 data-[state=on]:bg-muted data-[state=off]:text-foreground-alt data-[state=on]:text-foreground active:data-[state=on]:bg-dark-10"
  >
    <TextItalic class="size-6" />
  </ToggleGroup.Item>
  <ToggleGroup.Item
    aria-label="toggle strikethrough"
    value="strikethrough"
    class="inline-flex size-10 items-center justify-center rounded-9px bg-background-alt transition-all hover:bg-muted active:scale-98 active:bg-dark-10 data-[state=on]:bg-muted data-[state=off]:text-foreground-alt data-[state=on]:text-foreground active:data-[state=on]:bg-dark-10"
  >
    <TextStrikethrough class="size-6" />
  </ToggleGroup.Item>
</ToggleGroup.Root>
	
Structure
	<script lang="ts">
	import { ToggleGroup } from "bits-ui";
</script>
 
<ToggleGroup.Root>
	<ToggleGroup.Item value="bold">bold</ToggleGroup.Item>
	<ToggleGroup.Item value="italic">italic</ToggleGroup.Item>
</ToggleGroup.Root>
	
API Reference
The root component which contains the toggle group items.
| Property | Type | Description | 
|---|---|---|
| value | string | string[] | The value of the toggle group. If the type is multiple, this will be an array of strings, otherwise it will be a string. Default:  —— undefined | 
| onValueChange | function | A callback function called when the value of the toggle group changes. The type of the value is dependent on the type of the toggle group. Default:  —— undefined | 
| disabled | boolean | Whether or not the switch is disabled. Default:  false | 
| loop | boolean | Whether or not the toggle group should loop when navigating. Default:  true | 
| orientation | 'horizontal' | 'vertical' | The orientation of the toggle group. Default:  horizontal | 
| rovingFocus | boolean | Whether or not the toggle group should use roving focus when navigating. Default:  true | 
| type | 'single' | 'multiple' | The type of toggle group. Default:  single | 
| asChild | boolean | Whether to use render delegation with this component or not. Default:  false | 
| el | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default:  —— undefined | 
| Slot Property | Type | Description | 
|---|---|---|
| builder | object | The builder attributes and actions to apply to the element if using the  | 
| Data Attribute | Value | Description | 
|---|---|---|
| data-orientation | —— | The orientation of the toggle group. | 
| data-toggle-group-root | —— | Present on the root element. | 
An individual toggle item within the group.
| Property | Type | Description | 
|---|---|---|
| value | string | The value of the item. Default:  —— undefined | 
| disabled | boolean | Whether or not the switch is disabled. Default:  false | 
| asChild | boolean | Whether to use render delegation with this component or not. Default:  false | 
| el | HTMLButtonElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default:  —— undefined | 
| Slot Property | Type | Description | 
|---|---|---|
| builder | object | The builder attributes and actions to apply to the element if using the  | 
| Data Attribute | Value | Description | 
|---|---|---|
| data-state | enum | Whether the toggle item is in the on or off state. | 
| data-value | —— | The value of the toggle item. | 
| data-orientation | —— | The orientation of the toggle group. | 
| data-disabled | —— | Present when the toggle item is disabled. | 
| data-toggle-group-item | —— | Present on the item elements. |