accordion

An accordion allows a user to toggle the display of a section of content.
  • Accordion details - A

About Accordions

Accordions are composed of a list of longer blocks of text, with a header button to toggle the visibility of each block.

Accessibility

Availability of accordion content to assistive technology requires the use of aria-controls and toggling aria-expanded as regions are expanded and collapsed.

There are additional accessibility considerations within the Buttons and Menus.

Default

  • Accordion details - A
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section slds-is-open">

Structure and Implementation

An accordion is implemented as an unordered list with a class of slds-accordion. Inside the list, each chunk of content is inside both a list item with class of slds-accordion__list-item and a section with a class of slds-accordion__section.

The content itself is contained within a div with the class slds-accordion__content, an ID that corresponds to the aria-control on the button and the hidden attribute.

Content visibility is toggled via a Button in the H3 heading. To make accordion content visible, the section is given the class slds-is-open, the button is changed from aria-expanded="false" to aria-expanded="true", and the hidden attribute is removed from the content div.

States

Section 1 - Open

  • Accordion details - A
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section slds-is-open">

Section 2 - Open

  • Accordion details - B
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section">

Section 3 - Open

  • Accordion details - C
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section">

Multiple Sections - Open

  • Accordion details - A
  • Accordion details - C
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section slds-is-open">

Examples

With Action Overflow Menu

<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section slds-is-open">

In a Card

  • Accordion details - A
<div class="slds-card">
  <ul class="slds-accordion">
    <li class="slds-accordion__list-item">

Nested

    • Accordion details - A
<ul class="slds-accordion">
  <li class="slds-accordion__list-item">
    <section class="slds-accordion__section slds-is-open">