JSFiddle - React, Tailwind, and code Playground

by Neeraj Yadav

HTML

<!-- nav-right -->
<div class="container">
  <main>
    <nav>
      <div class="nav-right hidden-xs">
        <div class="button" id="btn">
          <div class="bar top"></div>
          <div class="bar middle"></div>
          <div class="bar bottom"></div>
        </div>
      </div>
      <!-- nav-right -->
    </nav>

    <a href="https://codepen.io/tonkec/" class="ua" target="_blank">
      <span class="fa fa-user">Hi There!!!</span>
    </a>
  </main>

  <div class="sidebar">
    <ul class="sidebar-list">
      <li class="sidebar-item"><a href="#" class="sidebar-anchor">Item 1</a></li>
      <li class="sidebar-item"><a href="#" class="sidebar-anchor">Item 2</a></li>
      <li class="sidebar-item"><a href="#" class="sidebar-anchor">Item 3</a></li>
      <li class="sidebar-item"><a href="#" class="sidebar-anchor">Item 4</a></li>
    </ul>
  </div>
</div>

CSS

@import url(https://fonts.googleapis.com/css?family=Arimo:400,400italic,700,700italic);
body,
html {
  height: 100%;
  padding: 0;
  margin: 0;
  font-family: 'Arimo', sans-serif;
}

.container {
  z-index: 1;
  position: relative;
  height: 100%;
  padding: 25px;
}

main {
  z-index: 2;
  position: relative;
  height: 100%;
  background-color: #2D3142;
  -webkit-transition: transform .7s ease-in-out;
  -moz-transition: transform .7s ease-in-out;
  -ms-transition: transform .7s ease-in-out;
  -o-transition: transform .7s ease-in-out;
  transition: transform .7s ease-in-out;
}

.sidebar {
  height: 100%;
  width: 400px;
  position: relative;
  top: 0;
  z-index: 3;
  right: 0;
  background-color: #EF8354;
}

.bar {
  display: block;
  height: 5px;
  width: 50px;
  background-color: #EF8354;
  margin: 10px auto;
}

.button {
  cursor: pointer;
  display: inline-block;
  width: auto;
  margin: 0 auto;
  -webkit-transition: all .7s ease;
  -moz-transition: all .7s ease;
  -ms-transition: all .7s ease;
  -o-transition: all .7s ease;
  transition: all .7s ease;
}

.nav-right {
  position: absolute;
  right: 40px;
  top: 20px;
}

.middle {
  margin: 0 auto;
}

.bar {
  -webkit-transition: all .7s ease;
  -moz-transition: all .7s ease;
  -ms-transition: all .7s ease;
  -o-transition: all .7s ease;
  transition: all .7s ease;
}

.button.active .top {
  -webkit-transform: translateY(15px) rotateZ(45deg);
  -moz-transform: translateY(15px) rotateZ(45deg);
  -ms-transform: translateY(15px) rotateZ(45deg);
  -o-transform: translateY(15px) rotateZ(45deg);
  transform: translateY(15px) rotateZ(45deg);
}

.button.active .bottom {
  -webkit-transform: translateY(-15px) rotateZ(-45deg);
  -moz-transform: translateY(-15px) rotateZ(-45deg);
  -ms-transform: translateY(-15px) rotateZ(-45deg);
  -o-transform: translateY(-15px) rotateZ(-45deg);
  transform: translateY(-15px) rotateZ(-45deg);
}

.button.active .middle {
  width: 0;
}

.move-to-left {
  -webkit-transform:...

JavaScript

$(document).ready(function() {

  function toggleSidebar() {
    $(".button").toggleClass("active");
    $("main").toggleClass("move-to-left");
    $(".sidebar-item").toggleClass("active");
  }

  $(".button").on("click tap", function() {
    toggleSidebar();
  });

  $(document).keyup(function(e) {
    if (e.keyCode === 27) {
      toggleSidebar();
    }
  });

});