
Parole che si fondono
Testo, Scroll, SVG
NuovaGratis
Un caricamento nello stile minimal: una linea sottile disegna una U dentro un quadrato, poi ogni curva si apre in una U più piccola, piega dopo piega, finché la linea passa per tutte le 1.024 caselle senza incrociarsi mai (la curva di Hilbert). Sotto, il numero delle caselle si stringe man mano che si allunga; alla fine una seconda linea blu elettrico corre dentro tutta la curva e conta i file impacchettati.
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 line that fills the square</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/archivo@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage aria-label="Tessel is packing your files. Click to start again.">
<!-- one line folds itself into the square, corner by corner, then a second line runs through it in the accent -->
<svg class="scene" data-scene aria-hidden="true">
<path class="frame" data-frame d="" pathLength="1" />
<path class="marks" data-marks d="" />
<path class="line" data-line d="" />
<path class="pack" data-pack d="" pathLength="1" />
</svg>
<div class="caption" data-caption>
<span class="caption__name" data-name>Tessel</span>
<span class="caption__count">
<span class="caption__num" data-num>4</span>
<span class="caption__label" data-label>cells</span>
</span>
</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.
15 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 curva che riempie il quadrato» da Animorio e adattala al mio sitoLa curva di Hilbert si calcola una volta sola all’ordine più fine con la funzione classica d2xy, che trasforma l’indice di un punto nella sua casella. Gli ordini più grossi sono la stessa lista presa un punto ogni 4, 16, 64…, con le coordinate divise per 2, 4, 8: la curva di Hilbert visita le sottocaselle di ogni casella una dopo l’altra, quindi i gruppi di quattro punti consecutivi hanno sempre lo stesso genitore.
Per passare dall’ordine k al k+1 ogni punto nuovo parte dal centro della casella del suo genitore (il punto j>>2 dell’ordine prima) e scivola al centro della sua. Il progresso di ogni punto è sfasato lungo la linea (WAVE), così la piega corre dall’inizio alla fine, e passa per back.out(SPRING): ogni angolo va un capello oltre e torna.
Il contatore è Archivo variabile: GSAP anima il numero con snap agli interi, il peso e una variabile --w legata a font-stretch. La larghezza scende da 125 a 76 man mano che le cifre passano da una a quattro, quindi il numero non spinge mai la parola accanto.
La linea blu è una copia del tracciato finale con pathLength=1: la sua stroke-dasharray è «0 coda testa−coda 2», così basta animare due numeri per farla entrare dall’inizio e uscire dalla coda. Il conteggio dei file la segue con la stessa durata.
Tutto è una timeline sola in pausa che a onComplete rimette lo stato a zero e riparte: il video dell’anteprima vede il giro intero. Il tracciato si ricostruisce solo quando cambiano l’ordine, la piega o la misura, e al resize si ricalcola il quadrato in pixel anche a metà piega. Con il movimento ridotto il quadrato pieno, blu, con 1.024 packed, compare in dissolvenza e resta.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
NAME | script.js | 'Tessel' | Il nome dell’app, sotto il quadrato a sinistra. |
ORDER | script.js | 5 | Quante volte la linea si piega (da 3 a 6): 5 sono 1.024 caselle, 6 sono 4.096. |
DRAW | script.js | 1.1 | I secondi in cui si disegna la prima U. |
FOLD | script.js | 1.05 | I secondi di ogni piega. |
WAVE | script.js | 0.55 | Quanto la piega corre lungo la linea: 0 = tutti gli angoli insieme. |
SPRING | script.js | 1.4 | Quanto ogni angolo va oltre il suo posto prima di fermarsi: 0 = si ferma secco. |
PACK | script.js | 2.6 | I secondi in cui la linea blu percorre tutta la curva. |
HOLD | script.js | 1.6 | I secondi in cui il quadrato pieno resta fermo prima di ripiegarsi. |
Come caricamento di un’app che archivia, ordina o sincronizza file, di un servizio di backup o di un magazzino; come attesa durante un’importazione lunga; come illustrazione di una pagina che spiega come un sistema mette in ordine le cose senza lasciare buchi.
Le stesse animazioni con le misure adattate: il quadrato prende quasi tutta la larghezza, la linea resta di almeno un pixel anche con le caselle più piccole e il nome e il numero restano sotto, allineati ai bordi del quadrato.
Niente si muove: il quadrato pieno, con la curva blu e 1.024 packed sotto, compare in dissolvenza e resta.
GSAP 3.15.0, Archivo (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 5,6 KB; le librerie: GSAP 28 KB.
Provata il 19 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.