JSFiddle - React, Tailwind, and code Playground

by WORKMAN

HTML

<input type="checkbox" id="hmt" class="hidden-menu-ticker">
<label class="btn-menu" for="hmt">
  <span class="first"></span>
  <span class="second"></span>
  <span class="third"></span>
</label>
<ul class="hidden-menu">
  <li><a href="">Link 1</a></li>
  <li><a href="">Link 2</a></li>
  <li><a href="">Link 3</a></li>
</ul>

CSS

.hidden-menu {
  display: block;
  position: fixed;
  list-style: none;
  padding: 50px 30px;
  margin: 0;
  box-sizing: border-box;
  width: 200px;
  background-color: #060606;
  height: 100%;
  top: 0;
  left: -200px;
  transition: left .2s;
  z-index: 2;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}

.hidden-menu li {
  padding: 3px 0;
}

.hidden-menu a {
  color: #fff;
  text-decoration: none;
}

.hidden-menu-ticker {
  display: none;
}

.btn-menu {
  color: #fff;
  background-color: #060606;
  padding: 5px;
  position: fixed;
  top: 5px;
  left: 5px;
  cursor: pointer;
  transition: left .23s;
  z-index: 3;
  width: 25px;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}

.btn-menu span {
  display: block;
  height: 5px;
  background-color: #fff;
  margin: 5px 0 0;
  transition: all .1s linear .23s;
  position: relative;
}

.btn-menu span.first {
  margin-top: 0;
}

.hidden-menu-ticker:checked ~ .btn-menu {
  left: 160px;
}

.hidden-menu-ticker:checked ~ .hidden-menu {
  left: 0;
}

.hidden-menu-ticker:checked ~ .btn-menu span.first {
  -webkit-transform: rotate(45deg);
  top: 10px;
}

.hidden-menu-ticker:checked ~ .btn-menu span.second {
  opacity: 0;
}

.hidden-menu-ticker:checked ~ .btn-menu span.third {
  -webkit-transform: rotate(-45deg);
  top: -10px;
}