
Il logo sotto la palla da demolizione
Intro, Fisica, SVG, Testo
NuovaGratis
L’intro di un logo che arriva come un regalo: il pacco cade e rimbalza, il fiocco si scioglie e il nastro vola via con la fisica, la carta si strappa a zig zag e si apre ai lati, il coperchio salta via girando e il logo spunta su una molla a fisarmonica fra strisce di carta velina. Nel Playground ci metti il tuo nome o carichi il tuo logo.
Una cartella che funziona da sola: index.html, style.css, script.js e le librerie da CDN. Nelle schede React e Vue la stessa demo è già un componente, che spegne le sue animazioni quando esce dalla pagina.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>The gift-box logo</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/baloo-2@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="scena">
<!-- the stage: the script measures it, wraps the gift, drops it, unties it and lets the logo spring out -->
<svg class="palco" data-stage role="img" aria-label="Boxbloom" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- the room: lighter in the middle -->
<radialGradient id="room" cx="0.5" cy="0.42" r="0.75">
<stop offset="0" class="stanza-luce" />
<stop offset="1" class="stanza" />
</radialGradient>
<!-- the wrapping paper: wide stripes and a thin pale line, at a slant -->
<pattern id="wrap" patternUnits="userSpaceOnUse" width="40" height="40" patternTransform="rotate(35)" data-wrap>
<rect class="carta" width="40" height="40" data-wrap-base />
<rect class="carta-riga" width="17" height="40" data-wrap-band />
<rect class="carta-filo" x="26" width="3" height="40" data-wrap-line />
</pattern>
<!-- the soft shadow on the floor -->
<radialGradient id="shade">
<stop offset="0" class="ombra" stop-opacity="0.32" />
<stop offset="1" class="ombra" stop-opacity="0" />
</radialGradient>
<!-- each half of the paper only shows its own side of the tear -->
<clipPath id="clip-left" clipPathUnits="userSpaceOnUse"><path data-clip-left /></clipPath>
<clipPath id="clip-right" clipPathUnits="userSpaceOnUse"><path data-clip-right /></clipPath>
</defs>
<rect fill="url(#room)" data-room />
<rect class="pavimento" data-floor />
<ellipse fill="url(#shade)" data-shadow />
<!-- things lying on the floor behind the box -->
<g data-back></g>
<!-- the gift: the box, the logo inside it, the lid, the paper -->
<g data-gift>
<g data-inside></g>
<g data-pop>
<g data-spring></g>
<g data-logo-holder><g data-logo></g></g>
</g>
<g data-body></g>
<g data-lid></g>
</g>
<!-- the wrapping paper: two halves that tear apart, swing open and fall flat on the floor -->
<g data-paper></g>
<!-- the ribbon and its bow, then the tissue paper over everything -->
<g data-ribbon></g>
<g data-fly></g>
</svg>
<p class="nota">Click or tap to see it again</p>
</main>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
<script src="script.js"></script>
</body>
</html>Cambia valori, colori e testi con le manopole e guarda l’animazione rispondere dal vivo. Oppure scrivi tu nel codice. Poi scarica la cartella con le tue modifiche.
36 valori da cambiare
Col connettore di Animorio, Claude Code la prende da qui con tutta la sua guida e la adatta al tuo progetto. Incolla questa richiesta:
Prendi «Il logo nel pacco regalo» da Animorio e adattala al mio sitoIl palco è un SVG con il viewBox grande quanto la finestra, così un’unità è un pixel. Tutto si conta in larghezze della scatola: il coperchio è largo 1,1 volte, la carta copre coperchio e scatola, il nastro è un decimo. Le lettere si misurano su una canvas con lo stesso carattere (measureText, actualBoundingBoxAscent per l’altezza vera) e la loro grandezza si sceglie perché il logo, la molla e la scatola ci stiano uno sopra l’altro con un po’ d’aria in cima; su uno schermo alto la scatola è più larga.
Il nastro è una catena di 36 punti con l’integrazione di Verlet: ogni passo i punti avanzano con la loro velocità, la gravità li tira giù e diciotto giri di vincoli rimettono ogni tratto alla sua lunghezza (più un vincolo morbido fra un punto e il secondo dopo, perché un nastro non si piega su se stesso). I punti ancora appoggiati al pacco possono solo salire; il capo è tirato da una mano invisibile lungo un arco sempre più veloce e poi lasciato; il pavimento ha l’attrito e la scatola è un rettangolo da cui i punti vengono spinti fuori. La simulazione gira tutta in build, a 240 passi al secondo, e salva un fotogramma ogni sessantesimo: la timeline anima solo il tempo e il disegno sceglie il fotogramma giusto, così si può fermare, riavvolgere e saltare.
La carta sono due metà, con un bordo a zig zag in comune lungo il centro. Ogni metà è un tracciato ridisegnato a ogni fotogramma: i punti dello zig zag si allontanano solo sopra il fronte dello strappo, che scende dall’alto in basso, e una linea chiara mostra la carta strappata. Le righe sono un pattern ritagliato da un clipPath con la stessa forma. Per aprirsi, ogni metà riceve una matrice che la comprime intorno al bordo esterno col coseno dell’angolo (con un filo di inclinazione per la prospettiva): quando il coseno diventa negativo si vede il rovescio. Per cadere piatta, la stessa matrice la schiaccia verso il pavimento.
La molla a fisarmonica sono dieci fasce, larghe e strette a turno, chiare e scure, fra il fondo della scatola e il tappo del logo: quando si allunga le pieghe si aprono, quando si schiaccia si stringono. La sua altezza va con elastic.out, lo spostamento della cima con una serie di oscillazioni che si smorzano, e le fasce lo seguono col quadrato dell’altezza, così la molla si piega. Il logo sta sul tappo, ruota con la cima e si allunga e schiaccia con un fotogramma chiave per ogni rimbalzo; le lettere salgono una dopo l’altra dal centro.
Tutta l’entrata è una timeline sola, con le etichette start, arrive, land, untie, ribbon, tear, open, knock, pop, happy, rest e timeScale per la velocità. Le strisce di velina sono tracciati a S: salgono con power2.out, cadono con sine.in, girano e si mostrano di taglio con scaleX avanti e indietro, e si posano sul bordo della scatola o sul pavimento schiacciandosi un poco. Se IMAGE ha un indirizzo, al posto delle lettere spunta l’immagine; nel Playground accanto al campo c’è il tasto per caricare un file, che entra nel codice come indirizzo data:.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
NAME | script.js | 'Boxbloom' | Il logo scritto: spunta dalla scatola sulla molla, con le lettere che rimbalzano dal centro. |
IMAGE | script.js | '' | Il logo come immagine: l’indirizzo di un file, oppure caricalo dal tuo computer. Se c’è, prende il posto della parola. |
BOUNCE | script.js | 1 | Quanto è elastico tutto: i rimbalzi del pacco, lo schiacciamento, il boing della molla e quanto oscilla (0 = un atterraggio secco). |
SPRING | script.js | 1 | Quanto è alta la molla col logo sopra: 0.6 corta, 1.5 alta (il logo si rimpicciolisce per starci). |
TISSUE | script.js | 40 | Quante strisce di carta velina escono dalla scatola (0 = nessuna). |
SPEED | script.js | 1 | La velocità di tutta l’animazione: 2 è il doppio, 0.5 la metà. |
REST | script.js | 4 | Quanti secondi il logo resta in mostra prima che arrivi un pacco nuovo. |
LOOP | script.js | true | Se il logo rientra e cade un pacco nuovo. Con false il logo resta fuori, dondolando sulla molla. |
Per presentare un logo come una sorpresa: l’apertura del sito di un negozio di regali, di una pasticceria, di un marchio per bambini o di una festa, un lancio, una pagina di auguri, un caricamento, un post per i social. Funziona con un marchio scritto e con un’immagine.
La stessa animazione con le misure adattate: su uno schermo alto la scatola è più larga e il logo è largo quasi quanto lo schermo; le metà della carta si aprono solo quanto basta a restare dentro lo schermo e il nastro rimbalza sui bordi e si posa davanti alla scatola. Un tocco la fa ripartire.
Niente si muove: il pacco incartato compare in dissolvenza, poi sfuma nella scatola aperta col logo in piedi sulla molla e le strisce di velina già posate. Se l’animazione ricomincia, tutto se ne va in dissolvenza.
GSAP 3.15.0, Baloo 2 (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 16 KB; le librerie: GSAP 28 KB.
Provata il 11 ottobre 2026
Puoi usarla nei tuoi progetti e in quelli dei tuoi clienti. Non puoi rivenderla né ridistribuirla così com’è. GSAP resta sotto la sua licenza Standard. Licenza completa.
Con l’email e la password del tuo account.
oppure con l’email
Hai fatto l’accesso come .
Con l’account scarichi lo zip di ogni animazione e di ogni pacchetto, gratis.