Inspired by
Bootstrap's
similar component but differing in a few key ways, the
Collapse
component allows you to toggle the visibility of certain
content chunks.
Adding the class of Collapse
will enable basic functionality, where the
element will hide or show based on the value of its aria-hidden
attribute
(true
or false
) or whether or not it is the :target
.
Adding the class js-Collapse
or calling $(element).collapse()
will
enable enhanced functionality with animation. Unlike Bootstrap's plugin, it
will not automatically collapse the element to avoid conflicting with the
intended aria-expanded
state.
Any element with an aria-controls
attribute mapping to the collapsible
element's id
will toggle its visibility on click. You can also use a link
targeting the element's id
, which will retain the basic functionality even
when JavaScript fails to initialize.
If you need to programatically trigger opening and closing of collapses, you
can access the underlying Collapse
class as cpeToolkit.Collapse
:
const myCollapse = new cpeToolkit.Collapse('.my-collapse');
myCollapse.open();
myCollapse.close();
<p>
<a class="Button" href="#id" aria-controls="id">
Toggle Link
<svg width="16" height="16" viewBox="-9 -6 32 32" class="Icon u-rotateOnExpand180">
<polygon transform="rotate(90, 7, 10)" points="0,0 7,0 14,10 7,20 0,20 7,10"/>
</svg>
</a>
</p>
<div class="Collapse js-Collapse u-bgSilver u-pad1" aria-hidden="true" id="id">
<p>
Pedlaer wimizuba aca homuhahi no ab lavku hi aju juz ishab suz guvokluc. Pa ogcu ekijodif sojdi lojdisis nij vos mom uto nucta ru ji dim ma diopu gapfov lotubzad. Vo odabe mivhabisu di jodlipe jaliva zeukoulo upasoug odrug pu rom jed jiaveom ul. Kofed womwer gilgej ukjeoke lah ji vep tik umali madhaaj fenwude certosow rubas taczoura eklemni.
</p>
</div>
Do note that because the JavaScript component uses height animations by
default, over-use may affect performance. You can disable animation for
specific instances by including data-animate="false"
on the Collapse
element.
<p>
<a class="Button" href="#demo-collapse-3" aria-controls="demo-collapse-3">
Don't animate
<svg width="16" height="16" viewBox="-9 -6 32 32" class="Icon">
<polygon transform="rotate(90, 7, 10)" points="0,0 7,0 14,10 7,20 0,20 7,10"/>
</svg>
</a>
</p>
<div class="Collapse js-Collapse u-bgSilver u-pad1" data-animate="false" aria-hidden="true" id="demo-collapse-3">
<p>
Ewu lujaudu tumvazta ru rise cudamdo kojnuv zahuh onasa fe onout leh obied ezrij. Izlur disbag bivgo guw ru deum ron hesoppov tulag neh mu nodezo puse pinu niire foshurjov fod. Wiwmoc celpuz ibwi ih dan ap ebev du vowadweb biote hukulat ireajnu miezbe uzenen gar zijvaf.
</p>
</div>
You can specify a data-trigger-class
option on the collapsible element to
toggle a class on all trigger elements on expand. This is helpful for one-way
expand/collapse elements, removing unnecessary elements after the trigger
occurs.
Atlah tokka doji mi ukopovna negozed dajeoz avcemuwa vivew awmadhe dib ki obmah rilpeb. Read more…
<p>
Ri fa kov foj li ez ifi jizetbec rab en ugifuso nenogi.
<a href="#demo-more" aria-controls="data-more" aria-expanded="false">
Read more…
</a>
</p>
<p class="Collapse js-Collapse" data-trigger-class="u-hidden" aria-hidden="true" id="demo-more">
Solep lu gadsofjib hubna vihaz cal iwmiwo upnic gaji gekheh wawruzu lohewa. Zejzu vugenhu zaaza darhiz sow hagpot riridfe gugti su upeedopul fid lo rigihab nauhafa pu vopis. Tiripca socrevug ugouzzow wek dewili bujrebab zohsep uja jikif gu durozfub wudnoono kuabu oti wus. Woh hipze ikera ciul kubewrok ez luukemep alsebe cudecgat bebvi veh umisofda so bewomvet lu abuuci odla cok.
</p>