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;
}