JSFiddle - React, Tailwind, and code Playground

HTML

<a href="#">
  <div id="ipad-width1" class="grid12-4 banner strov-3-banners shop-by-goal banner-box homepage-popular-categories ">
    <p>SHOP BY GOAL</p>
    <p class="shop-now-button">Shop Now</p>
  </div>
</a>
<a href="#">
  <div class="grid12-4 banner strov-3-banners trending banner-box homepage-popular-categories ">
    <p>TRENDING</p>
    <p class="shop-now-button">Shop Now</p>
  </div>
</a>
<a href="#">
  <div id="ipad-width3" class="grid12-4 banner strov-3-banners new-arrivals banner-box homepage-popular-categories ">
    <p>NEW ARRIVALS</p>
<p class="shop-now-button">Shop Now</p>
  </div>
</a>

CSS

.banner-box{
	width:313px;
	height:313px;
	
}

/*banner overlay*/


div.homepage-popular-categories {
	position: relative;
	display: inline-block;
}

div.homepage-popular-categories:hover p {
    background: rgba(0,0,0,0.5);
}

div.homepage-popular-categories p:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}

div.homepage-popular-categories p {
	position: absolute;
    background: rgba(0,0,0,0);
	top: 0;
    bottom: 0;
    margin: 0;
    width: 100%;
	color: #eeeeec;
    text-align: center;
    font-family: sans-serif;
    font-size: 1.5em;
    font-weight: bold;
	transition: 0.5s;
    opacity: 1;
}




div.homepage-popular-categories:hover .shop-now-button {
	visibility:visible;
  background: transparent;
	
	
}
div.homepage-popular-categories .shop-now-button {
    border-radius: 25px;
    border: 3px solid #fff;
    left: 0;
    right: 0;
    top: 28%;
    bottom: 0;
    max-height: 40px;
    margin: auto;
	padding-top:20px;
    box-sizing: border-box;
    max-width: 125px;
	font-size:1em;
	padding-top:5px;
	background: rgba(0,0,0,0);
	visibility:hidden;
}

/*end banner overlay*/