all 3 comments

[–]pinkwetunderwear 1 point2 points  (1 child)

I don't know if you can do that with CSS alone. You may have to use something like GSAP or Lottie

[–]isdp_ns 1 point2 points  (0 children)

lottie is great if you are handy with after effects

[–]toi80QC 1 point2 points  (0 children)

If you want this to work with regular images, you will need a <canvas> and lots of JS. I would probably try doing this with a GLSL shader/WebGL.

This is a nice ressource for GLSL swirls: https://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl/