JSFiddle - React, Tailwind, and code Playground

HTML

<div class="work">
<div class="work__item">
  <img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
  <div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
  <img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
  <div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
  <img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
  <div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
  <img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
  <div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
<div class="work__item">
  <img src="http://www.cocktail-book.ru/content/upload/article_image_2306.jpg" alt="">
  <div class="work__info">Lorem ipsum dolor sit amet.</div>
</div>
</div>

SCSS

.work {
  display: flex;
  flex-wrap:wrap;

  
  &__item {
    width: 25%;
    position: relative;
    overflow: hidden;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -ms-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    
    img {
      width:100%;
      display: block;
      -webkit-transition: 0.3s;
      -moz-transition: 0.3s;
      -ms-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s;
    }
    
    &:hover {
      padding-bottom: 50px;
      
      img {
        margin-top: -50px;
      }
      
      .work__info {
        bottom: 0;
      }
    }
  }
  
  &__info {
    position: absolute;
    left: 0;
    text-align: center;
    z-index: 3;
    bottom: -50px;
    display: flex;
    align-items: center;
    width: 100%;
    height: 50px;
    background: #ccc;
    -webkit-transition: 0.3s;
    -moz-transition: 0.3s;
    -ms-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
  }
}