
Nastro che accelera con lo scorrimento
Scroll, Testo, Hover
Gratis
Titolo animato nello stile minimal: una parola grande di cera avorio su un bianco caldo, con il volume, il lucido e l’ombra morbida della cera vera. Una fiammella segue il puntatore o il dito: vicino a lei le lettere si scaldano, si ammorbidiscono e si afflosciano, e dal loro bordo di sotto colano gocce lente che si allungano, si staccano e si allargano in pozze sulla mensola. Lontano dalla fiamma la cera si rapprende e torna piano nella parola.
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>Ember</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/fraunces@5.3.0/full.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- a big word made of ivory wax on warm white: near the flame the letters soften, slump and drip slow drops that
pinch off and pool on the ledge below; away from the flame the wax sets again and keeps its drips -->
<main class="pagina" data-pagina>
<header class="testa">
<p class="marchio" data-entra>Ember</p>
<p class="stato" data-entra><span class="stato__nome">Wax</span> <span class="stato__valore" data-stato>set</span></p>
</header>
<h1 class="parola" data-parola>Ember</h1>
<svg class="scena" viewBox="0 0 1000 600" aria-hidden="true" data-scena>
<defs>
<!-- the wax: the drips melt into the letters (blur and alpha threshold), then a soft volume, a gloss that
follows the flame and a warm shadow on the paper -->
<filter id="cera" filterUnits="userSpaceOnUse" x="0" y="0" width="1000" height="600" color-interpolation-filters="sRGB">
<feGaussianBlur in="SourceGraphic" stdDeviation="2.2" result="sfocato" />
<feColorMatrix in="sfocato" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 22 -8" result="forma" />
<feGaussianBlur in="forma" stdDeviation="5" result="rilievo" />
<feDiffuseLighting in="rilievo" surfaceScale="3" diffuseConstant="1" lighting-color="#fff7ea" result="ombreggiato">
<feDistantLight azimuth="250" elevation="58" />
</feDiffuseLighting>
<feComposite in="forma" in2="ombreggiato" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0.035" result="volume" />
<feSpecularLighting in="rilievo" surfaceScale="5" specularConstant="0.9" specularExponent="20" lighting-color="#fff4de" result="lucido">
<fePointLight x="500" y="120" z="170" data-luce />
</feSpecularLighting>
<feComposite in="lucido" in2="forma" operator="in" result="lucidoDentro" />
<feComposite in="volume" in2="lucidoDentro" operator="arithmetic" k1="0" k2="1" k3="0.55" k4="0" result="cera" />
<feComposite in="cera" in2="forma" operator="in" result="ceraPulita" />
<feGaussianBlur in="forma" stdDeviation="9" result="ombraMolle" />
<feOffset in="ombraMolle" dx="0" dy="9" result="ombraGiu" />
<feFlood flood-color="#6e5334" flood-opacity="0.2" result="tinta" />
<feComposite in="tinta" in2="ombraGiu" operator="in" result="ombra" />
<feMerge>
<feMergeNode in="ombra" />
<feMergeNode in="ceraPulita" />
</feMerge>
</filter>
<linearGradient id="fiamma" x1="0" y1="1" x2="0" y2="0">
<stop offset="0" stop-color="#fff6dc" />
<stop offset="0.38" stop-color="#ffd27a" />
<stop offset="0.78" stop-color="#f29a3c" />
<stop offset="1" stop-color="#e2672a" />
</linearGradient>
<radialGradient id="alone">
<stop offset="0" stop-color="#ffb860" stop-opacity="0.42" />
<stop offset="0.45" stop-color="#ffb860" stop-opacity="0.12" />
<stop offset="1" stop-color="#ffb860" stop-opacity="0" />
</radialGradient>
</defs>
<path class="mensola" data-mensola d="M80 500 H920" />
<g filter="url(#cera)">
<g data-lettere></g>
<g data-colate></g>
</g>
<g class="fiamma" data-fiamma>
<circle r="120" fill="url(#alone)" data-alone />
<path fill="url(#fiamma)" data-lingua />
<path class="fiamma__cuore" data-cuore />
</g>
</svg>
<footer class="piede">
<p class="nota" data-entra data-nota>Bring the flame close to melt the wax</p>
<p class="nota nota--destra" data-entra>Hand-poured candles</p>
</footer>
</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.
23 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 di cera che si scioglie» da Animorio e adattala al mio sitoLa parola si scrive in un canvas grande quanto il disegno (1000 per 600 unità), una lettera alla volta, alla misura che la fa larga 800. Per ogni colonna si cerca il punto più basso dove c’è cera spessa almeno 10 unità: lì può nascere una colatura. Le lettere SVG si mettono negli stessi posti, così le colature partono proprio dal loro bordo.
Lettere, colature, gocce e pozze stanno in un gruppo SVG con un filtro: una sfocatura e una soglia sull’alfa le saldano in una massa sola (il collo della colatura si raccorda alla lettera da solo), poi la stessa forma sfocata fa da rilievo per una luce diffusa, che dà il volume, e per una luce speculare puntiforme, che è il lucido e sta sulla fiamma. Sotto, un’ombra calda sfocata e spostata in basso.
Ogni lettera ha il suo calore, che va verso la vicinanza della fiamma: sale piano e scende ancora più piano. Il calore muove l’asse SOFT e il peso di Fraunces, la tinta da avorio ad ambra chiaro e una molla che affloscia la lettera sulla riga; quando la cera si raffredda la molla la riporta dritta con un assestamento di un’unità.
Sopra una soglia di calore nascono colature a caso nelle colonne vicine alla fiamma, distanti almeno 22 unità l’una dall’altra. Ognuna scende con una velocità viscosa che cresce col calore e con la lunghezza; passata la sua misura il collo si stringe in un terzo di secondo e la goccia cade con la gravità, allungandosi, e diventa una pozza sulla mensola che si allarga con una molla. La mensola si piega dove cade la goccia e torna dritta.
Una colatura fredda da RECAST secondi si ritira piano dentro la lettera, e anche le pozze vecchie si restringono: la demo può girare per ore senza che la cera si accumuli. Le colature sono al massimo MAX_DRIPS.
La fiamma è un tracciato ridisegnato a ogni fotogramma: trema da sola, e la sua punta resta indietro rispetto al movimento su una molla. Ha un cuore chiaro, un alone ambra largo e porta con sé la luce del lucido. Senza il puntatore vero per più di 2,2 secondi la guida una fiamma finta che passa lungo la parola.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
WORD | script.js | 'Ember' | La parola di cera: corta, sta in una riga. |
WEIGHT | script.js | 600 | Il peso della cera fredda (Fraunces va da 100 a 900). |
SWELL | script.js | 60 | Quanto peso prende una lettera calda. |
HEAT_RADIUS | script.js | 200 | Fin dove arriva il calore della fiamma, in unità del disegno largo 1000. |
MELT_SPEED | script.js | 1 | Quanto in fretta la cera si scalda e cola. |
DRIP_RATE | script.js | 0.5 | Quante colature nascono al secondo da una lettera calda. |
MAX_DRIPS | script.js | 12 | Quante colature al massimo sulla parola. |
DROP_CHANCE | script.js | 0.5 | Quanto spesso una colatura lunga lascia cadere la goccia (0 mai, 1 sempre). |
FLAME_SIZE | script.js | 1 | La misura della fiamma. |
GLOSS | script.js | 0.55 | Quanto brilla il lucido della cera. |
RECAST | script.js | 6 | Dopo quanti secondi al freddo una colatura torna dentro la lettera (0 mai). |
Come apertura di un laboratorio di candele, di una profumeria o di una casa di fragranze, di un ristorante a lume di candela, di una cioccolateria o di una pasticceria (la cera diventa glassa), di un evento d’autunno; ovunque una parola sola deve sembrare fatta di una materia vera e rispondere al calore della mano.
Uguale col dito: trascinando la fiamma segue il dito, e senza dito passa da sola lungo la parola. La parola sta nel 92% della larghezza e la scena si misura anche sull’altezza, così sta nella casella. Sopra la demo il dito muove la fiamma e non scorre la pagina.
La parola di cera compare in dissolvenza già colata, con cinque colature e una pozza ferme; la fiamma non c’è, niente si muove e lo stato resta «set».
GSAP 3.15.0, Fraunces (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 10 KB; le librerie: GSAP 28 KB.
Provata il 24 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.