JSFiddle - React, Tailwind, and code Playground
HTML
<ul>
<li><a href="#"><span>Home</span></a></li>
<li><a href="#"><span>Work</span></a></li>
<li><a href="#"><span>Labs</span></a></li>
<li><a href="#"><span>Contact</span></a></li>
</ul>
CSS
ul {
overflow: hidden;
background: #000;
}
li {
float: left;
display: inline;
background: #333;
position: relative;
}
a {
display: block;
height: 30px;
overflow: hidden;
font: 12px sans-serif;
color: #fff;
padding: 0 15px;
text-decoration: none;
-webkit-transition: background-color 0.3s ease-out;
-moz-transition: background-color 0.3s ease-out;
-ms-transition: background-color 0.3s ease-out;
-o-transition: background-color 0.3s ease-out;
transition: background-color 0.3s ease-out;
}
a:hover {
background: #666;
}
li+li {
border-left: 1px solid white;
}
span {
position: relative;
top: 0;
line-height: 30px;
display: block;
-webkit-transition-duration: 0s;
-moz-transition-duration: 0s;
-ms-transition-duration: 0s;
-o-transition-duration: 0s;
transition-duration: 0s;
}
a:hover span {
top: -60px;
margin-top: 60px;
-webkit-transition: margin-top 0.3s ease-out, top 0s 0.15s ease-out;
-moz-transition: margin-top 0.3s ease-out, top 0s 0.15s ease-out;
-ms-transition: margin-top 0.3s ease-out, top 0s 0.15s ease-out;
-o-transition: margin-top 0.3s ease-out, top 0s 0.15s ease-out;
transition: margin-top 0.3s ease-out, top 0s 0.15s ease-out;
}