JSFiddle - React, Tailwind, and code Playground
HTML
<div class="wrap">
<div class="main"></div>
<div class="hover">
<div class="hover-wrap">
<div class="descr">Bobbi Starr</div>
</div>
</div>
</div>
CSS
.wrap {
position: relative;
overflow: hidden;
width: 250px;
height: 250px;
}
.wrap:hover > .hover {
-webkit-transform: rotate(45deg) translate3d(70.7106%, 0, 0);
-moz-transform: rotate(45deg) translate3d(70.7106%, 0, 0);
-ms-transform: rotate(45deg) translate3d(70.7106%, 0, 0);
-o-transform: rotate(45deg) translate3d(70.7106%, 0, 0);
transform: rotate(45deg) translate3d(70.7106%, 0, 0);
}
.wrap > .main {
background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Bobbi_Starr_2010.jpg/640px-Bobbi_Starr_2010.jpg);
background-size: cover;
width: 100%;
height: 100%;
}
.wrap > .hover {
width: 142%;
height: 142%;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
position: absolute;
overflow: hidden;
top: 29%;
left: 29%;
-webkit-transition: transform 300ms ease-in-out;
-moz-transition: transform 300ms ease-in-out;
-ms-transition: transform 300ms ease-in-out;
-o-transition: transform 300ms ease-in-out;
transition: transform 300ms ease-in-out;
-webkit-backface-visibility: hidden;
}
.wrap .hover-wrap {
background: rgba(255, 165, 0, .7);
background-size: cover;
width: 70.7106%;
height: 70.7106%;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
transform: rotate(-45deg);
position: relative;
top: 14.9%;
left: -34.9%;
}
.wrap .descr {
position: absolute;
bottom: 10%;
right: 10%;
color: #fff;
}