---
url: "https://vueda.dev/v3/reference/api/vue/ToggleGroup.md"
title: "ToggleGroup"
---

# ToggleGroup

## Overview

A group of toggle buttons that share variant and size context.

Theme entry: [ToggleGroup](/v3/reference/theming/keys/ToggleGroup.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-class">class</span> | `import('vue').HTMLAttributes['class']` |  | `undefined` | Additional CSS classes to apply to the root element. |
| <span id="prop-variant">variant</span> | `string` |  | `undefined` | Visual style variant. |
| <span id="prop-size">size</span> | `string` |  | `undefined` | Size variant. |
| <span id="prop-spacing">spacing</span> | `number` |  | `0` | The gap spacing between items (0 = flush/no-gap). |
| <span id="prop-type">type</span> | `string` |  | `undefined` | The selection type: 'single' or 'multiple'. |
| <span id="prop-modelValue">modelValue</span> | `string\|array` |  | `undefined` | The controlled value. |
| <span id="prop-defaultValue">defaultValue</span> | `string\|array` |  | `undefined` | The default value. |
| <span id="prop-disabled">disabled</span> | `boolean` |  | `undefined` | Whether the group is disabled. |
| <span id="prop-dir">dir</span> | `string` |  | `undefined` | The reading direction. |
| <span id="prop-loop">loop</span> | `boolean` |  | `undefined` | Whether to loop keyboard navigation. |
| <span id="prop-orientation">orientation</span> | `string` |  | `undefined` | The orientation. |
| <span id="prop-rovingFocus">rovingFocus</span> | `boolean` |  | `undefined` | Whether to allow deselection of a single value. |
| <span id="prop-as">as</span> | `string\|object` |  | `undefined` | The element or component to render as. |
| <span id="prop-asChild">asChild</span> | `boolean` |  | `false` | When true, merges props onto the child element instead of rendering a wrapper. |

## Slots

### `default` {#slot-default}

Scoped slot.

## Events

| Name | Description |
| --- | --- |
| `update:modelValue` | Emitted when the value changes. |

[Full event reference](/v3/reference/api/vue/ToggleGroup/events.md)

## Source

`client/lib/controls/toggle-group/ToggleGroup.vue`
