Skip to main content
VelinStyle v1.3.0
⌂ Home
  1. Docs
  2. Components
  3. Data
  4. Accordion

Accordion 1.2.2

The <velin-accordion> Web Component renders a stack of collapsible <details> panels with optional exclusive mode and full keyboard navigation. Deutsch: Akkordion

Maturity: Documented as stable in VelinStyle 1.2.0. Design Intelligence (plan / review / agent meta) is separate and beta / foundation where noted.

When to use

When not

Basic Example

Wrap native <details> elements inside <velin-accordion>.

Accordion Item #1
This is the first item's content. It is shown by default.
Accordion Item #2
This is the second item's content.
Accordion Item #3
This is the third item's content.
<velin-accordion>
  <details open>
    <summary>Accordion Item #1</summary>
    <div style="padding: 1rem;">First item content.</div>
  </details>
  <details>
    <summary>Accordion Item #2</summary>
    <div style="padding: 1rem;">Second item content.</div>
  </details>
  <details>
    <summary>Accordion Item #3</summary>
    <div style="padding: 1rem;">Third item content.</div>
  </details>
</velin-accordion>

Exclusive Mode

Add the exclusive attribute so only one panel can be open at a time. Opening a new panel automatically closes the previously open one.

Panel A
Only one panel open at a time.
Panel B
Opening this closes Panel A.
Panel C
And so on.
<velin-accordion exclusive>
  <details open>
    <summary>Panel A</summary>
    <div style="padding: 1rem;">Only one panel open at a time.</div>
  </details>
  <details>
    <summary>Panel B</summary>
    <div style="padding: 1rem;">Opening this closes Panel A.</div>
  </details>
</velin-accordion>

Keyboard Navigation

When focus is on a <summary>, the following keys are supported:

KeyAction
Enter / SpaceToggle the focused panel
Arrow DownMove focus to next summary
Arrow UpMove focus to previous summary
HomeMove focus to first summary
EndMove focus to last summary

Accessibility

CSS Variables

VariableDefaultDescription
--velin-color-border#dddPanel border color
--velin-radius-md0.5remOuter border radius
--velin-space-41remSummary padding
--velin-text-base1remSummary font size
--velin-weight-medium500Summary font weight

API

Attributes

AttributeTypeDescription
exclusiveBooleanRead on connect — only one panel open at a time (not observed)

Default slot only. No CSS parts, methods, or custom events.

Best practices & pitfalls