Accordion / Collapsible

Expandable content sections for FAQs, settings panels, and progressive disclosure. Use accordions to keep dense content scannable while revealing details on demand.

Basic Accordion
This is the content of the first accordion item.
This is the content of the second accordion item.
This is the content of the third accordion item.
<div class="accordion">
  <div class="accordion-item">
    <button class="accordion-header">
      <span>Item Title</span>
      <span class="accordion-icon"></span>
    </button>
    <div class="accordion-body">
      <div class="accordion-content">Item content goes here</div>
    </div>
  </div>
</div>
Flush Variant

Flush removes the per-item box treatment and stacks rows edge-to-edge, using dividers instead of separate bordered cards.

Theme-aware colors, spacing, and typography are inherited from global tokens.
Keyboard and focus interactions are handled by the framework component runtime.
<div class="accordion accordion-flush">
  <div class="accordion-item">
    <button class="accordion-header">
      <span>Section Title</span>
      <span class="accordion-icon"></span>
    </button>
    <div class="accordion-body">
      <div class="accordion-content">Flush content goes here</div>
    </div>
  </div>
</div>
API Reference

Wiring

<!-- Toggle .is-open from component state -->
<div class="accordion-item" :class="{ 'is-open': open[i] }">
  <button class="accordion-header" @click="open[i] = !open[i]"></button>
  <div class="accordion-body"><div class="accordion-content"></div></div>
</div>

CSS Classes

Class NameDescription
.accordionBase container for a group of collapsible items.
.accordion-itemWrapper for one header/body pair.
.accordion-headerClickable trigger that expands or collapses item content.
.accordion-iconChevron indicator that rotates with state changes.
.accordion-bodyExpandable content panel.
.accordion-contentInner content wrapper with readable spacing.
.accordion-flushVariant that removes per-item outer borders and spacing so rows stack with divider lines instead of separate cards.
.is-openRuntime class applied to an item when expanded.