Collapse
Animated collapse using HTML details.
Collapse
Show something
Code
<details class="blue-collapse">
<summary>
<header class="blue-collapse-header d-flex">
<div class="blue-collapse-chevron" aria-hidden="true">❯</div>
Collapse
</header>
</summary>
Show something
</details> Element with class blue-collapse-chevron will be rotated to 90deg by default. But you can also customize the rotation target position with the CSS variable --blue-collapse-chevron-rotate:
Collapse
Show something
Code
<details class="blue-collapse">
<summary>
<header class="blue-collapse-header d-flex">
Collapse
<div class="blue-collapse-chevron" style="--blue-collapse-chevron-rotate: -90deg" aria-hidden="true">
❮
</div>
</header>
</summary>
Show something
</details> Combine with styling of Menu Item
Parent
Code
<details class="blue-collapse">
<summary class="btn blue-collapse-header blue-menu-item icon-link">
Parent
<span class="blue-btn-icon-wrapper">
<svg xmlns="http://www.w3.org/2000/svg" class="blue-collapse-chevron" viewBox="0 0 16 16">
<path
fill-rule="evenodd"
d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"
/>
</svg>
</span>
</summary>
<div class="vstack border rounded-4">
<button type="button" class="btn blue-menu-item">Child 1</button>
<button type="button" class="btn blue-menu-item">Child 2</button>
</div>
</details> Menu Item and Collapse grouped
.blue-collapse-group let’s you group a collapse together with another UI element like a button that should come before the collapse summary.
Collapse sub menu
Code
<div class="blue-collapse-group">
<button type="button" class="btn blue-menu-item">Parent</button>
<details class="blue-collapse">
<summary class="btn blue-collapse-header blue-menu-item icon-link blue-btn-square">
<span class="visually-hidden">Collapse sub menu</span>
<span class="blue-btn-icon-wrapper" aria-hidden>
<svg xmlns="http://www.w3.org/2000/svg" class="blue-collapse-chevron" viewBox="0 0 16 16">
<path
fill-rule="evenodd"
d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"
/>
</svg>
</span>
</summary>
<div class="vstack border rounded-4">
<button type="button" class="btn blue-menu-item">Child 1</button>
<button type="button" class="btn blue-menu-item">Child 2</button>
</div>
</details>
</div> Collapse sub menu
Code
<div class="bg-body-secondary py-4" style="width: 16.563rem">
<div class="blue-collapse-group">
<button type="button" class="btn blue-menu-item icon-link">
<span class="blue-btn-icon-wrapper" aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path
d="M8.235 1.559a.5.5 0 0 0-.47 0l-7.5 4a.5.5 0 0 0 0 .882L3.188 8 .264 9.559a.5.5 0 0 0 0 .882l7.5 4a.5.5 0 0 0 .47 0l7.5-4a.5.5 0 0 0 0-.882L12.813 8l2.922-1.559a.5.5 0 0 0 0-.882zM8 9.433 1.562 6 8 2.567 14.438 6z"
></path>
</svg>
</span>
Parent
</button>
<details class="blue-collapse">
<summary class="btn blue-collapse-header blue-menu-item icon-link blue-btn-square">
<span class="visually-hidden">Collapse sub menu</span>
<span class="blue-btn-icon-wrapper" aria-hidden>
<svg xmlns="http://www.w3.org/2000/svg" class="blue-collapse-chevron" viewBox="0 0 16 16">
<path
fill-rule="evenodd"
d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"
/>
</svg>
</span>
</summary>
<div class="blue-collapse-indent vstack border-start">
<button type="button" class="btn blue-menu-item">Child 1</button>
<button type="button" class="btn blue-menu-item">Child 2</button>
</div>
</details>
</div>
</div> Grab the code
When you don't use the entire Blue Web library, you can also just copy and paste the required code into your own project.
-
Copy and paste the following code into your project. Source: @/dist/styles/_collapse.scss