<nav>
  <div class="navToggle">
    <div class="icon"></div>
  </div>
  
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>
*{
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

body{
  background-color: darken(white, 6%);
  font-family: 'Roboto', sans-serif;
  position: relative;
}

nav{
  width: 100%;
  height: 100px;
  background-color: white;
  position: relative;
  transition-duration: 0.5s;
  transition-timing-function: swing;
  overflow: hidden;
  
  &.open{
    height: 300px;
  }
  
  ul{
    padding-top: 100px;
    padding-left: 35px;
    
    li{
      list-style: none;
      
      a{
        padding: 10px 0;
        display: inline-block;
        text-decoration: none;
        color: lighten(black, 30%);
      }
    }
  }
}

.navToggle{
  position: absolute;
  width: 60px;
  height: 60px;
  top: 20px;
  left: 20px;
  transition-duration: 0.5s;
  
  .icon{
    transition-duration: 0.25s;
    position: absolute;
    width: 30px;
    height: 2px;
    top: 30px;
    left: 15px;
    background-color: black;
    
    &:before, &:after{
      transition-duration: 0.25s;
      position: absolute;
      width: 30px;
      height: 2px;
      background-color: black;
      content: "";
    }
    
    &:before{
      top: -7px;
      left: 0;
    }
    
    &:after{
      top: 7px;
      left: 0;
    }
  }
  
  &:hover{
    cursor: pointer;
    
    .icon{
      &:before{
        top: -10px;
      }

      &:after{
        top: 10px;
      }
    }
  }
  
  &.open{
    transition-duration: 1s;
    transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    
    .icon{
      transition-duration: 0.5s;
      background-color: transparent;
      
      &:before{
        transition-duration: 0.5s;
        top: 0;
        transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
      }
      
      &:after{
        transition-duration: 0.5s;
        top: 0;
        transform: rotate(-45deg);
        -webkit-transform: rotate(-45deg);
      }
    }
  }
}
View Compiled
$(".navToggle").click (function(){
  $(this).toggleClass("open");
  $("nav").toggleClass("open");
});
Run Pen

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