Skip to content

Expansion panels

The v-expansion-panel component is useful for reducing vertical space with large amounts of information. The default functionality of the component is to only display one expansion-panel body at a time; however, with the multiple property, the expansion-panel can remain open until explicitly closed.

Usage

Expansion panels in their simplest form display a list of expandable items. You can either declare the markup explicitly, or use the title and text props.

API

ComponentDescription
v-expansion-panelsPrimary component
v-expansion-panelSub-component that wraps v-expansion-panel-text and v-expansion-panel-title
v-expansion-panel-titleSub-component used to display the Expansion Panel's title. Wraps the #title slot
v-expansion-panel-textSub-component used to display the Expanion Panel's text. Wraps the #text slot

Examples

Props

Variant

There are four different variants of the expansion-panel. Accordion expansion-panels have no margins around the currently active panel. Inset expansion-panels become smaller when activated, while poput expansion-panels become larger.

Disabled

Both the expansion-panel and its content can be disabled using the disabled prop.

Model

Expansion panels can be controlled externally by using the v-model. You will need to set a value on each panel, so that you can refer to them outside the component. If the multiple prop is set, then the v-model value will be an array.

Readonly

readonly prop does the same thing as disabled, but it doesn't touch styles.

Misc

Advanced

The expansion panel component provides a rich playground to build truly advanced implementations. Here we take advantage of slots in the v-expansion-panel-header component to react to the state of being open or closed by fading content in and out.

Custom icon

Expand action icon can be customized with expand-icon prop or the actions slot.

Released under the MIT License.