Snippets Accordion

Bootstrap 5 Accordion Sidebar Menu

A sidebar accordion menu with icons and counters that opens one section at a time, shown beside a content panel.

Bootstrap 5 No jQuery Nov 2019 2.2K views

<section class="wdw-stage">
  <div class="container" style="max-width: 980px">
    <div class="row g-4 align-items-start">
      <div class="col-lg-4">
        <div class="wdw-card p-2" id="acc">
          <div class="accordion accordion-flush am" id="amMenu">
            <div class="accordion-item">
              <h2 class="accordion-header"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#am1" aria-expanded="false" aria-controls="am1"><i class="bi bi-person"></i>Account</button></h2>
              <div id="am1" class="accordion-collapse collapse" data-bs-parent="#amMenu"><div class="accordion-body">
                <div class="list-group list-group-flush">
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-person-circle"></i>Profile</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-shield-lock"></i>Security</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-credit-card"></i>Billing</a>
                </div></div></div>
            </div>
            <div class="accordion-item">
              <h2 class="accordion-header"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#am2" aria-expanded="true" aria-controls="am2"><i class="bi bi-chat-dots"></i>Messages</button></h2>
              <div id="am2" class="accordion-collapse collapse show" data-bs-parent="#amMenu"><div class="accordion-body">
                <div class="list-group list-group-flush">
                  <a href="#" class="list-group-item list-group-item-action active" aria-current="true"><i class="bi bi-inbox"></i>Inbox<span class="badge rounded-pill text-bg-primary ms-auto">20</span></a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-send"></i>Sent</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-file-earmark-text"></i>Drafts<span class="badge rounded-pill text-bg-secondary ms-auto">15</span></a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-trash3"></i>Trash</a>
                </div></div></div>
            </div>
            <div class="accordion-item">
              <h2 class="accordion-header"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#am3" aria-expanded="false" aria-controls="am3"><i class="bi bi-bar-chart"></i>Reports</button></h2>
              <div id="am3" class="accordion-collapse collapse" data-bs-parent="#amMenu"><div class="accordion-body">
                <div class="list-group list-group-flush">
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-activity"></i>Traffic</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-currency-dollar"></i>Revenue</a>
                </div></div></div>
            </div>
            <div class="accordion-item">
              <h2 class="accordion-header"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#am4" aria-expanded="false" aria-controls="am4"><i class="bi bi-gear"></i>Settings</button></h2>
              <div id="am4" class="accordion-collapse collapse" data-bs-parent="#amMenu"><div class="accordion-body">
                <div class="list-group list-group-flush">
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-sliders"></i>General</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-bell"></i>Notifications</a>
                  <a href="#" class="list-group-item list-group-item-action"><i class="bi bi-plug"></i>Integrations</a>
                </div></div></div>
            </div>
          </div>
          <hr class="my-2 mx-2">
          <button type="button" class="btn am-logout w-100 text-start"><i class="bi bi-power"></i>Log out</button>
        </div>
      </div>
      <div class="col-lg-8">
        <div class="wdw-card wdw-aurora p-4 p-md-5 overflow-hidden border-0">
          <span class="badge rounded-pill am-pill mb-3">Messages / Inbox</span>
          <div class="d-flex flex-wrap align-items-center justify-content-between gap-3 mb-4">
            <div>
              <h1 class="h2 fw-bold mb-1" style="letter-spacing:-.03em">Inbox</h1>
              <p class="opacity-75 mb-0">Good morning, George. You have 20 unread messages.</p>
            </div>
            <button type="button" class="btn btn-light rounded-pill px-4"><i class="bi bi-pencil-square"></i> Compose</button>
          </div>
          <div class="row g-3">
            <div class="col-4"><div class="am-stat"><div class="am-stat-label">Unread</div><div class="am-stat-value">20</div></div></div>
            <div class="col-4"><div class="am-stat"><div class="am-stat-label">Drafts</div><div class="am-stat-value">15</div></div></div>
            <div class="col-4"><div class="am-stat"><div class="am-stat-label">Reply time</div><div class="am-stat-value">4m</div></div></div>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.

Free to use in personal and commercial projects under the MIT license.