Snippets Accordion

Bootstrap 5 Accordion with Expand/Collapse All

A frequently-asked-questions accordion where several answers can stay open at once, with a button to expand or collapse every item.

Bootstrap 5 No jQuery Jul 2019 13.9K views

<section class="faq-section wdw-stage"><div class="container"><div class="faq-wrap mx-auto"><div class="row g-4 g-lg-5 align-items-start">
<div class="col-lg-5"><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis mb-3">FAQ</span><h1 class="h2 fw-bold text-body-emphasis mb-2">Frequently asked questions</h1><p class="text-body-secondary mb-4">Quick answers to the things people ask most.</p>
<button type="button" class="btn btn-outline-primary rounded-pill px-4 faq-toggle" id="faqToggleAll" aria-pressed="false">Expand all</button>
<div class="card wdw-card border-0 mt-4 d-none d-lg-block"><div class="card-body p-4"><span class="faq-help mb-3" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z"/></svg></span><h2 class="h6 fw-bold mb-1">Still have questions?</h2><p class="small text-body-secondary mb-3">Our team replies within one business day.</p><a href="#" class="btn btn-primary btn-sm rounded-pill px-3">Contact support</a></div></div></div>
<div class="col-lg-7"><div class="accordion faq-acc" id="faqAccordion">
<div class="accordion-item wdw-card-sm border-0 mb-3 overflow-hidden"><h3 class="accordion-header"><button class="accordion-button fw-semibold shadow-none gap-3" type="button" data-bs-toggle="collapse" data-bs-target="#faq0" aria-expanded="true" aria-controls="faq0"><span class="faq-num" aria-hidden="true">01</span><span class="flex-grow-1">How does the free trial work?</span></button></h3><div id="faq0" class="accordion-collapse collapse show"><div class="accordion-body text-body-secondary pt-0">You get full access for 14 days with no card required. If you decide not to continue, your workspace simply switches to read-only.</div></div></div>
<div class="accordion-item wdw-card-sm border-0 mb-3 overflow-hidden"><h3 class="accordion-header"><button class="accordion-button collapsed fw-semibold shadow-none gap-3" type="button" data-bs-toggle="collapse" data-bs-target="#faq1" aria-expanded="false" aria-controls="faq1"><span class="faq-num" aria-hidden="true">02</span><span class="flex-grow-1">Can I change plans later?</span></button></h3><div id="faq1" class="accordion-collapse collapse"><div class="accordion-body text-body-secondary pt-0">Yes. Upgrade or downgrade at any time from billing settings. Changes are prorated to the day.</div></div></div>
<div class="accordion-item wdw-card-sm border-0 mb-3 overflow-hidden"><h3 class="accordion-header"><button class="accordion-button collapsed fw-semibold shadow-none gap-3" type="button" data-bs-toggle="collapse" data-bs-target="#faq2" aria-expanded="false" aria-controls="faq2"><span class="faq-num" aria-hidden="true">03</span><span class="flex-grow-1">Do you offer discounts for nonprofits?</span></button></h3><div id="faq2" class="accordion-collapse collapse"><div class="accordion-body text-body-secondary pt-0">Registered nonprofits and open-source maintainers get 50% off. Email us with a link to your organisation.</div></div></div>
<div class="accordion-item wdw-card-sm border-0 mb-3 overflow-hidden"><h3 class="accordion-header"><button class="accordion-button collapsed fw-semibold shadow-none gap-3" type="button" data-bs-toggle="collapse" data-bs-target="#faq3" aria-expanded="false" aria-controls="faq3"><span class="faq-num" aria-hidden="true">04</span><span class="flex-grow-1">Where is my data stored?</span></button></h3><div id="faq3" class="accordion-collapse collapse"><div class="accordion-body text-body-secondary pt-0">Data is hosted in the EU by default, encrypted at rest and in transit, with daily backups kept for 30 days.</div></div></div>
<div class="accordion-item wdw-card-sm border-0 mb-3 overflow-hidden"><h3 class="accordion-header"><button class="accordion-button collapsed fw-semibold shadow-none gap-3" type="button" data-bs-toggle="collapse" data-bs-target="#faq4" aria-expanded="false" aria-controls="faq4"><span class="faq-num" aria-hidden="true">05</span><span class="flex-grow-1">How do I cancel?</span></button></h3><div id="faq4" class="accordion-collapse collapse"><div class="accordion-body text-body-secondary pt-0">Open Settings, then Billing, and choose Cancel plan. Your account stays active until the end of the billing period.</div></div></div>
</div>
<p class="d-lg-none text-center text-body-secondary small mt-4 mb-0">Still have questions? <a href="#" class="fw-medium text-decoration-none">Contact support</a></p></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.