JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<div id="mainicons">
<a href="/"><i class="fa fa-home"></i><span>Home</span></a>
<a href="/ask"><i class="fa fa-envelope"></i><span>Ask</span></a>
<a href="/submit"><i class="fa fa-pencil "></i><span>Request</span></a>
<a href="/archive"><i class="fa fa-clock-o"></i><span>Archive</span></a>
</div>
CSS
#mainicons {
position: fixed;
top: 250px;
left: 0px;
text-align: center;
display: flex;
flex-direction: column;
}
#mainicons>a {
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
#mainicons i {
opacity: 1;
height: 40px;
width: 50px;
padding: 10px;
color: white;
background: black;
text-align: center;
font-size: 15px;
line-height: 40px;
transition: all .5s ease;
}
#mainicons i:hover {
border: 1.5px solid black;
color: black;
background: white;
}
#mainicons span {
color: black;
background: white;
width: 70px;
font-size: 15px;
transition: all .5s ease;
position: absolute;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
left: -100px;
opacity: 0;
}
#mainicons a:hover>span {
opacity: 1;
left: 70px;
transition: .5s;
border: 1px solid black;
}