JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
<div id="wrapper">
<a id="toggle" href="javascript:void(0)"><span class="fa fa-bars"></span></a>
<nav id="nav">
	<ul>
		<li><a href="index">home</a></li>
		<li><a href="what_we_do">what we do</a>
			<ul class="sub-menu">
				<li><a href="#">submenu item</a></li>
				<li><a href="#">submenu item1</a></li>
			</ul>
		</li>
		<li><a href="about">about us</a>
			<ul class="sub-menu">
				<li><a href="#">submenu item</a></li>
				<li><a href="#">submenu item</a></li>
			</ul>
		</li>
	</ul>
</nav>
</div>

CSS

body {
	font-family: 'Open Sans', sans-serif;
}
a	{ outline:none; cursor:pointer; text-decoration: none; }

nav{
	display:block;
}

/*** Navigation Menu :: Start***/
#nav {
	margin: 30px 0 0;
	float: left;
}
#nav ul li {
	float: left;
	text-transform: uppercase;
	margin-left: 5px;
}
#nav ul li a {
	font-size: 14px;
	color: #2d2d2d;
	padding: 8px 15px;
	border-radius: 5px;
	display: block;
}
#nav ul li a:hover,
#nav ul li.active a,
#nav ul li.quote a,
#nav ul li:hover a {
	background: #EF3E36;
	color: #fff;
}
a#toggle {
  position: absolute;
  top: 10px;
  left: 0;
  width: 40px;
  height: 40px;
  background: red;
  text-align: center;
  color: white;
  display: none;
  transition: all ease-out 0.3s;
}
a#toggle span {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}
#nav {
  text-align: center;
  transition: all ease-out 0.3s;
}
#nav a { color: white; }
#nav ul {
  margin: 0;
  padding: 0;
  background-color: rgba(22,160,133, 0.8);
}
#nav ul li {
  display: inline-block;
  position: relative;
  padding-bottom: 10px;
}
#nav ul li a {
  display: block;
  padding: 10px;
}
#nav ul li a span {
  margin-left: 15px;
  transition: all ease-out 0.3s;
  -webkit-transition: all ease-out 0.1s;
  display: none;
}
#nav ul li ul {
  display: none;
  position: absolute;
  top: 38px;
  width: 215px;
  text-align: left;
}
#nav ul li ul li { display: block; }
#nav ul li ul li a { display: block; }
#nav ul li:hover a span { transform: rotateZ(90deg); }
#nav ul li:hover ul { display: block; }

#nav ul li ul.sub-menu {
	position: absolute;
	background: #fff;
	border-radius: 5px;
	padding: 5px;
	box-shadow: 0px 0px 3px rgba(0,0,0,0.3);
	display: none;
	z-index: 999999;
	top: 100%;
}
#nav ul li ul:before {
	border-bottom: 10px solid rgba(0, 0, 0, 0.2);
    border-left: 11px solid rgba(0, 0, 0, 0);
    border-right: 11px solid rgba(0, 0, 0, 0);
    content: "";
    display: inline-block;
    position: absolute;
    left: 23px;
    top: -10px;
}
#nav ul li ul:after...

JavaScript

var ico = $('<span class="fa fa-caret-right"></span>');
		  $('nav#nav li:has(ul)').append(ico);
		  
		  $('span.fa-caret-right').on('click',function(){
            $('li').removeClass('open');
			$(this).closest('li').toggleClass('open');
		  });
		  
		  $('a#toggle').on('click',function(e){
			$('html').toggleClass('open-menu');
			return false;
		  });
		  
		  
		  $('div#overlay').on('click',function(){
			$('html').removeClass('open-menu');
		  })