<nav>
  <div class="toggle-wrap">
    <span class="toggle-bar"></span>
  </div>
  <hgroup>
    <h3>Menu toggle with Sidebar slide</h3>
    <small>Toggle menu using CSS (animate the icon to close) with sidebar sliding from the left.</small>
  </hgroup>
</nav>
<aside>
  <a href="#">Haha</a>
  <a href="#">Nice</a>
  <a href="#">Menu</a>
</aside>
* {
  margin: 0;
  padding: 0;
}
html,body {
  background: #303030;
  color: #303030;
  height: 100%;
  width: 100%;
  positon: absolute;
  font: normal 1em "Arial";
}
nav {
  padding: 10px;
  position: relative;
  background: #4DEB5A;
  z-index: 1;
}
nav::after {
  content: "";
  display: block;
  clear: both;
}
hgroup {
  float:left;
  margin: 2px 2px 2px 10px;
}
aside {
  position: absolute;
  width: 300px;
  height: 100%;
  background: #383838;
  left: 0;
  top: 0;
  display: none;
}
aside::before {
  content: "";
  display: block;
  height: 67px;
}
aside a {
  display: block;
  padding: 12px 18px;
  text-decoration: none;
  font-size: 20px;
  color: #818181;
  border-bottom: 1px solid #414141;
}
.toggle-wrap {
  padding: 10px;
  position: relative;
  cursor: pointer;
  float: left;
  
  /*disable selection*/
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.toggle-bar,
.toggle-bar::before,
.toggle-bar::after,
.toggle-wrap.active .toggle-bar,
.toggle-wrap.active .toggle-bar::before,
.toggle-wrap.active .toggle-bar::after {
  -webkit-transition: all .2s ease-in-out;
  -moz-transition: all .2s ease-in-out;
  -o-transition: all .2s ease-in-out;
  transition: all .2s ease-in-out;
}
.toggle-bar {
  width: 38px;
  margin: 10px 0;
  position: relative;
  border-top: 6px solid #303030;
  display: block;
}
.toggle-bar::before,
.toggle-bar::after {
  content: "";
  display: block;
  background: #303030;
  height: 6px;
  width: 38px;
  position: absolute;
  top: -16px;
  -ms-transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  -ms-transform-origin: 13%;
  -webkit-transform-origin: 13%;
  transform-origin: 13%;
}
.toggle-bar::after {
  top: 4px;
}
.toggle-wrap.active .toggle-bar {
  border-top: 6px solid transparent;
}
.toggle-wrap.active .toggle-bar::before {
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.toggle-wrap.active .toggle-bar::after {
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
(function() {
  $('.toggle-wrap').on('click', function() {
    $(this).toggleClass('active');
    $('aside').animate({width: 'toggle'}, 200);
  });
})();

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js