JSFiddle - React, Tailwind, and code Playground
HTML
<figure class="imgef">
<img src="https://img.24smi.net/200_200/5/8/580ee1defd4d1ddd1500122732057bac.jpeg" class="img">
</figure>
CSS
.img{width:330px;}
.imgef {margin: 0; padding: 0; background: transparent; overflow: hidden; position: relative;}
.imgef::before {position: absolute; top: 0; left: -75%; z-index: 2; display: block; content: ''; width: 50%; height: 100%; background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%); background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%); -webkit-transform: skewX(-25deg); transform: skewX(-25deg);}
.imgef:hover::before {-webkit-animation: shine 1.5s; animation: shine 1.5s;}
@keyframes shine {100% {left: 125%;}}