📥 Bootstrap 5 – Offcanvas: Slide-In Panels for Menus, Sidebars & More
🧲 Introduction – What Is Offcanvas in Bootstrap 5?
The offcanvas component in Bootstrap 5 allows you to create sliding panels that appear from the side, top, or bottom of the screen. Commonly used for navigation menus, shopping carts, notifications, or settings panels, offcanvas menus help declutter UI while maintaining interactivity.
🎯 In this guide, you’ll learn:
- How to build offcanvas panels using data attributes or JavaScript
- Position offcanvas from left, right, top, or bottom
- Include headers, body, and close buttons
- Customize backdrop, scroll behavior, and responsive display
✅ Example 1 – Basic Offcanvas from Left
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasLeft">
Open Menu
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasLeft" aria-labelledby="offcanvasLeftLabel">
<div class="offcanvas-header">
<h5 id="offcanvasLeftLabel">Menu</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>This is a left-sliding offcanvas panel.</p>
</div>
</div>
🔍 Explanation:
Element/Class | Purpose |
---|---|
.offcanvas | Main panel wrapper |
.offcanvas-start | Slides in from the left |
data-bs-toggle="offcanvas" | Toggles the component |
data-bs-target="#id" | Links button to the offcanvas element |
.offcanvas-header | Title and close button container |
.btn-close | Dismisses the panel |
.offcanvas-body | Content area of the panel |
✅ Example 2 – Offcanvas from Right
<button class="btn btn-success" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight">
Open Cart
</button>
<div class="offcanvas offcanvas-end" id="offcanvasRight">
<div class="offcanvas-header">
<h5>Shopping Cart</h5>
<button class="btn-close" data-bs-dismiss="offcanvas"></button>
</div>
<div class="offcanvas-body">
<p>Your cart items will appear here.</p>
</div>
</div>
🔍 Use Case:
- Use
.offcanvas-end
for right-side slide-in panels (like carts, settings)
✅ Example 3 – Offcanvas from Bottom or Top
<!-- Offcanvas Bottom -->
<div class="offcanvas offcanvas-bottom" id="offcanvasBottom">
<div class="offcanvas-header">
<h5>Bottom Panel</h5>
<button class="btn-close" data-bs-dismiss="offcanvas"></button>
</div>
<div class="offcanvas-body">
<p>This panel slides in from the bottom.</p>
</div>
</div>
<!-- Trigger Button -->
<button class="btn btn-warning" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom">
Slide Up Panel
</button>
🔍 Directional Classes:
Class | Slides From |
---|---|
.offcanvas-start | Left |
.offcanvas-end | Right |
.offcanvas-top | Top |
.offcanvas-bottom | Bottom |
✅ Custom Behavior Options
Option | Effect |
---|---|
data-bs-scroll="true" | Allows body scrolling while panel is open |
data-bs-backdrop="false" | Disables dimmed background when open |
✅ Example with No Backdrop:
<div class="offcanvas offcanvas-end" data-bs-backdrop="false" data-bs-scroll="true">
<!-- Content -->
</div>
✅ Trigger Offcanvas Using JavaScript
var myCanvas = new bootstrap.Offcanvas(document.getElementById('offcanvasRight'));
myCanvas.show();
🛠️ Best Practices for Offcanvas UI
Tip | Why It Helps |
---|---|
Limit offcanvas width | Prevents covering entire screen |
Use logical IDs and accessible labels | Ensures screen reader compatibility |
Avoid nesting offcanvas inside offcanvas | May break behavior or cause layout bugs |
Use for secondary interactions | Ideal for filters, carts, account menus |
Test across screen sizes | Especially important for mobile-first UX |
📌 Summary – Slide-in Menus Made Easy with Bootstrap Offcanvas
The offcanvas component in Bootstrap 5 adds a clean, mobile-first way to show additional content like navigation, settings, carts, and more. Its flexibility allows sliding in from any side of the screen with just a few classes and attributes.
🔍 Key Takeaways:
- Use
data-bs-toggle="offcanvas"
and.offcanvas-*
to control behavior and direction - Include
.offcanvas-header
,.offcanvas-body
, and.btn-close
for standard layout - Customize scroll and backdrop options for advanced UX
- Offcanvas panels are responsive, accessible, and fully themeable
⚙️ Best for e-commerce side carts, navigation drawers, filters, and contextual options.
❓ FAQs – Bootstrap 5 Offcanvas
❓ How do I trigger an offcanvas panel with a button?
✅ Use data-bs-toggle="offcanvas"
and data-bs-target="#offcanvasID"
.
❓ Can I open multiple offcanvas panels at once?
❌ Not recommended. Bootstrap supports one active offcanvas at a time.
❓ Is JavaScript required for offcanvas?
✅ Yes. Bootstrap’s JavaScript bundle must be included.
❓ Can I disable the background overlay?
✅ Yes. Add data-bs-backdrop="false"
to the offcanvas element.
Share Now :