JSFiddle - React, Tailwind, and code Playground

by nkovacs

HTML

<ul class="sidebar_menu">
    <li><a href="#" class="sidebar_item">Home</a></li>
    <li><a href="#" class="sidebar_item">About</a></li>
    <li><a href="#" class="sidebar_item">Services</a></li>
    <li><a href="#" class="sidebar_item">Projects</a></li>
    <li><a href="#" class="sidebar_item">Contact</a></li>
</ul>

CSS

.sidebar_menu {
    padding: 0;
    width:200px;
    background: #050306;
}

.sidebar_menu li {
    list-style-type: none;
    /*background: #b31130;*/
    position:relative;
    z-index: 1;
}

.sidebar_menu .sidebar_item {
    padding: 0.5em;
    position: relative;
    display:block;
    overflow-x:hidden;
    color:white;
    text-decoration: none;
}

.sidebar_menu .sidebar_item:before {
    background: #92132b;
    content: "";
    display: block;
    position: absolute;
    z-index:-2;
    top:0;
    left:-160%;
    width: 150%;
    height: 100%;
    
    transform:skewX(-45deg);
    -ms-transform:skewX(-45deg); /* IE 9 */
    -moz-transform:skewX(-45deg); /* Firefox */
    -webkit-transform:skewX(-45deg); /* Safari and Chrome */
    -o-transform:skewX(-45deg); /* Opera */
    
    transition: left 0.2s ease-in-out;
    -moz-transition: left 0.2s ease-in-out; /* Firefox 4 */
    -webkit-transition: left 0.2s ease-in-out; /* Safari and Chrome */
    -o-transition: left 0.2s ease-in-out; /* Opera */
}

.sidebar_menu .sidebar_item:after {
    background: #b31130;
    content: "";
    display: block;
    position: absolute;
    z-index:-1;
    top:0;
    left:-160%;
    width: 150%;
    height: 100%;
    
    transform:skewX(-45deg);
    -ms-transform:skewX(-45deg); /* IE 9 */
    -moz-transform:skewX(-45deg); /* Firefox */
    -webkit-transform:skewX(-45deg); /* Safari and Chrome */
    -o-transform:skewX(-45deg); /* Opera */
    
    transition: left 0.3s ease-in-out;
    -moz-transition: left 0.3s ease-in-out; /* Firefox 4 */
    -webkit-transition: left 0.3s ease-in-out; /* Safari and Chrome */
    -o-transition: left 0.3s ease-in-out; /* Opera */
}

.sidebar_menu .sidebar_item:hover:before {
    left:-10%;
}

.sidebar_menu .sidebar_item:hover:after {
    left:-70%;
}