The other day I was marvelling over this amazing animation by Jurica Koletic that he made for Hot Type. It’s very much skeuomorphic and sorry, but I’m a total sucker for that! So I tried recreating this little effect on a grid where we show a reflection at the top of the page. It’s really just a small effect, anyway, I hope you enjoy it and maybe it sparks some new ideas 🙂
To do the reflection, we can use a clone that is mirrored using a negative scale value and then scroll that clone at the same time we scroll the page.
To create the shading, we overlay a pseudo element on the body, covering the reflection part:
body::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: calc(var(--rheight) + 1px);
pointer-events: none;
z-index: 2000;
background-image: linear-gradient(0deg, rgb(0 0 0 / 68%), rgb(15 10 23 / 62%));
box-shadow: 0px 0px 10vh rgba(0,0,0,0.8);
}
There’s a lot of cool things you can try when scrolling, like animating a filter (see demo 2) and translating in 3D.
This is how it demo 1 look like:
Hope you enjoy this! Thanks for having a look 👀