
Parole che si fondono
Testo, Scroll, SVG
NuovaGratis
Scorri dentro l’anteprima
La strada per un rifugio di montagna in una sola linea sottile: scendendo, il sentiero sale a tornanti, il righello delle quote scorre sotto un segno fermo, la quota grande conta ogni metro e ogni tappa si posa sulla sua quota lettera per lettera, prendendo peso. All’ultima, la quota del rifugio si accende nel vermiglio. Stile minimal.
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 trail of heights</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>
<!-- the way up to a made-up mountain hut, drawn with a single thin line. Scrolling down, the trail climbs in
switchbacks, the ruler of heights runs down beside it, and every stop lands on its own height, taking on
weight; at the last one the height of the hut lights up -->
<main>
<section class="apertura">
<p class="piccolo">Vellmar Hut</p>
<h1 class="titolo">Four hours up,<br>one line.</h1>
<p class="piccolo piccolo--tenue">Scroll down</p>
</section>
<section class="salita" data-salita>
<div class="palco">
<header class="testa">
<p class="marchio">Vellmar</p>
<p class="piccolo piccolo--tenue">The summer path</p>
</header>
<div class="lettura" data-lettura aria-hidden="true">
<p class="quota" data-quota>1,240</p>
<p class="piccolo piccolo--tenue lettura__sotto">metres above the sea</p>
</div>
<div class="vista">
<div class="mondo" data-mondo>
<svg class="sentiero" data-sentiero aria-hidden="true">
<defs>
<clipPath id="sentiero-scopre"><rect data-scopre x="0" y="0" width="0" height="0"></rect></clipPath>
</defs>
<path class="sentiero__guida" data-guida clip-path="url(#sentiero-scopre)"></path>
<path class="sentiero__passi" data-passi></path>
</svg>
<div class="righello" data-righello aria-hidden="true"></div>
<ol class="tappe">
<li class="tappa" data-tappa data-metri="1240">
<i class="tappa__riga" aria-hidden="true"></i>
<span class="tappa__metri">1,240 m</span>
<span class="tappa__nome">Tellow Bridge</span>
</li>
<li class="tappa" data-tappa data-metri="1610">
<i class="tappa__riga" aria-hidden="true"></i>
<span class="tappa__metri">1,610 m</span>
<span class="tappa__nome">Larch Gate</span>
</li>
<li class="tappa" data-tappa data-metri="1985">
<i class="tappa__riga" aria-hidden="true"></i>
<span class="tappa__metri">1,985 m</span>
<span class="tappa__nome">The Shelves</span>
</li>
<li class="tappa" data-tappa data-metri="2390">
<i class="tappa__riga" aria-hidden="true"></i>
<span class="tappa__metri">2,390 m</span>
<span class="tappa__nome">Grey Saddle</span>
</li>
<li class="tappa" data-tappa data-metri="2846">
<i class="tappa__riga" aria-hidden="true"></i>
<span class="tappa__metri">2,846 m</span>
<span class="tappa__nome">Vellmar Hut</span>
</li>
</ol>
</div>
</div>
<i class="livello" data-livello aria-hidden="true"></i>
</div>
</section>
<section class="apertura apertura--fine">
<h2 class="titolo titolo--medio">Beds from June<br>to September.</h2>
<p class="piccolo piccolo--tenue">Twenty-two of them, and a stove.</p>
</section>
</main>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/ScrollTrigger.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.
34 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 sentiero delle quote» da Animorio e adattala al mio sitoOgni tappa è una voce di un elenco con data-metri e il suo nome: lo script le legge, le mette in ordine e ne ricava la quota più bassa e la più alta. Da lì nasce la scala: una funzione trasforma una quota in un’altezza nel disegno, e tutto (tacche, tornanti, righe delle tappe) si piazza con quella. Fra una tappa e l’altra lo script inventa LEGS tratti di tornante, un po’ irregolari, con le tappe sempre dalla stessa parte.
La timeline, legata allo scorrimento con scrub SCRUB, muove soprattutto numeri: la quota raggiunta, il colpo sulle tacche, l’entrata del righello e, per ogni tappa, la riga, la quota piccola e lo schiarirsi. A ogni aggiornamento una funzione sola ridisegna tutto da quei numeri: dove sta la punta lungo i tornanti, quanta linea è già percorsa (stroke-dashoffset), dove va il disegno intero, quanto sono lunghe le tacche.
Righello, sentiero e tappe stanno in un solo strato. A ogni fotogramma lo strato scende di quanto serve perché la quota raggiunta resti alla stessa altezza dello schermo, dove sta il segno nero sul righello: così sembra che il righello scorra sotto il segno. Il tratteggio del sentiero da fare è un secondo tracciato che parte dalla punta, con lo stroke-dashoffset uguale alla strada fatta perché i trattini restino fermi.
Il numero grande è la quota raggiunta arrotondata, con le cifre tabellari che non ballano. Due variabili CSS, --wd e --wg, sono gli assi wdth e wght di Archivo: all’inizio di ogni salita scendono a NARROW e THIN, all’arrivo tornano a WIDE e HEAVY con un elastico. Solo le prime cifre fanno lo scatto quando cambiano: le ultime cambiano a ogni metro e scattando tremerebbero di continuo.
Ogni lettera del nome sta nel suo riquadro, con il peso in una variabile --w. All’arrivo le lettere cadono da 20 pixel con uno stagger, dalla trasparenza al pieno e da peso 100 a HEAVY, con la curva LAND (un back.out che rimbalza di circa un pixel); un secondo tween le schiaccia appena e le rimette dritte. Poi la riga si stende dal sentiero al righello con scaleX e la quota piccola sale al suo posto.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
NARROW | script.js | 66 | La larghezza della quota grande mentre si sale (62 è la più stretta). |
WIDE | script.js | 104 | La larghezza su cui si posa a ogni tappa (125 è la più larga). |
THIN | script.js | 230 | Il peso della quota grande mentre si sale. |
HEAVY | script.js | 680 | Il peso su cui si posano la quota grande e i nomi delle tappe. |
LEGS | script.js | 4 | Quanti tratti di tornante fra una tappa e l’altra (un numero pari). |
WAVE | script.js | 1.4 | Quanto si allungano le tacche vicine alla punta. |
LAND | script.js | 'back.out(1.6)' | La curva delle lettere che si posano: il numero è quanto rimbalzano. |
SCRUB | script.js | 0.8 | Quanti secondi ci mette il disegno a raggiungere lo scorrimento. |
Per la pagina «come arrivare» di un rifugio, di un albergo in montagna o di una casa vacanze in collina, per il percorso di una gita o di una corsa in salita, o per qualunque storia fatta di tappe con un numero che cresce. Le tappe si cambiano nell’HTML (data-metri e il nome): la scala e i tornanti si rifanno da soli. Con più di cinque tappe la sezione va allungata.
Le stesse animazioni: il righello sta sul bordo sinistro, i tornanti si stringono nella metà destra senza scarti di lato, la quota grande è più piccola e il disegno è un po’ più alto, così le tacche restano distanti. I nomi delle tappe sono più piccoli e stanno fra la quota piccola e il sentiero.
Niente spostamenti: righello e sentiero da fare sono già disegnati. Scorrendo si passa da una tappa all’altra a scatti: il disegno e la quota grande spariscono in dissolvenza e ricompaiono già alla tappa nuova, col sentiero percorso fin lì e la tappa scritta. All’ultima la quota del rifugio è già vermiglia.
GSAP 3.15.0, ScrollTrigger (GSAP) 3.15.0, Archivo (font variabile, assi wdth e wght) 5.3.0.
Compressi con gzip, i tre file della demo pesano 9,1 KB; le librerie: GSAP + ScrollTrigger 45 KB.
Provata il 16 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.