Accordion

Anatomy

Elements

Accordion
The container.
Section
I made a choice between "item" and "section". Because ever item has a header, I decided to go with "section".
Header
WAI-ARIA Authoring Practices call it "Accordion Header". Other options: "summary".
Toggle button
The clickable area inside the header.
Panel
WAI-ARIA Authoring Practices call it "Accordion Panel". I was also considering "panel", "body" and "content", "details".

States

Are things open/closed or expanded/collapsed or hidden? Which elements are open/expanded?

API

Considering:

Events

Considering:

States

Considering:

Technology

Accessibility

UX Design

Toggle button:

Example Component

Experiment

Just CSS class names

BEM identifiers:

nih-accordion
nih-accordion__section
nih-accordion__section--open
nih-accordion__header
nih-accordion__header--expanded
nih-accordion__header--collapsed
nih-accordion__button-toggle
nih-accordion__button-toggle--expanded
nih-accordion__button-toggle--collapsed
nih-accordion__panel
nih-accordion__panel--hidden

What is an example of latin text?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

What is an another example?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Custom element implementation

Custom elements:

nih-accordion
nih-accordion-section
nih-accordion-header
nih-accordion-panel
nih-accordion,
nih-accordion-section,
nih-accordion-header,
nih-accordion-panel {
  display: block;
}

nih-accordion-panel[hidden] {
  display: none;
}

nih-accordion-header::after {
  content: "🔽";
}

nih-accordion-header[open]::after {
  content: "🔼";
}

What is an example of latin text?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Custom element implementation

What is an example of latin text?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.