JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://code.jquery.com/jquery-1.8.3.js"></script>
<div class="overlay"></div>
<div class="nav">
  <a href="#" class="btn">Menu</a>
  <ul>
    <li><a href="#">link1</a></li>
    <li><a href="#">link2</a></li>
    <li><a href="#">link3</a></li>
    <li><a href="#">link4</a></li>
    <li><a href="#">link5</a></li>
  </ul>
</div>

CSS

body {
  height: 10000px;
}
.nav {
  top: 0;
  left: -200px;
  width: 200px;
  padding: 10px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: #bbb;
  position: fixed;
  z-index: 1000;
  height: 100%;
      -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}
.nav.open {
  left: 0;
}
.nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav ul li {
  padding: 5px;
}
.nav .btn {
  padding: 10px;
  position: absolute;
  top: 5px;
  left: 100%;
  margin-left: 5%;
  background: #000;
  color: #fff;
}
.overlay {
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: fixed;
  background: rgba(0,0,0,0.2);
  opacity: 0;
  z-index: 999;
  visibility: hidden;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
.overlay.nav-open {
  opacity: 1;
  visibility: visible;
}

JavaScript

$('.nav .btn').click(function(e){
  var ths = $(this);
  ths.closest('.nav').toggleClass('open');
  $('.overlay').toggleClass('nav-open');
  e.preventDefault();
});
$('.overlay').click(function(e){
  var ths = $(this);
  $('.overlay').removeClass('nav-open');
  $('.nav').removeClass('open');

  e.preventDefault();
});