JSFiddle - React, Tailwind, and code Playground
HTML
<li class="top-nav__elem top-nav__elem--burger">
<a id="burger-top" class="burger-top">
<span class="bar bar--top"></span>
<span class="bar bar--mid"></span>
<span class="bar bar--bot"></span>
</a>
<ul class="burger-panel-list">
<li class="burger-panel__elem">
<a class="burger-panel__elem-link" href="#header">Home</a>
</li>
<li class="burger-panel__elem">
<a class="burger-panel__elem-link" href="#scrollto-section-1">Works</a>
</li>
<li class="burger-panel__elem">
<a class="burger-panel__elem-link" href="#scrollto-section-2">About</a>
</li>
<li class="burger-panel__elem">
<a class="burger-panel__elem-link" href="#scrollto-section-3">Journal</a>
</li>
<li class="burger-panel__elem">
<a class="burger-panel__elem-link" href="#scrollto-section-4">Contact</a>
</li>
</ul>
</li>
CSS
.top-nav__elem--burger{margin-left: 10px;}
.burger-top{
width: 40px;
height: 40px;
display: block;
position: relative;
cursor: pointer;
border: 2px solid rgba(0,0,0,0);
border-radius: 50%;
transition: .3s;
}
.burger-top:hover{
border-color: #fff;
}
.burger-top .bar{
display: block;
position: absolute;
width: 20px;
height: 2px;
background-color: red;
top: 18px;
left: 8px;
transition: .3s;
}
.burger-top .bar--top{
margin-top: -6px;
}
.burger-top .bar--bot{
margin-top: 6px;
}
.burger-panel-list{
position: absolute;
z-index: 1000;
width: 190px;
top: 130px;
left: 20px;
background-color: black;
border-radius: 10px;
display: none;
}
.burger-panel-list:after{
content: '';
position: absolute;
width: 0;
height: 0;
top: -16px;
right: 13px;
border-style: solid;
border-width: 0 11px 16px 11px;
border-color: transparent transparent black transparent;
}
.burger-top.active .bar--top,
.burger-top.active .bar--bot{
margin-top: 0;
}
.burger-top.active .bar--mid{
opacity: 0;
}
.burger-top.active .bar--top{
transform: rotate(-315deg);
}
.burger-top.active .bar--bot{
transform: rotate(315deg);
}
JavaScript
var mainBurgerMenu = $('.main-burger-menu'),
burgerPanelList = $('.burger-panel-list');
$('#burger-top').click(function(e) {
burgerPanelList.slideToggle(300);
$(this).toggleClass('active');
$('.bullets-container').toggleClass('bullets-container--translate');
e.preventDefault();
});