Checking out the source code on the page I see the cards are svg and are run by css transitions like this:
.svg-cards {
display: inline-block;
position: absolute;
width: 20vmin;
overflow: hidden;
min-width: 100px;
border-radius: 15px;
box-shadow: -30px -30px 40px 15px rgba(0, 0, 0, 0.9);
line-height: 0;
}
.svg-cards.rotation {
box-shadow: -1px 1px 6px rgba(0, 0, 0, 0.6);
-webkit-transition-duration: 0.6s;
-moz-transition-duration: 0.6s;
-ms-transition-duration: 0.6s;
-o-transition-duration: 0.6s;
transition-duration: 0.6s;
-webkit-transition-timing-function: cubic-bezier(0.01, 0.74, 0.28, 1.01);
-moz-transition-timing-function: cubic-bezier(0.01, 0.74, 0.28, 1.01);
-ms-transition-timing-function: cubic-bezier(0.01, 0.74, 0.28, 1.01);
-o-transition-timing-function: cubic-bezier(0.01, 0.74, 0.28, 1.01);
transition-timing-function: cubic-bezier(0.01, 0.74, 0.28, 1.01);
}
Create your cards, then apply the appropriate transitons you want, both “rotation” and “scale” to make them zoom in.
This isn’t technically a preloader but a section that is sized to fit the browser window using JavaScript on window load.