JSFiddle - React, Tailwind, and code Playground

HTML

<div class="image">
    <div class="trans">
        <a href="#">About</a>
    </div>
</div>

CSS

.trans a {
    color: #FFF;
    font-size: 30px;
    font-family: arial;
    font-weight 700;
    line-height:100px;
    height:100px;
    display: block;
    position: absolute;
    right:24px;
}
.trans {
    position: relative;
    top:20px;
    background-color:blue;
    width:80px;
    height:100px;
    border-top-right-radius:50px;
    border-bottom-right-radius:50px;
    opacity: .75;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    filter: alpha(opacity=75);
    
    -webkit-transition: width .5s ease, color .5s ease, background .5s ease;
    -moz-transition: width .5s ease, color .5s ease, background .5s ease;
    -o-transition: width .5s ease, color .5s ease, background .5s ease;
    transition: width .5s ease, color .5s ease, background .5s ease;
}
.trans:hover {
    width:120px;
    
    -webkit-transition: width .5s ease, color .5s ease, background .5s ease;
    -moz-transition: width .5s ease, color .5s ease, background .5s ease;
    -o-transition: width .5s ease, color .5s ease, background .5s ease;
    transition: width .5s ease, color .5s ease, background .5s ease;
}
.image {
    background:url(http://dummy-images.com/abstract/dummy-556x900-Circus.jpg) -100px -100px no-repeat;
    height: 200px;
}