Easy methods to create Hamburger menu sidebar utilizing HTML CSS And JS. Designed by Profesor08 a codepen consumer.
<div class="nav-container" tabindex="0">
<div class="nav-toggle"></div>
<nav class="nav-items">
<a category="nav-item" href="#">House</a>
<a category="nav-item" href="#">About US</a>
<a category="nav-item" href="#">Product</a>
<a category="nav-item" href="#">Contact US</a>
</nav>
</div>
$toggleSize: 40px;
$toggleMargin: 10px;
$toggleLine: 4px;
$toggleColor: pink;
.nav-container {
place: relative;
show: inline-block;
max-width: $toggleSize + $toggleMargin;
max-height: $toggleSize + $toggleMargin;
overflow: seen;
define: none;
//&:focus-within, &:focus {
&.is-active {
.nav-toggle {
&:earlier than, &:after {
box-shadow: none;
}
&:earlier than {
rework: rotate(-45deg);
}
&:after {
rework: rotate(45deg);
}
}
.nav-items {
rework: translate(0, 0);
}
}
.nav-toggle {
$offset: $toggleSize * 0.5;
place: relative;
width: $toggleSize;
top: $toggleSize;
margin: $toggleMargin;
z-index: 2;
&:hover {
cursor: pointer;
}
&:earlier than, &:after {
content material: "";
place: absolute;
high: #{$offset - $toggleLine / 2};
left: 0;
rework: translate(0, 0);
width: 100%;
top: $toggleLine;
background: $toggleColor;
transition: rework .3s ease, box-shadow .3s ease;
}
&:earlier than {
box-shadow: 0 #{$offset / 1.5} 0 0 $toggleColor;
}
&:after {
box-shadow: 0 #{-$offset / 1.5} 0 0 $toggleColor;
}
}
.nav-items {
place: absolute;
high: 0;
left: 0;
min-width: 300px;
max-width: 50vw;
width: 100vw;
top: 100vh;
z-index: 1;
padding: 80px 20px 20px 10px;
transition: rework .3s ease;
rework: translate(calc(-100% - 50px), 0);
background: #EFEFEF;
show: grid;
grid-template-columns: 1fr;
grid-gap: 5px 0;
align-content: begin;
box-shadow: 0 0 50px rgba(0, 0, 0, 0.3);
.nav-item {
background: darken(#EFEFEF, 5%);
padding: 10px;
transition: background-color .3s ease;
&:hover {
cursor: pointer;
background: darken(#EFEFEF, 10%);
}
}
}
}
const nav = doc.querySelector(".nav-container");
if (nav) {
const toggle = nav.querySelector(".nav-toggle");
if (toggle) {
toggle.addEventListener("click on", () => {
if (nav.classList.comprises("is-active")) {
nav.classList.take away("is-active");
}
else {
nav.classList.add("is-active");
}
});
nav.addEventListener("blur", () => {
nav.classList.take away("is-active");
});
}
}
Â
Hamburger menu sidebar

