Skip to main content
VelinStyle v0.8.0
⌂ Home
  1. Docs
  2. Components
  3. Accordion

Accordion

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

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

JavaScript API

Attributes

AttributeTypeDescription
exclusiveBooleanOnly one panel open at a time

Keyboard Events (handled internally)

KeyBehaviour
ArrowDownFocus next <summary>
ArrowUpFocus previous <summary>
HomeFocus first <summary>
EndFocus last <summary>

Theme wählen