The items are just translated upwards into position.
I’m not going to copy and paste their code as that’s copyright but you can see all the rules if you grab the stylesheet and search for product-item.
Basically the elements are translated upwards but with a different transition-delay to fill the gap left by the image being scaled smaller. It’s a lla bit magic numberish but is ok for effects like that.
I haven’t look how the gray circle is done but I would do it using an :after element and scale it form zero to the size required while translating it down the page. Then transition from white to gray on the way.
I have to run now but I’ll be back later if you are still not sure. Try and get a few demos going that we can look at and tweak for you