Creating Offcanvas Sidebar with Bootstrap 5
Intro
You can add hidden sidebars for your web sites and apps for navigation, shopping carts, and more which appear from the left, right, or bottom edge of the viewport. You can show and hide them using buttons, links or other elements on your page. You can also control the Offcanvas Sidebars using App Connect dynamic events.
This is possible thanks to the Offcanvas component in Bootstrap 5.
Creating Offcanvas Sidebar
We created a simple Bootstrap 5 page, where we want to add the Offcanvas component.
Open the App Connect panel, select App and add a new component:
Open the Components menu and select Dynamic Offcanvas:
The Offcanvas component has been added on your page.
Options
You can find its properties in the Properties panel:
You can select the position of the Offcanvas - Start, End or Bottom.
Start - The Offcanvas appears from the left edge of the viewport
End - The Offcanvas appears from the right edge of the viewport
Bottom - The Offcanvas appears from the bottom edge of the viewport
Customize the rest of the options as you need:
Scroll - Allow body scrolling while offcanvas is open
Auto Show - Show the officanvas when the page loads
No Backdrop - Disable the backdrop on page body while offcanvas is open
No Keyboard - Disable closing of the offcanvas when escape key is pressed
Layout
The offcanvas component contains a header and body.
You can add your content in the offcanvas body:
Controlling Offcanvas
You can control the Offcanvas Component using any any element on your page.
Using Action Toggle
The easiest way to control the offcanvas is using a button. Select your button and open the Action Toggle menu:
Select Offcanvas:
And select your offcanvas in the menu:
Using Dynamic Events
You can also use App Connect Dynamic Events to Open, Close or Toggle the offcanvas:
Select the event you want to use, in our case on click:
And click the Action Picker button:
Select Show under the Offcanvas Component and add it:
Click Select and you are done:
You can preview the page in the browser: