ExpansionPanel
A component for creating accordion-style expansion panels with proper ARIA support.
Usage
The ExpansionPanel component provides a wrapper and item pattern for managing expansion state in accordion-style interfaces. It uses the createSelection composable internally and provides full v-model support with automatic state synchronization.
Anatomy
<script setup lang="ts">
import { ExpansionPanel } from '@vuetify/v0'
</script>
<template>
<ExpansionPanel.Group>
<ExpansionPanel.Root>
<ExpansionPanel.Activator>
<ExpansionPanel.Cue />
</ExpansionPanel.Activator>
<ExpansionPanel.Content />
</ExpansionPanel.Root>
</ExpansionPanel.Group>
</template>For instances where you need to wrap the activator in a heading element (h3) for semantic purposes and WAI-ARIA, use the ExpansionPanel.Header component:
<script setup lang="ts">
import { ExpansionPanel } from '@vuetify/v0'
</script>
<template>
<ExpansionPanel.Group>
<ExpansionPanel.Root>
<ExpansionPanel.Header>
<ExpansionPanel.Activator>
<ExpansionPanel.Cue />
</ExpansionPanel.Activator>
</ExpansionPanel.Header>
<ExpansionPanel.Content />
</ExpansionPanel.Root>
</ExpansionPanel.Group>
</template>ExpansionPanel.Root
Props
namespace
string | undefinedNamespace to retrieve the parent ExpansionPanelGroup context (default: 'v0:expansion-panel')
Default: "v0:expansion-panel"
Slots
default
ExpansionPanelRootSlotPropsExpansionPanel.Activator
Props
Slots
default
ExpansionPanelActivatorSlotPropsExpansionPanel.Content
Props
Slots
default
ExpansionPanelContentSlotPropsExpansionPanel.Cue
Props
Slots
default
ExpansionPanelCueSlotPropsExpansionPanel.Group
Props
namespace
string | undefinedNamespace for dependency injection (default: 'v0:expansion-panel')
Default: "v0:expansion-panel"
disabled
boolean | undefinedDisables the entire expansion panel instance and all items
Default: false
mandatory
boolean | "force" | undefinedMandatory expansion behavior: - false (default): All panels can be collapsed - true: Prevents collapsing the last expanded panel - 'force': Automatically expands the first non-disabled panel
Default: false
multiple
boolean | undefinedEnable multi-expansion mode - false (default): Single panel expanded at a time (accordion mode) - true: Multiple panels can be expanded simultaneously Note: Changes v-model type from T to T[]
Default: false
modelValue
T | T[] | undefinedEvents
update:model-value
[value: T | T[]]Slots
default
ExpansionPanelGroupSlotPropsExpansionPanel.Header
Props
namespace
string | undefinedNamespace for retrieving the parent ExpansionPanelRoot context (default: 'v0:expansion-panel')
Default: "v0:expansion-panel"
Slots
default
ExpansionPanelHeaderSlotProps