
Il titolo di palloncini
Fisica, Testo, Hover
NuovaGratis
Nello stile minimal: una parola grande su una riga sottile, con ogni lettera legata alla riga da un elastico invisibile. Il puntatore aggancia la lettera che tocca e la tira fuori dalla riga, le vicine la seguono un poco, la lettera si assottiglia e si arrossa e la riga si piega sotto di lei. Troppo lontano l'elastico cede: la lettera torna in riga con un colpo secco e un piccolo tremolio.
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>Tensile</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/anybody@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- one word on one hairline: every letter is tied to the line by an invisible rubber band -->
<main class="stage" data-stage>
<svg class="lines" data-lines aria-hidden="true">
<path class="line" data-line d="" />
</svg>
<h1 class="word" data-word aria-label="Tensile"></h1>
<p class="hint" data-hint>Catch a letter and pull it off the line.</p>
<p class="read" data-readout aria-hidden="true"><span class="read__label">Tension</span> <span class="read__win"><b class="read__value" data-read>slack</b></span></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.
19 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 «La parola sulla riga elastica» da Animorio e adattala al mio sitoOgni lettera è una scatola con la sua larghezza a riposo, misurata una volta e poi fissata in pixel, e dentro un secondo elemento con la lettera vera. Lo script muove e deforma solo quello dentro: così quando una lettera si stringe o si allarga sugli assi del carattere variabile (font-stretch e font-weight, guidati da due variabili CSS) la parola non si ricompone e le vicine non si spostano. La scatola è un flex centrato, quindi la lettera che si allarga esce dai due lati in modo uguale.
A ogni fotogramma si cerca la lettera sotto il puntatore, dentro un ovale alto come la lettera intorno al suo punto di riposo: quella è la lettera agganciata, e una nuova presa lascia andare la vecchia. Il bersaglio della lettera agganciata è la distanza dal puntatore moltiplicata per PULL, un po' meno quando la distanza cresce (l'elastico si indurisce); le vicine ricevono lo stesso tiro moltiplicato per NEIGHBOURS una volta per ogni lettera di distanza. Quando il puntatore va oltre REACH altezze di lettera dal punto di riposo, l'aggancio si rompe.
Ogni lettera ha posizione, inclinazione e allungamento, mossi da molle con frequenza e smorzamento, a passi fissi di un duecentoquarantesimo di secondo dentro gsap.ticker. Mentre è tirata usa una molla morbida quasi critica che insegue la mano; lasciata, una molla dura (SNAP, in hertz) poco smorzata (TREMBLE), che è il colpo secco. Sotto la riga la lettera trova un pavimento nove volte più duro dell'elastico: non affonda, batte. Nell'attimo del colpo l'allungamento riceve una spinta all'indietro, quindi la lettera si schiaccia larga e pesante e torna, e l'inclinazione riceve un calcio che fa il tremolio.
La riga è un path SVG ridisegnato a ogni fotogramma: due capi fermi e un punto sotto ogni lettera, uniti da una curva liscia (Catmull-Rom trasformata in curve di Bezier). Ogni punto è una molla leggera e poco smorzata che segue una parte (LINE) dello spostamento della sua lettera, così la riga si alza sotto la lettera tirata e, quando la lettera batte, prende il colpo e vibra come una corda. Il colore e lo spessore della riga e il colore della lettera vengono da color-mix con una variabile di tensione, quindi le tinte restano in :root.
L'entrata è una timeline GSAP: la riga si disegna con expo.out, poi ogni lettera, tenuta in alto e già allungata, viene lasciata con un ritardo sfalsato e la stessa fisica la fa battere in riga. La scritta della tensione cambia parola scorrendo in una finestrella (back.out per «snap», con una scossa di pochi pixel). Dopo IDLE secondi senza puntatore una timeline muove una mano invisibile: tira piano una lettera, la tiene un respiro, dà l'ultimo strappo e l'elastico cede; un puntatore vero la manda via.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
WORD | script.js | 'Tensile' | La parola sulla riga (fino a 16 lettere; meglio corta, così resta grande). |
PULL | script.js | 0.62 | Quanto la lettera agganciata segue il puntatore: 0.3 è un elastico duro, 0.9 uno lento. |
REACH | script.js | 1.25 | Quanto lontano può andare il puntatore, in altezze di lettera, prima che l'elastico ceda. |
NEIGHBOURS | script.js | 0.36 | Quanto le lettere vicine vengono trascinate con quella agganciata (0 = per niente). |
SNAP | script.js | 6.5 | Quanto forte la lettera torna in riga, in hertz: 3 è un elastico morbido, 12 una molla d'acciaio. |
TREMBLE | script.js | 0.13 | Quanto dura il tremolio dopo il colpo: 0.05 un brivido lungo, 0.6 quasi niente. |
LINE | script.js | 0.34 | Quanto la riga si piega con le lettere (0 = resta dritta e cambia solo colore). |
THIN | script.js | 1 | Quanto una lettera tirata si assottiglia sugli assi di larghezza e peso del carattere. |
IDLE | script.js | 2.2 | Dopo quanti secondi senza puntatore la mano invisibile pizzica una lettera (0 = mai). |
--taut | style.css | #e0462a | Il colore della tensione, sulla riga e sulla lettera tirata. |
--weight | style.css | 640 | Il peso del carattere della parola, da 100 a 900. |
--width | style.css | 112 | La larghezza del carattere della parola, in percentuale (da 60 a 140). |
Per un titolo che si lascia toccare: l'apertura di un portfolio o di uno studio, il nome di un marchio in una landing page, la pagina 404, la copertina di un progetto di tipografia. Funziona con qualunque parola corta.
La stessa fisica con le misure adattate: la parola occupa quasi tutta la larghezza e la distanza a cui l'elastico cede si misura in altezze di lettera, quindi vale anche in piccolo. Si aggancia una lettera col dito e la si trascina; alzando il dito l'elastico cede. La scritta d'aiuto cambia in «Drag a letter off the line.» e, se non c'è posto accanto alla tensione, si nasconde.
Niente si muove: la riga e le lettere compaiono in dissolvenza e restano ferme. La lettera agganciata e la riga cambiano solo colore, sfumando verso il rosso quanto più si tira, e tornano grigie in dissolvenza quando l'elastico cede.
GSAP 3.15.0, Anybody (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 8,3 KB; le librerie: GSAP 28 KB.
Provata il 14 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.