JSFiddle - React, Tailwind, and code Playground

by TheFCN

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/hover.css/2.0.2/css/hover-min.css">
<div class="team hvr-grow">
  <div class="team-photo">
    <img src="http://www.thewhitegoddess.co.uk/the_elements/the_planets/images/sun.jpg" alt="" class="scale-with-grid">
    <div class="mask"></div>
    <h5>Mercenary Princes of Phobos</h5>

    <p>I came to Phobos at the time of the bi-annual gladiatorial games. The city was literally crawling with people from all over the Solar Ocean, even a few Plutonian mage-knights. </p>

  </div>
  <!-- end team photo -->

</div>
<!-- end team column -->
<div class="team hvr-grow">
  <div class="team-photo">
    <img src="http://www.thewhitegoddess.co.uk/the_elements/the_planets/images/sun.jpg" alt="" class="scale-with-grid">
    <div class="mask"></div>
    <h5>Mercenary Princes of Phobos</h5>

    <p>I came to Phobos at the time of the bi-annual gladiatorial games. The city was literally crawling with people from all over the Solar Ocean, even a few Plutonian mage-knights. </p>

  </div>
  <!-- end team photo -->

</div>
<!-- end team column -->
<div class="team hvr-grow">
  <div class="team-photo">
    <img src="http://www.thewhitegoddess.co.uk/the_elements/the_planets/images/sun.jpg" alt="" class="scale-with-grid">
    <div class="mask"></div>
    <h5>Mercenary Princes of Phobos</h5>

    <p>I came to Phobos at the time of the bi-annual gladiatorial games. The city was literally crawling with people from all over the Solar Ocean, even a few Plutonian mage-knights. </p>

  </div>
  <!-- end team photo -->

</div>
<!-- end team column -->
<div class="team hvr-grow">
  <div class="team-photo">
    <img src="http://www.thewhitegoddess.co.uk/the_elements/the_planets/images/sun.jpg" alt="" class="scale-with-grid">
    <div class="mask"></div>
    <h5>Mercenary Princes of Phobos</h5>

    <p>I came to Phobos at the time of the bi-annual gladiatorial games. The city was literally crawling with people from all over the...

CSS

.team-photo {
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  text-align: center;
  -webkit-transition: all 300ms linear;
  -moz-transition: all 300ms linear;
  -o-transition: all 300ms linear;
  -ms-transition: all 300ms linear;
  transition: all 300ms linear;
}

.team-photo img {
  max-width: 50%;
  height: auto;
  display: block;
  -webkit-transition: all 300ms linear;
  -moz-transition: all 300ms linear;
  -o-transition: all 300ms linear;
  -ms-transition: all 300ms linear;
  transition: all 300ms linear;
}

.team-photo:hover img {
  max-width: 100%;
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
  transform: scale(1.1);
}

.team-photo .mask {
  position: absolute;
  background: rgba(0, 0, 0, .8);
  display: block;
  top: 0;
  left: 0;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  -webkit-transition: all 200ms linear;
  -moz-transition: all 200ms linear;
  -o-transition: all 200ms linear;
  -ms-transition: all 200ms linear;
  transition: all 200ms linear;
}

.team-photo:hover .mask {
  width: 100%;
  height: 100%;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
}

.team-photo h5 {
  position: absolute;
  top: 50px;
  z-index: 100;
  color: #fff;
  opacity: 0;
  text-align: center;
  width: 100%;
  -webkit-transition: all 200ms linear;
  -moz-transition: all 200ms linear;
  -o-transition: all 200ms linear;
  -ms-transition: all 200ms linear;
  transition: all 200ms linear;
}

.team-photo:hover h5 {
  top: 10px;
  opacity: 1;
  -webkit-transition-delay: 300ms;
  -moz-transition-delay: 300ms;
  -o-transition-delay: 300ms;
  -ms-transition-delay: 300ms;
  transition-delay: 300ms;
}

.team-photo p {
  position: absolute;
  top: 50px;
  z-index: 100;
  color: #fff;
  opacity: 0;
  text-align:...