JSFiddle - React, Tailwind, and code Playground
HTML
<div id='menu'>
<div id='menuitems'>
<div class="item" onclick="loadPage('/')">
<span class="menuIcon"><img src='http://gertkommer.byethost4.com/img/layout/icons/home.png'/></span>
</div>
<div class="item" onclick="loadPage('/pages/settings/')">
<span class="menuIcon"><img src='http://gertkommer.byethost4.com/img/layout/icons/settings.png' /></span>
</div>
<div class="item" onclick="loadPage('/pages/php/')">
<span class='TextMenuItem'>< / ></span>
</div>
</div>
<div id="menuText">
<div class="itemtext" onclick="loadPage('/pages/home/')">Home</div>
<div class="itemtext" onclick="loadPage('/pages/settings/')">Settings</div>
<div class="itemtext" onclick="loadPage('/pages/php/')">Projects</div>
</div>
</div>
CSS
#menu {
display: inline-block;
width: 50px;
background-color: #34282C;
height: 75%;
margin-top: 5px;
margin-right: 5px;
margin-bottom: 5px;
box-shadow: -2px 2px 2px 0 #4F5F4F;
position:relative;
z-index:1;
}
#menuitems {
width: 100%;
width: 55px;
}
#menu:hover #menuText{
display:inline-block;
}
#menuitems .item{
height: 50px;
width: 55px;
}
.item:hover{
background-color: #FF3E3E;
cursor: pointer;
}
#menuText .itemtext{
cursor: pointer;
}
#menuitems .item img {
margin-left: auto;
margin-right: auto;
display: block;
}
#menuitems .item .TextMenuItem {
text-align: center;
display: inline-block;
font-size: 14px;
color: #FFFFFF;
font-weight: bold;
width:32px;
height:32px;
padding:10px 9px;
padding-top:15px;
}
.menuIcon{
display: inline-block;
padding: 10px 9px;
width: 32px;
height: 32px;
}
#menuText{
position: absolute;
top: 0;
height: 75%;
left:50px;
display:none;
}
.itemtext {
text-align: left;
color: #FFFFFF;
font-weight: bold;
position:relative;
width:200px;
background-color: #34282C;
height: 25px;
padding: 10px;
padding-top:15px;
font-size:14px;
}