JSFiddle - React, Tailwind, and code Playground

by envira

HTML

<div class="Dropdown">
  <div class="Dropdown-profile">
    <img src="//s3-us-west-2.amazonaws.com/s.cdpn.io/33381/profile/profile-512_1.jpg" class="Photo" />
    <span class="Name">Michael Lee</span>
    <span class="MenuIcon">
      <span class="MenuIcon-line"></span>
      <span class="MenuIcon-line"></span>
      <span class="MenuIcon-line"></span>
    </span>
  </div>
  <nav class="Dropdown-nav">
    <ul class="Dropdown-group">
      <li>
        <a href="#" class="entypo-newspaper NavLink">Posts</a>
        <a href="#" class="entypo-plus OptionLink"></a>
      </li>
      <li><a href="#" class="entypo-archive NavLink">Categories</a>
      <a href="#" class="entypo-plus OptionLink"></a></li>
      <li><a href="#" class="entypo-docs NavLink">Pages</a><a href="#" class="entypo-plus OptionLink"></a></li>
      <li><a href="#" class="entypo-users NavLink">Users</a><a href="#" class="entypo-plus OptionLink"></a></li>
    </ul>
    <ul class="Dropdown-group">
      <li>
        <a href="#" class="entypo-logout NavLink">Logout</a>
      </li>
    </ul>
  </nav>
</div>

CSS

@import url(http://fonts.googleapis.com/css?family=Lato:300,400);
@import url(http://weloveiconfonts.com/api/?family=entypo);
[class*="entypo-"]:before {
  font-family: 'entypo', sans-serif;
  margin: 0 8px 0 0;
  width: 24px;
  text-align: center;
  display: inline-block;
  border: none;
}

.Dropdown-profile, .Dropdown-nav li .NavLink {
  background: #fff;
  display: block;
  height: 24px;
  padding: 8px;
}

body {
  background: #fff;
  font-family: 'Lato';
  font-weight: 400;
}

a {
  text-decoration: none;
  color: #49bcbe;
}

.Dropdown {
  border: 2px solid #ddd;
  cursor: pointer;
  overflow: hidden;
  width: 200px;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}
.Dropdown-profile {
  position: relative;
}
.Dropdown-profile .Photo {
  background: #ddd;
  display: inline-block;
  vertical-align: middle;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
  width: 24px;
  height: 24px;
}
.Dropdown-profile .Name {
  display: inline-block;
  line-height: 24px;
  padding: 0 0 0 5px;
  vertical-align: middle;
  width: 120px;
}
.Dropdown-nav {
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.2s cubic-bezier(0.19, 1, 0.22, 1);
  -moz-transition: height 0.2s cubic-bezier(0.19, 1, 0.22, 1);
  transition: height 0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
.Dropdown-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.Dropdown-nav li {
  position: relative;
}
.Dropdown-nav li a {
  color: #ccc;
  -webkit-transition: color 0.3s ease;
  -moz-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.Dropdown-nav li a:hover {
  color: #49bcbe;
}
.Dropdown-nav li .OptionLink {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: 22px;
  font-size: 18px;
  margin: auto;
  z-index: 5;
}
.Dropdown-nav li .NavLink {
  line-height: 24px;
}
.Dropdown.is-expanded nav {
  height:...

JavaScript

$(".Dropdown").on("click", function(){
  $(this).toggleClass('is-expanded');
});