* {
box-sizing: border-box;
margin: 0;
}
body {
display: grid;
place-items: center;
min-height: 100vh;
background: #e8e8e8;
}
.image_box {
position: relative;
width: 60vmin;
height: 60vmin;
cursor: pointer;
}
.image {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0 100%, 0 50%, 0 0);
transition: .4s cubic-bezier(.34, 1.56, .64, 1);
}
.image img {
width: 120%;
height: 100%;
object-fit: cover;
transform: translateX(-10%);
transition: .4s ease;
}
.image_box:hover .image {
clip-path: polygon(75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%, 0 0);
transform: translateX(25%);
}