Hello all of you, welcome to my other blog of Responsive Side Navigation Bar. Today in this blog will learn how to create a Responsive Sidebar Menu using HTML CSS and Javascript. I have been designing and writing several video tutorials and articles related to Responsive Navigation Menu using HTML and CSS, but today, we will also add JavaScript code.
A sidebar is the combination of various navigation links that align on the web page’s right or left side and helps to faster move from one web page to another to the users. The main purpose to create a sidebar is for small sizes screen devices like tablets, mobile.
There is only one difference between the side navigation bar and the navigation bar is, the navigation bar is a large screen size device like a laptop, computer, and side navigation from small sizes devices. Actually, we convert the navigation menu to the side navigation menu.
I have uploaded one image of the side navbar design that we are going to create. We can include or add various navigation links, logos,s and social media icons inside the sidebar. To make the sidebar fixed while scrolling we just add the following codes:
- position: fixed;
- left or right: 0px; (where you want to keep)
- top: 0px;
- height: 100vh;
- width: as your need for example: 250px;
To see the real demo of this animated dashboard side navbar and all the code that I have used to create this type of sidebar, you need to watch the full video tutorial of this programming that I have given below.
Side Navigation Bar in HTML CSS & JSÂ | Video Tutorial
Before jumping into the source code of this program [Side Navigation Bar in HTML CSS & JavaScript], let’s talk about some important topics of our sidebar menu.
As you have seen on the given tutorial of this dashboard sidebar menu. At first, it is in closed form, and we can only see the logo icon, navigation link’s icon, and logout icon, but when I hovered that the navigation logo icon small tooltip appears smoothly at the right side of that icon which helps the user to identify the name of that nav links.
When I opened the sidebar the tooltip disappears and the nav the links’ background color appears, we can also see the logo name and profile image. Have you noticed we can open this sidebar by clicking on the toggle button and search icon?
This is the piece of cake for those who have basic knowledge of HTML CSS & JavaScript but for those friends who are feeling difficult to create this side navigation, I have provided free source code files below.
You May Like This:
- Simple Website Design
- Simple CSS Sidebar Menu
- Drop-down Sidebar Menu
- Responsive Footer Section Design
Responsive Side Navigation Bar [Source Code]
To create Responsive Side Navigation Bar, follow the given steps line by line:
1. Create a folder. You can put any name in this folder and create the below-mentioned files inside this folder.
2. Create an index.html file. The file name must be index and its extension .html
3. Create a style.css file. The file name must be style and its extension .css
Once you create these files, paste the given codes into the specified files. If you don’t want to do these then scroll down and download the Responsive Side Navigation bar by clicking on the given download button.
First, paste the following codes into your index.html file.
<!DOCTYPE html> <!-- Created by CodingLab |www.youtube.com/CodingLabYT--> <html lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title> Responsive Sidebar Menu | CodingLab </title> <link rel="stylesheet" href="style.css"> <!-- Boxicons CDN Link --> <link href='https://unpkg.com/[email protected]/css/boxicons.min.css' rel='stylesheet'> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div class="sidebar"> <div class="logo-details"> <i class='bx bxl-c-plus-plus icon'></i> <div class="logo_name">CodingLab</div> <i class='bx bx-menu' id="btn" ></i> </div> <ul class="nav-list"> <li> <i class='bx bx-search' ></i> <input type="text" placeholder="Search..."> <span class="tooltip">Search</span> </li> <li> <a href="#"> <i class='bx bx-grid-alt'></i> <span class="links_name">Dashboard</span> </a> <span class="tooltip">Dashboard</span> </li> <li> <a href="#"> <i class='bx bx-user' ></i> <span class="links_name">User</span> </a> <span class="tooltip">User</span> </li> <li> <a href="#"> <i class='bx bx-chat' ></i> <span class="links_name">Messages</span> </a> <span class="tooltip">Messages</span> </li> <li> <a href="#"> <i class='bx bx-pie-chart-alt-2' ></i> <span class="links_name">Analytics</span> </a> <span class="tooltip">Analytics</span> </li> <li> <a href="#"> <i class='bx bx-folder' ></i> <span class="links_name">File Manager</span> </a> <span class="tooltip">Files</span> </li> <li> <a href="#"> <i class='bx bx-cart-alt' ></i> <span class="links_name">Order</span> </a> <span class="tooltip">Order</span> </li> <li> <a href="#"> <i class='bx bx-heart' ></i> <span class="links_name">Saved</span> </a> <span class="tooltip">Saved</span> </li> <li> <a href="#"> <i class='bx bx-cog' ></i> <span class="links_name">Setting</span> </a> <span class="tooltip">Setting</span> </li> <li class="profile"> <div class="profile-details"> <img src="profile.jpg" alt="profileImg"> <div class="name_job"> <div class="name">Prem Shahi</div> <div class="job">Web designer</div> </div> </div> <i class='bx bx-log-out' id="log_out" ></i> </li> </ul> </div> <section class="home-section"> <div class="text">Dashboard</div> </section> <script> let sidebar = document.querySelector(".sidebar"); let closeBtn = document.querySelector("#btn"); let searchBtn = document.querySelector(".bx-search"); closeBtn.addEventListener("click", ()=>{ sidebar.classList.toggle("open"); menuBtnChange();//calling the function(optional) }); searchBtn.addEventListener("click", ()=>{ // Sidebar open when you click on the search iocn sidebar.classList.toggle("open"); menuBtnChange(); //calling the function(optional) }); // following are the code to change sidebar button(optional) function menuBtnChange() { if(sidebar.classList.contains("open")){ closeBtn.classList.replace("bx-menu", "bx-menu-alt-right");//replacing the iocns class }else { closeBtn.classList.replace("bx-menu-alt-right","bx-menu");//replacing the iocns class } } </script> </body> </html>
Second, paste the following codes into your style.css file.
/* Google Font Link */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap'); *{ margin: 0; padding: 0; box-sizing: border-box; font-family: "Poppins" , sans-serif; } .sidebar{ position: fixed; left: 0; top: 0; height: 100%; width: 78px; background: #11101D; padding: 6px 14px; z-index: 99; transition: all 0.5s ease; } .sidebar.open{ width: 250px; } .sidebar .logo-details{ height: 60px; display: flex; align-items: center; position: relative; } .sidebar .logo-details .icon{ opacity: 0; transition: all 0.5s ease; } .sidebar .logo-details .logo_name{ color: #fff; font-size: 20px; font-weight: 600; opacity: 0; transition: all 0.5s ease; } .sidebar.open .logo-details .icon, .sidebar.open .logo-details .logo_name{ opacity: 1; } .sidebar .logo-details #btn{ position: absolute; top: 50%; right: 0; transform: translateY(-50%); font-size: 22px; transition: all 0.4s ease; font-size: 23px; text-align: center; cursor: pointer; transition: all 0.5s ease; } .sidebar.open .logo-details #btn{ text-align: right; } .sidebar i{ color: #fff; height: 60px; min-width: 50px; font-size: 28px; text-align: center; line-height: 60px; } .sidebar .nav-list{ margin-top: 20px; height: 100%; } .sidebar li{ position: relative; margin: 8px 0; list-style: none; } .sidebar li .tooltip{ position: absolute; top: -20px; left: calc(100% + 15px); z-index: 3; background: #fff; box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); padding: 6px 12px; border-radius: 4px; font-size: 15px; font-weight: 400; opacity: 0; white-space: nowrap; pointer-events: none; transition: 0s; } .sidebar li:hover .tooltip{ opacity: 1; pointer-events: auto; transition: all 0.4s ease; top: 50%; transform: translateY(-50%); } .sidebar.open li .tooltip{ display: none; } .sidebar input{ font-size: 15px; color: #FFF; font-weight: 400; outline: none; height: 50px; width: 100%; width: 50px; border: none; border-radius: 12px; transition: all 0.5s ease; background: #1d1b31; } .sidebar.open input{ padding: 0 20px 0 50px; width: 100%; } .sidebar .bx-search{ position: absolute; top: 50%; left: 0; transform: translateY(-50%); font-size: 22px; background: #1d1b31; color: #FFF; } .sidebar.open .bx-search:hover{ background: #1d1b31; color: #FFF; } .sidebar .bx-search:hover{ background: #FFF; color: #11101d; } .sidebar li a{ display: flex; height: 100%; width: 100%; border-radius: 12px; align-items: center; text-decoration: none; transition: all 0.4s ease; background: #11101D; } .sidebar li a:hover{ background: #FFF; } .sidebar li a .links_name{ color: #fff; font-size: 15px; font-weight: 400; white-space: nowrap; opacity: 0; pointer-events: none; transition: 0.4s; } .sidebar.open li a .links_name{ opacity: 1; pointer-events: auto; } .sidebar li a:hover .links_name, .sidebar li a:hover i{ transition: all 0.5s ease; color: #11101D; } .sidebar li i{ height: 50px; line-height: 50px; font-size: 18px; border-radius: 12px; } .sidebar li.profile{ position: fixed; height: 60px; width: 78px; left: 0; bottom: -8px; padding: 10px 14px; background: #1d1b31; transition: all 0.5s ease; overflow: hidden; } .sidebar.open li.profile{ width: 250px; } .sidebar li .profile-details{ display: flex; align-items: center; flex-wrap: nowrap; } .sidebar li img{ height: 45px; width: 45px; object-fit: cover; border-radius: 6px; margin-right: 10px; } .sidebar li.profile .name, .sidebar li.profile .job{ font-size: 15px; font-weight: 400; color: #fff; white-space: nowrap; } .sidebar li.profile .job{ font-size: 12px; } .sidebar .profile #log_out{ position: absolute; top: 50%; right: 0; transform: translateY(-50%); background: #1d1b31; width: 100%; height: 60px; line-height: 60px; border-radius: 0px; transition: all 0.5s ease; } .sidebar.open .profile #log_out{ width: 50px; background: none; } .home-section{ position: relative; background: #E4E9F7; min-height: 100vh; top: 0; left: 78px; width: calc(100% - 78px); transition: all 0.5s ease; z-index: 2; } .sidebar.open ~ .home-section{ left: 250px; width: calc(100% - 250px); } .home-section .text{ display: inline-block; color: #11101d; font-size: 25px; font-weight: 500; margin: 18px } @media (max-width: 420px) { .sidebar li .tooltip{ display: none; } }
If you face any difficulties while creating your Responsive Side Navigation Bar or your code is not working as expected, you can download the source code files for this Dashboard Sidebar Menu for free by clicking on the download button, and you can also view a live demo of this card slider by clicking on the view live button.
Anyone know how to enable scrolling on the menu, will donate 200indian rupees if helped, thanks
I'm developing an online anime website, and I'm using your template as a basis for my project, would you mind?
Please add the top menu in this sidebar and complete the dashboard with data table and form…
Please add the top menu in this sidebar and complete the dashboard with data table and form…
hi, i have a problem with another buttons like messages and more cause i can see only Dashboard. I dont know why.
help would be greatly appreciated: D
thanks
thank you so much have learned a lot on side menu
RESPECT and thanks
how change te icons?
how change te images?
thanks for such effort
So much thankyou sir ..it helped me alot in my project
Hi, thank you for the source code. I ported this to VUE.js.
https://www.npmjs.com/package/vue-sidebar-menu-akahon
Wow it is awesome! I also made a different one like that
thank you for the source code.
and how can i add a toogle button to the dashboard buttons when i click it should open new buttons bar
I've got the same problem, could u solve it ?
شكراً جزيلا ..Thaaaaaaaaaaaaaaaaaaaaanks
good
Dm me on facebook or instagram.
Sorry, I didn't get you.
hello I have a problem, can you help?
i added .sidebar {
overflow-y: auto;
overflow-x: hidden;}
if it is opened on the smart phone screen in landscape condition. The problem is that the content-profile div is not under the sidebar, but in the middle of the sidebar and covers other menus. how to fix it?
hello I have a problem, can you help?
i added .sidebar {
overflow-y: auto;
overflow-x: hidden;}
for the condition if it is opened on the smart phone screen in landscape condition. The problem is that the content-profile div is not under the sidebar, but in the middle of the sidebar and covers other menus. how to fix it?
hello I have a problem, can you help?
i added .sidebar {
overflow-y: auto;
overflow-x: hidden;}
if it is opened on the smart phone screen in landscape condition. The problem is that the content-profile div is not under the sidebar, but in the middle of the sidebar and covers other menus. how to fix it?
Firstly thank you very much for this lovely sibar.
The toogle doesn't expand. Could you please help me? Thanks
hi please do i need to add anything before using this code. i can see it same as i see them in the video. please help
Thank a ton. Best regards!!
You are welcom. Best regards!!
You are welcome. Best regards!!
You are welcom. Best regards!!
Yeah you can
You can DM me on instagram or facebook.
You can add content from HOme content.
Just add open classs in the HTML tag of the sidebar.
Glad you like it. Best regards!!
Glad you like it. Best regards!!
Your are welcome. Best regards!!
Glad you like it. Best regards!!
Glad you like it. Best regards!!
It's okey Akash. It's my peasure to help you. Just share my work.
You are always welcome.
You are always welcome.
You are always welcome.
All time.
thank you so much, i will work for that
Thank for your code , it realy nice….
Szuper,köszönöm szépen!
Super,thank you!
Greetings from Hungary
Yet source code is available but I followed your YouTube tutorial for this but thanks dear so much I'm also available to give donation ☺
buttons not working
can u make it for blogger?
Thank you
Hey if i enter the page the sidebar is closed by default kow can i make this open on enter this page ?
WoW Blogguer
Great work. Have been looking for an example along these lines.
thank you! JAH BLESS
hi
the side nav is impressive
im using it in my angular prg but it doesn,t work in toggle e.t.c properly
do i need to install any jquery, boostrap e.t.c
plz notify me if possibe on the solution , [email protected]
thankyou
Is there a word better than AMAZING?
can you make it responsive on mobile too?
Please, it doesn't toggle to the next element, it is only on dashboard. How can i add contents to the other items other than the dasboard item
Thank you
When using tag a to the logout button, it's broken
Is there any way to fix it?
Anyway, thank you for the source code!
when adding tag a to the logout button, it's broken
Thanks for this bro. Can I use your source code in my project?
thank you for this one
great work
Thanks for source code
dude you're the best
You are always welcome
You are always welcome
Thanks for inspection
How much time did it take you to learn all these things! Fan bro!
this is legit and impressive
Thank you so much for provide source code and download file