
Parole che si fondono
Testo, Scroll, SVG
NuovaGratis
Nello stile minimal: i sette pezzi di un tangram, disegnati con una linea sottile, scivolano su curve, girano e atterrano in una figura vera (un gatto, una casa, una barca, il quadrato). Quando sono tutti giù si riempiono uno alla volta, il quadratino arancio per ultimo con un quarto di giro, e sotto compare il nome. Un clic passa alla figura dopo.
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 rearranging tangram</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>
<!-- seven thin pieces cut from one square: they glide, turn and land into a figure, fill in one at a time and the
figure gets its name; then they lift off again for the next one. A click or a tap moves on to the next figure. -->
<svg class="board" viewBox="-4 -7.45 8 7.95" role="img" aria-label="Tangram" data-board>
<line class="floor" x1="-4" y1="0" x2="4" y2="0" data-floor />
<g data-pieces></g>
</svg>
<p class="name" aria-live="polite"><span class="name__clip" data-name></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.
16 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 tangram che si ricompone» da Animorio e adattala al mio sitoIl tangram è un quadrato di quattro unità tagliato in sette pezzi: due triangoli grandi, uno medio, due piccoli, un quadratino e un parallelogramma. Ogni pezzo è un poligono SVG disegnato intorno al suo baricentro, così girarlo vuol dire solo cambiare l’angolo. Il viewBox è in unità del tangram e il pavimento è la riga y = 0: tutte le figure ci stanno appoggiate sopra, centrate in larghezza. Lo spessore delle linee si ricalcola a ogni ridimensionamento perché resti STROKE pixel su ogni schermo.
Ogni figura è un elenco: per ogni pezzo il centro (x, y) e la rotazione in gradi. Il quadrato e il gatto stanno sulla griglia dritta, la casa e la barca su quella in diagonale (le misure in multipli di radice di due): le soluzioni sono state cercate e controllate con un piccolo programma che prova a coprire la sagoma con i sette pezzi, quarto di quadretto per quarto di quadretto, senza buchi né sovrapposizioni. Il quadratino ha simmetria di 90 gradi e i triangoli sono gemelli: a ogni passaggio si sceglie l’angolo equivalente più vicino e, fra due gemelli, lo scambio che fa viaggiare meno.
Ogni pezzo è un oggetto con x, y, rotazione, scala, quanto è riempito e quanto è alzato; una timeline sola lo muove e a ogni fotogramma scrive l’attributo transform. La traiettoria è una curva di Bézier quadratica, col punto di controllo spostato di lato (verso l’alto quando si può) di ARC volte la distanza. Il tempo lungo la curva ha un’easing scritta a mano: power3.inOut più una piccola gobba sinusoidale nell’ultimo quarto, così il pezzo arriva un pelo oltre il suo posto e torna indietro. La rotazione usa back.inOut, che prima carica all’indietro e alla fine sfora un poco; la scala sale di LIFT al decollo e scende con back.out, che la porta un attimo sotto 1.
Ogni pezzo ha due poligoni uguali: la linea (con pathLength 1, così all’inizio si disegna da sola con stroke-dashoffset) e il pieno. Il pieno cresce dal baricentro con back.out e un contorno sottile color pagina, che lascia vedere le giunture fra i pezzi. Si riempie solo quando tutti e sette sono atterrati, nell’ordine del volo, e il quadratino arancio chiude con un quarto di giro e un elastico sulla scala. Al passaggio dopo il pieno si ritira verso il centro prima del decollo.
Il nome sta in una finestra con overflow nascosto, una lettera per span: le lettere salgono da sotto con l’asse wdth di Archivo a 125 e atterrano a 100 con expo.out, così la parola si stringe mentre arriva; uscendo si stringono fino a 62 e scappano in alto, dall’ultima alla prima. Il giro va da solo con un delayedCall di HOLD secondi. Un clic uccide la timeline in corso e ne costruisce una nuova partendo dai valori in cui si trovano i pezzi, quindi si può cliccare in qualunque momento senza scatti.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
NAMES | script.js | { square: 'Square', cat: 'Cat', house: 'House', boat: 'Boat' } | Le figure, nell’ordine in cui arrivano, e il nome scritto sotto ognuna. Le figure sono square, cat, house e boat: si possono togliere, rimettere in un altro ordine e rinominare. |
HOLD | script.js | 2.4 | Quanti secondi una figura finita resta ferma prima che i pezzi ripartano. |
MOVE | script.js | 1.15 | Quanti secondi impiega un pezzo a volare al suo posto nuovo. |
STAGGER | script.js | 0.07 | I secondi fra la partenza di un pezzo e quella del successivo: 0 li fa partire tutti insieme. |
ARC | script.js | 0.22 | Quanto sono curve le traiettorie: 0 è una linea dritta, 0.5 un arco alto. |
LIFT | script.js | 0.07 | Quanto cresce un pezzo mentre è sollevato, come se fosse preso in mano. |
STROKE | script.js | 1.25 | Lo spessore delle linee, in pixel, uguale su ogni schermo. |
SPEED | script.js | 1 | La velocità di tutta l’animazione: 2 è il doppio, 0.5 la metà. |
LOOP | script.js | true | Se le figure si seguono da sole; con false si passa alla figura dopo solo con un clic. |
Dove serve un gesto calmo e intelligente: la pagina di uno studio di design o di architettura, di una scuola, di un negozio di giochi di legno o di un marchio che vive di forme semplici; un caricamento elegante, una pagina 404, la sezione che spiega come un prodotto si adatta a usi diversi (gli stessi pezzi, figure diverse).
La stessa animazione con le misure adattate: le figure prendono quasi tutta la larghezza, le linee restano sottili in pixel, il nome si rimpicciolisce. Un tocco passa alla figura dopo; il sollevamento sotto il puntatore c’è solo col mouse.
Niente vola e niente gira: il quadrato compare già pieno in dissolvenza, e a ogni cambio la figura sfuma via e quella nuova sfuma dentro, già composta e riempita, con il nome che cambia in dissolvenza.
GSAP 3.15.0, Archivo (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 6,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.