<section>
<div class="hamburger">
<div></div>
<div></div>
<div></div>
</div>
</section>
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bar-thickness: 5px;
}
section {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
body{background-color: #eee;}
.hamburger {
width: 40px;
height: 40px;
position: relative;
transition: transform .5s;
}
.hamburger:hover {transform: rotate(90deg);}
.hamburger div {
position: absolute;
width: 100%;
height: 5px;
background-color: #333;
border-radius: 3px;
transform-origin: 50% 50%;
transition: .5s .25s;
}
.hamburger div:nth-child(1){top: 0;}
.hamburger div:nth-child(2){top: calc(50% - var(--bar-thickness) / 2);}
.hamburger div:nth-child(3){top: calc(100% - var(--bar-thickness));}
.hamburger:hover div{top: calc(50% - var(--bar-thickness) / 2);}
.hamburger:hover div:nth-child(1){transform: rotate(-135deg);}
.hamburger:hover div:nth-child(2){opacity: 0;}
.hamburger:hover div:nth-child(3){transform: rotate( 135deg);}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.