
Lettere in piedi con l'ombra lunga
Testo, Scroll, 3D
NuovaGratis
Un breve paragrafo a bandiera, nello stile minimal, con l’ultima parola rimasta da sola sull’ultima riga: la riga sopra si stringe di un soffio sull’asse della larghezza del carattere, la parola scivola sotto il suo posto, risale a fine riga e il suo punto cade sul bordo della colonna, nel colore d’accento.
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 lone word that climbs back</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/roboto-serif@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage>
<!-- the column: two hairlines mark its edges; the script sets the paragraph inside, ragged right, with the last
word left alone on its own line. Then the line above tightens on the width axis and the word climbs back -->
<div class="measure" data-measure>
<i class="guide" data-guide aria-hidden="true"></i>
<i class="guide guide--right" data-guide aria-hidden="true"></i>
<p class="para" data-para></p>
<i class="span" data-span aria-hidden="true"></i>
<p class="foot" data-foot>
<span class="foot__brand">Quoin Press</span>
<span class="foot__axis" aria-hidden="true">wdth <b data-wd>100</b></span>
</p>
</div>
</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 sola che risale» da Animorio e adattala al mio sitoRoboto Serif ha l’asse della larghezza da 50 a 150 e il peso da 100 a 900: il file «wdth» di Fontsource li tiene tutti e due ed è leggero. Ogni parola è uno span inline-block con la sua variabile CSS --wd, e il CSS la porta nell’asse con font-variation-settings: 'wdth' var(--wd), 'wght' var(--wg). GSAP anima direttamente la variabile ('--wd' in un tween), parola per parola.
La bandiera non è lasciata al browser: ogni riga del paragrafo è una voce di LINES, una riga flex che non va a capo, con lo spazio fra le parole misurato una volta («n n» meno «nn»). Così l’ultima parola resta sola sempre, a ogni larghezza di finestra, e al telefono il paragrafo è lo stesso, solo più piccolo.
La larghezza della colonna si ricava dalle righe: la riga più lunga ne occupa il 95,5% e la penultima con la parola sola, a larghezza normale, la supera del 3,5%. Poi il carattere si ingrandisce finché la colonna sta nella finestra (al massimo 40 px, 30 al telefono) e tutto si misura di nuovo alla grandezza vera.
Una ricerca binaria sull’asse wdth (sedici passi, misurando le righe vere con getBoundingClientRect) trova il valore che porta la penultima riga più la parola sola esattamente fino al bordo. Al bordo deve arrivare l’inchiostro del punto, non la sua scatola: il margine destro del punto si legge su un canvas nello stesso carattere (measureText, width meno actualBoundingBoxRight) e si lascia fuori.
Una timeline GSAP sola, che ricomincia: le parole entrano con una molla smorzata scritta come funzione di easing (BOUNCE), la riga sopra si stringe con uno stagger, la parola sola scivola con power3.inOut e salta con power2.out e power2.in, poi l’overshoot di un pixel e il ritorno; il punto ha i suoi tween di salto, colore e schiacciamento, e il filo destro un colpetto di un pixel. Le altezze dei fili e la nota sotto si accorciano di una riga con una molla morbida.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
LINES | script.js | ['Set the measure, mind the rag,', 'give each line the same quiet', 'colour, and when the text', 'runs short, never leave a word'] | Il paragrafo, riga per riga, a bandiera. La riga più lunga decide la colonna; l’ultima riga è quella dove risale la parola sola. |
LAST | script.js | 'alone.' | La parola rimasta da sola sull’ultima riga: risale alla riga sopra e il suo ultimo carattere cade nel colore d’accento. |
WEIGHT | script.js | 380 | Il peso del paragrafo, da 100 (un capello) a 900 (nerissimo). |
SQUEEZE | script.js | 62 | La larghezza da cui le parole partono e a cui tornano, sull’asse wdth: 50 è la più stretta del carattere, 100 la normale. |
BOUNCE | script.js | 0.35 | Quanto le parole rimbalzano quando si posano: 0 si fermano secche, 1 rimbalzano molto. |
HOLD | script.js | 2.2 | I secondi in cui il paragrafo riparato resta fermo prima di andarsene e ricominciare. |
SPEED | script.js | 1 | La velocità di tutto: 2 è il doppio, 0.5 la metà. |
LOOP | script.js | true | Se il paragrafo se ne va e si ricompone da capo. |
--accent | style.css | #e5432a | Il colore del punto finale, quando la parola è tornata al suo posto. |
Per una pagina dove la scrittura e la tipografia contano: il manifesto di uno studio grafico o di una casa editrice, l’introduzione di un blog personale o di una rivista, la pagina «chi siamo» di una fonderia di caratteri. Funziona con un paragrafo breve, di quattro o cinque righe, che finisce con una parola che vale la pena di guardare.
La stessa animazione con le stesse righe: la colonna è larga quanto lo schermo meno i margini e il carattere si rimisura per starci (sui 19 px su un telefono comune). La larghezza che ripara la riga si cerca di nuovo alla grandezza vera; se la finestra cambia larghezza il paragrafo si ricompone da capo, se cambia solo l’altezza (la barra dell’indirizzo) va avanti.
Niente si muove né si allarga: i fili e il paragrafo compaiono in dissolvenza già alla larghezza normale, con la parola sola sull’ultima riga. Poi le due ultime righe svaniscono e ricompaiono già riparate, con la parola in fondo alla riga sopra e il punto rosso; alla fine tutto svanisce e ricomincia.
GSAP 3.15.0, Roboto Serif (font variabile, assi wght e wdth) 5.3.0.
Compressi con gzip, i tre file della demo pesano 7,2 KB; le librerie: GSAP 28 KB.
Provata il 15 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.