This was my final code, because my previous attempt didn’t quite emulate the V2 code:
gsap.to(".material-icons",{ scale:1, opacity:1, duration:1.4, stagger:0.5, ease:"elastic.out(5,0.25)" })
I have just increased the duration to match the original inside the onComplete function. This softens the overshoot scaling.
I presume your set statement replaces my CSS. I did test this, but the icons are positioned incorrectly. Using CSS, ensures that the icons centre correctly. Although, your version worked when I just set the opacity, but kept the scale & translate properties in the CSS.
I think gsap3 cuts down on the amount of code, but I think I prefer the gsap2 way of writing the easeParams, because it means that you can directly replace the values with variables. Adding them as string is a little restrictive because you would have to do:
ease:"elastic.out(” + overshoot + ”,” + period + ”)"
But, thanks for your help.