JSFiddle - React, Tailwind, and code Playground
by Marie Gérard
HTML
<div class="container">
<h1>Hamburger Icon Animations</h1>
<div class="row cf">
<div class="three col">
<div class="hamburger" id="hamburger-1">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-2">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-3">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-4">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
</div>
<div class="row cf">
<div class="three col">
<div class="hamburger" id="hamburger-5">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-6">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-7">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
<div class="three col">
<div class="hamburger" id="hamburger-8">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</div>
</div>
</div>
<div class="row cf">
<div class="three col">
<div class="hamburger" id="hamburger-9">
...
CSS
html, body{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
font-family: 'Open Sans', sans-serif;
}
a{
text-decoration: none;
}
p, li, a{
font-size: 14px;
}
/* GRID */
.twelve { width: 100%; }
.eleven { width: 91.53%; }
.ten { width: 83.06%; }
.nine { width: 74.6%; }
.eight { width: 66.13%; }
.seven { width: 57.66%; }
.six { width: 49.2%; }
.five { width: 40.73%; }
.four { width: 32.26%; }
.three { width: 23.8%; }
.two { width: 15.33%; }
.one { width: 6.866%; }
/* COLUMNS */
.col {
display: block;
float:left;
margin: 1% 0 1% 1.6%;
}
.col:first-of-type {
margin-left: 0;
}
.container{
width: 100%;
max-width: 940px;
margin: 0 auto;
position: relative;
text-align: center;
}
/* CLEARFIX */
.cf:before,
.cf:after {
content: " ";
display: table;
}
.cf:after {
clear: both;
}
.cf {
*zoom: 1;
}
/* ALL */
.row .three{
padding: 80px 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
background-color: #2c3e50;
color: #ecf0f1;
text-align: center;
}
.hamburger .line{
width: 50px;
height: 5px;
background-color: #ecf0f1;
display: block;
margin: 8px auto;
-webkit-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.hamburger:hover{
cursor: pointer;
}
/* ONE */
#hamburger-1.is-active .line:nth-child(2){
opacity: 0;
}
#hamburger-1.is-active .line:nth-child(1){
-webkit-transform: translateY(13px) rotate(45deg);
-ms-transform: translateY(13px) rotate(45deg);
-o-transform: translateY(13px) rotate(45deg);
transform: translateY(13px) rotate(45deg);
}
#hamburger-1.is-active .line:nth-child(3){
-webkit-transform: translateY(-13px) rotate(-45deg);
-ms-transform: translateY(-13px) rotate(-45deg);
-o-transform: translateY(-13px) rotate(-45deg);
transform: translateY(-13px) rotate(-45deg);
}
/* TWO */
#hamburger-2.is-active .line:nth-child(1){
-webkit-transform: translateY(13px);
...
JavaScript
$(document).ready(function(){
$(".hamburger").click(function(){
$(this).toggleClass("is-active");
});
});