JSFiddle - React, Tailwind, and code Playground
by luka kupunia
HTML
<div class="box">
<div class="img">
<div class="inner-img" style="background: url(https://www.orangehotelrome.com/files-sbbasic/sr_orangehotelrome_com/orange_hotel_-_random_pic4.jpg) no-repeat; background-size: cover; background-position: center;"></div>
</div>
</div>
CSS
body {
margin: 0px;
}
* {
box-sizing: border-box;
}
div.box {
width: 300px;
position: relative;
margin: 20px;
}
div.img {
width: 100%;
padding-top: 100%;
position: relative;
overflow: hidden;
transform: rotate(0deg) translateY(0px);
transform-origin: bottom right;
animation: a 1.5s ease;
}
div.inner-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
transform: scale(1.2);
opacity: 0;
animation: b 1.5s cubic-bezier(0.63, 0.05, 0.25, 1) forwards;
}
@keyframes a {
from { transform: rotate(-20deg) translateY(100px); }
to { transform: rotate(0deg) translateY(0px); }
}
@keyframes b {
100% { transform: scale(1); opacity: 1; }
}