v1.10.2
Theme

Accordion

The Accordion component provides expandable/collapsible panels for organizing content into logical sections. Users can expand sections to reveal content while keeping other sections collapsed.

Installation

npm install @duskmoon-dev/el-accordion

Usage

import '@duskmoon-dev/el-accordion/register';
<el-dm-accordion>
  <el-dm-accordion-item value="item-1">
    <span slot="header">Section 1</span>
    <p>Content for section 1.</p>
  </el-dm-accordion-item>
  <el-dm-accordion-item value="item-2">
    <span slot="header">Section 2</span>
    <p>Content for section 2.</p>
  </el-dm-accordion-item>
</el-dm-accordion>

Live Demo

Accordion Demo

Features

This accordion supports smooth animations, keyboard navigation, and multiple expansion modes.

Usage

Simply wrap your content in accordion items and provide a unique value for each item.

Styling

Use CSS parts to customize the appearance of headers, content, and icons.

Multiple Expansion

Allow multiple panels to be open simultaneously:

Multiple Expansion

First Section

You can open multiple sections at once.

Second Section

This section can be open along with others.

Properties

el-dm-accordion

Property Type Default Description
multiple boolean false Allow multiple panels to be open simultaneously
value string '' Comma-separated list of open item IDs

el-dm-accordion-item

Property Type Default Description
value string '' Unique identifier for this item
disabled boolean false Whether the item is disabled
open boolean false Whether the item is expanded

Methods

el-dm-accordion

Method Description
getOpenItems() Returns array of open item IDs
setOpenItems(ids: string[]) Set open items by ID array
open(itemId: string) Open a specific item by ID
close(itemId: string) Close a specific item by ID
toggle(itemId: string) Toggle a specific item by ID

el-dm-accordion-item

Method Description
toggle() Toggle the item open/closed

Slots

el-dm-accordion

Slot Description
default Accordion items (el-dm-accordion-item elements)

el-dm-accordion-item

Slot Description
header Content for the header/trigger area
default The expandable content

Events

el-dm-accordion

Event Detail Description
change { value: string, openItems: string[] } Fired when expansion state changes

CSS Parts

el-dm-accordion

Part Description
container The accordion container

el-dm-accordion-item

Part Description
header The header button
icon The chevron icon
content The content container

Accessibility

  • Uses aria-expanded to indicate panel state
  • Uses aria-controls to associate headers with content
  • Uses aria-hidden on collapsed content
  • Keyboard navigation: Enter/Space to toggle panels
  • Headers are focusable buttons