Accordions & Collapse
Default Accordions
Click the accordions below to expand/collapse the accordion content.
.accordion-body
, though the transition does limit overflow.
.accordion-body
, though the transition does limit overflow.
.accordion-body
, though the transition does limit overflow.
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse
plugin adds the appropriate classes that we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with
custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the collapse
plugin adds the appropriate classes that we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with
custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingThree">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Accordion Item #3
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" aria-labelledby="headingThree"
data-bs-parent="#accordionExample">
<div class="accordion-body">
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the collapse
plugin adds the appropriate classes that we use to style each element. These classes control the overall
appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with
custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go
within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
</div>
Flush Accordions
Add .accordion-flush
to remove the default background-color
, some borders, and some rounded corners to render accordions edge-to-edge with their parent container.
.accordion-flush
class. This is the first item's accordion body..accordion-flush
class. This is the second item's accordion body. Let's imagine this being
filled with some actual content..accordion-flush
class. This is the third item's accordion body. Nothing more exciting
happening here in terms of content, but just filling up the space to make it look, at least at first
glance, a bit more representative of how this would look in a real-world application.
<div class="accordion accordion-flush" id="accordionFlushExample">
<div class="accordion-item">
<h2 class="accordion-header" id="flush-headingOne">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
Accordion Item #1
</button>
</h2>
<div id="flush-collapseOne" class="accordion-collapse collapse" aria-labelledby="flush-headingOne"
data-bs-parent="#accordionFlushExample">
<div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the
<code>.accordion-flush</code> class. This is the first item's accordion body.</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#flush-collapseTwo" aria-expanded="false" aria-controls="flush-collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="flush-collapseTwo" class="accordion-collapse collapse" aria-labelledby="flush-headingTwo"
data-bs-parent="#accordionFlushExample">
<div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the
<code>.accordion-flush</code> class. This is the second item's accordion body. Let's imagine this being
filled with some actual content.</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-headingThree">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#flush-collapseThree" aria-expanded="false" aria-controls="flush-collapseThree">
Accordion Item #3
</button>
</h2>
<div id="flush-collapseThree" class="accordion-collapse collapse" aria-labelledby="flush-headingThree"
data-bs-parent="#accordionFlushExample">
<div class="accordion-body">Placeholder content for this accordion, which is intended to demonstrate the
<code>.accordion-flush</code> class. This is the third item's accordion body. Nothing more exciting
happening here in terms of content, but just filling up the space to make it look, at least at first
glance, a bit more representative of how this would look in a real-world application.</div>
</div>
</div>
</div>
Simple Card Accordions
Using the card component, you can
extend the default collapse behavior to create an accordion. To properly achieve
the accordion style, be sure to use .accordion
as a wrapper.
<div class="accordion" id="CardaccordionExample">
<div class="card mb-0">
<div class="card-header" id="CardheadingOne">
<h5 class="m-0">
<a class="custom-accordion-title d-block pt-2 pb-2"
data-bs-toggle="collapse" href="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</a>
</h5>
</div>
<div id="collapseOne" class="collapse show"
aria-labelledby="CardheadingOne" data-bs-parent="#CardaccordionExample">
<div class="card-body pt-0">
...
</div>
</div>
</div>
<div class="card mb-0">
<div class="card-header" id="CardheadingTwo">
<h5 class="m-0">
<a class="custom-accordion-title collapsed d-block pt-2 pb-2"
data-bs-toggle="collapse" href="#collapseTwo"
aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</a>
</h5>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="CardheadingTwo"
data-bs-parent="#CardaccordionExample">
<div class="card-body pt-0">
...
</div>
</div>
</div>
<div class="card mb-0">
<div class="card-header" id="CardheadingThree">
<h5 class="m-0">
<a class="custom-accordion-title collapsed d-block pt-2 pb-2"
data-bs-toggle="collapse" href="#collapseThree"
aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</a>
</h5>
</div>
<div id="collapseThree" class="collapse"
aria-labelledby="CardheadingThree" data-bs-parent="#CardaccordionExample">
<div class="card-body pt-0">
...
</div>
</div>
</div>
</div>
Always Open Accordions
Omit the data-bs-parent
attribute on each .accordion-collapse
to make accordion items stay open when another item is opened.
.accordion-body
, though the transition does limit overflow.
.accordion-body
, though the transition does limit
overflow.
.accordion-body
, though the transition does limit
overflow.
<div class="accordion" id="accordionPanelsStayOpenExample">
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseOne" aria-expanded="true"
aria-controls="panelsStayOpen-collapseOne">
Accordion Item #1
</button>
</h2>
<div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse show"
aria-labelledby="panelsStayOpen-headingOne">
<div class="accordion-body">
<strong>This is the first item's accordion body.</strong> It is shown by default, until the collapse
plugin adds the appropriate classes that we use to style each element. These classes control the
overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of
this with custom CSS or overriding our default variables. It's also worth noting that just about any
HTML can go within the <code>.accordion-body</code>, though the transition does limit overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseTwo" aria-expanded="false"
aria-controls="panelsStayOpen-collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="panelsStayOpen-collapseTwo" class="accordion-collapse collapse"
aria-labelledby="panelsStayOpen-headingTwo">
<div class="accordion-body">
<strong>This is the second item's accordion body.</strong> It is hidden by default, until the
collapse plugin adds the appropriate classes that we use to style each element. These classes
control the overall appearance, as well as the showing and hiding via CSS transitions. You can
modify any of this with custom CSS or overriding our default variables. It's also worth noting that
just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit
overflow.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingThree">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseThree" aria-expanded="false"
aria-controls="panelsStayOpen-collapseThree">
Accordion Item #3
</button>
</h2>
<div id="panelsStayOpen-collapseThree" class="accordion-collapse collapse"
aria-labelledby="panelsStayOpen-headingThree">
<div class="accordion-body">
<strong>This is the third item's accordion body.</strong> It is hidden by default, until the
collapse plugin adds the appropriate classes that we use to style each element. These classes
control the overall appearance, as well as the showing and hiding via CSS transitions. You can
modify any of this with custom CSS or overriding our default variables. It's also worth noting that
just about any HTML can go within the <code>.accordion-body</code>, though the transition does limit
overflow.
</div>
</div>
</div>
</div>
Custom Accordions
You can have custom look and feel for accorion as well. Just use class .custom-accordion
along with
.accordion
as a wrapper.
<div class="accordion custom-accordion" id="custom-accordion-one">
<div class="card mb-0">
<div class="card-header" id="headingFour">
<h5 class="m-0">
<a class="custom-accordion-title d-block"
data-bs-toggle="collapse" href="#collapseFour"
aria-expanded="true" aria-controls="collapseFour">
Q. Can I use this template for my client? <i
class="mdi mdi-chevron-down accordion-arrow"></i>
</a>
</h5>
</div>
<div id="collapseFour" class="collapse show"
aria-labelledby="headingFour"
data-bs-parent="#custom-accordion-one">
<div class="card-body">
...
</div>
</div>
</div>
<div class="card mb-0">
<div class="card-header" id="headingFive">
<h5 class="m-0">
<a class="custom-accordion-title collapsed d-block"
data-bs-toggle="collapse" href="#collapseFive"
aria-expanded="false" aria-controls="collapseFive">
Q. Can this theme work with WordPress? <i
class="mdi mdi-chevron-down accordion-arrow"></i>
</a>
</h5>
</div>
<div id="collapseFive" class="collapse"
aria-labelledby="headingFive"
data-bs-parent="#custom-accordion-one">
<div class="card-body">
...
</div>
</div>
</div>
<div class="card mb-0">
<div class="card-header" id="headingSix">
<h5 class="m-0">
<a class="custom-accordion-title collapsed d-block"
data-bs-toggle="collapse" href="#collapseSix"
aria-expanded="false" aria-controls="collapseSix">
Q. How do I get help with the theme? <i
class="mdi mdi-chevron-down accordion-arrow"></i>
</a>
</h5>
</div>
<div id="collapseSix" class="collapse" aria-labelledby="headingSix"
data-bs-parent="#custom-accordion-one">
<div class="card-body">
...
</div>
</div>
</div>
<div class="card mb-0">
<div class="card-header" id="headingSeven">
<h5 class="m-0">
<a class="custom-accordion-title collapsed d-block"
data-bs-toggle="collapse" href="#collapseSeven"
aria-expanded="false" aria-controls="collapseSeven">
Q. Will you regularly give updates of Hyper ? <i
class="mdi mdi-chevron-down accordion-arrow"></i>
</a>
</h5>
</div>
<div id="collapseSeven" class="collapse"
aria-labelledby="headingSeven"
data-bs-parent="#custom-accordion-one">
<div class="card-body">
...
</div>
</div>
</div>
</div>
Collapse
Bootstrap's collapse provides the way to toggle the visibility of any content or element. Please read the official Bootstrap documentation for a full list of options.
<p>
<a class="btn btn-primary" data-bs-toggle="collapse"
href="#collapseExample" aria-expanded="false"
aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary ms-1" type="button"
data-bs-toggle="collapse" data-bs-target="#collapseExample"
aria-expanded="false" aria-controls="collapseExample">
Button with data-bs-target
</button>
</p>
<div class="collapse show" id="collapseExample">
<div class="card card-body mb-0">
...
</div>
</div>
Collapse Horizontal
The collapse plugin also supports horizontal collapsing. Add the .collapse-horizontal
modifier class to transition the width
instead of height
and set a width
on the immediate child element.
<p>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample"
aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
</p>
<div style="min-height: 120px;">
<div class="collapse collapse-horizontal" id="collapseWidthExample">
<div class="card card-body mb-0" style="width: 300px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</div>
</div>
Multiple Targets
Multiple <button>
or <a>
can show and hide an element if
they each reference it with their href
or data-bs-target
attribute
<p>
<a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</p>
<div class="row">
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample1">
<div class="card card-body mb-0">
...
</div>
</div>
</div>
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample2">
<div class="card card-body mb-0">
...
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row-->