JSFiddle - React, Tailwind, and code Playground
by arzo
HTML
<a class="hamburger">
<span class="hm hm-1"></span>
<span class="hm hm-2"></span>
<span class="hm hm-3"></span>
</a>
CSS
.hamburger {
background: #f00;
cursor: pointer;
display: block;
padding: 9px;
position: relative;
width: 18px;
height: 14px;
}
.hamburger .hm {
display: block;
background: #fff;
border-radius: 3px;
height: 3px;
width: 19px;
position: absolute;
left: 9px;
opacity: 1;
}
.hamburger .hm-1 {
top: 9px;
-webkit-transition: transform .5s, top .5s .5s;
transition: transform .5s, top .5s .5s;
}
.hamburger .hm-2 {
top: 15px;
-webkit-transition: opacity .5s ease-out;
transition: opacity .5s ease-out;
}
.hamburger .hm-3 {
top: 21px;
-webkit-transition: transform .5s, top .5s .5s;
transition: transform .5s, top .5s .5s;
}
.hamburger:hover .hm-1 {
transform: rotate(45deg);
-webkit-transition: top .5s, transform .5s .5s;
transition: top .5s, transform .5s .5s;
}
.hamburger:hover .hm-1, .hamburger:hover .hm-3 {
top: 15px;
}
.hamburger:hover .hm-3 {
transform: rotate(-45deg);
-webkit-transition: top .5s, transform .5s .5s;
transition: top .5s, transform .5s .5s;
}
.hamburger:hover .hm-2 {
opacity: 0;
}