
The loader that becomes a logo
Transitions, SVG, Text
NewFree
A small window flips through frames like a projector, then bursts to full screen while the title, squashed until it looks like a line, stands up to its full height.
A folder that runs on its own: index.html, style.css, script.js and the libraries from a CDN.
The code for this animation is part of lifetime access.
The preview stays open: watch it, slow it down, try it on your phone.
Lifetime accessThe frames are stacked in the middle, all with clip-path inset(0 0 100% 0). A single tween takes them to inset(0) with a stagger equal to the duration: when one has finished dropping, the next one starts. In the stagger's onComplete callback the one underneath is hidden, so only one image is ever lit.
Everything sits in a full-screen container cut with clip-path. The last frame animates width and height up to 120% of the screen (expo.inOut) and, 0.3 seconds later, the container's cut goes to inset(0) (circ.inOut). Two movements at once: the image grows inside a frame that is opening.
The title fills the width: the script measures it at 100px and scales it. It starts at scaleY 0.012, so it looks like a line, and goes to 1 in half a second with circ.inOut. The captions are anchored to the midline and move by calc(var(--apri) * var(--meta)): --meta is half the title in pixels, --apri goes from 0 to 1 together with the title.
At the end every frame goes full screen and they light up one at a time with visibility sets 0.12 seconds apart, under a dark veil that lowers the contrast. Then the last one stays, dimmed, behind the title.
| Name | File | Default | What it changes |
|---|---|---|---|
SCATTO | script.js | 0.3 | Seconds between one frame and the next in the small window. |
INGRANDIMENTO | script.js | 1.2 | How far the last frame grows past the screen when it bursts. |
LAMPO | script.js | 0.12 | Seconds per frame in the final burst. With 0 there is no burst. |
VELO | script.js | 0.5 | How much the photo under the title darkens, from 0 to 1. |
ALTEZZA_MAX | script.js | 0.62 | The title never exceeds this fraction of the screen height, even if the width would allow it. |
For the entrance of a site made of photographs: a reportage, an event, a collection. On the first visit only: the second time the title already in place is enough.
The small window shrinks, the title goes onto two lines and the captions get narrower; everything else is the same.
No projector and no burst: the final scene appears straight away, with the title in place and the photo dimmed.
GSAP 3.15.0, Mona Sans (font variabile) 5.3.0.
Weight: 21 KB of our own files.
Tested on 27 September 2026
Use it in your own projects and in your clients’ projects. Do not resell it or redistribute it as is. GSAP stays under its own Standard license. Full license.
With your account’s email and password.
You’re signed in as .
Your plan is free. When lifetime access arrives, it will switch on for this same account.