
Nastro che accelera con lo scorrimento
Scroll, Testo, Hover
Gratis
Una parola grande sulla linea dell'orizzonte e la sua ombra lunga e piatta, fatta di righe sottili: il puntatore è il sole e l'ombra gira intorno alla parola come la luce di un giorno intero, lunga verso destra all'alba, corta e dritta in giù a mezzogiorno, lunga verso sinistra al tramonto. Le lettere seguono il sole una dopo l'altra: larghe e sottili col sole basso, strette e piene a mezzogiorno. 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 word with the day's shadow</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/anybody@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- one big word and its long, flat shadow drawn in hairline hatching. The shadow turns round the word like the
light of a whole day: long at dawn, short at noon, long again at sunset. The pointer moves the sun -->
<main class="stage" role="slider" tabindex="0" aria-label="Time of day" aria-valuemin="5" aria-valuemax="19"
aria-valuenow="9.5" aria-valuetext="09:30" data-stage>
<header class="top">
<p class="time" aria-hidden="true">
<span class="time__digits" data-digits>09:30</span>
<span class="time__phase"><span class="time__word" data-phase>Morning</span></span>
</p>
<p class="top__note">Shade, all day long</p>
</header>
<!-- the sky: a hairline arc with the hours, the ground at its two feet and the sun -->
<svg class="scene" aria-hidden="true" data-scene>
<defs>
<clipPath id="above">
<rect data-above></rect>
</clipPath>
</defs>
<path class="arc" data-arc></path>
<g class="ticks" data-ticks></g>
<path class="ground" data-ground></path>
<g clip-path="url(#above)">
<g class="sun" data-sun>
<circle r="9"></circle>
</g>
</g>
</svg>
<!-- the long shadow, drawn in hairlines on a canvas -->
<canvas class="shade" aria-hidden="true" data-shade></canvas>
<!-- the word: it stands on the horizon, and below the horizon it is cut off -->
<div class="horizon" aria-hidden="true" data-horizon>
<div class="word" data-word></div>
</div>
<h1 class="sr-only" data-label></h1>
<p class="hint">Move the sun across the page</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.
24 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 con l'ombra del giorno» da Animorio e adattala al mio sitoLa posizione orizzontale del puntatore diventa l'ora, da poco dopo le cinque a poco prima delle sette di sera, e l'ora mostrata la segue su una molla (SUN_SPRING) integrata a mano sul ticker di GSAP, col passo limitato a 1/30 di secondo. L'ora diventa un angolo sull'arco, π alle sei del mattino e 0 alle sei di sera, e il sole sta sull'ellisse centrata sulla parola; l'altezza del sole è 62 gradi per il seno della frazione di giorno, negativa prima delle sei e dopo le diciotto. Sotto l'orizzonte il sole è tagliato da un clipPath e l'ombra sfuma via.
L'ombra va dal sole alla parola e oltre: la direzione è quella dal sole al centro della parola, la lunghezza è SHADOW per la misura delle lettere diviso la tangente dell'altezza del sole, così all'alba è lunghissima e a mezzogiorno corta. Su un canvas si disegnano le lettere, poi lo si copia su un secondo canvas due volte, la seconda spostata lungo la luce; si ripete nove volte raddoppiando lo spostamento e le copie diventano 511, una forma piena senza buchi. Si lavora solo nel rettangolo che contiene lettere e ombra, ed è questo che la rende veloce.
Dalla forma si tolgono le lettere stesse (destination-out), poi un gradiente lungo la luce la fa sfumare verso la punta (destination-in). Sul canvas visibile, alla risoluzione dello schermo, si tracciano le righe sottili (HATCH) inclinate di ANGLE gradi rispetto alla luce, contate dal centro della pagina perché non scivolino; la forma le tiene solo dove c'è ombra. Righe parallele alla luce non si leggerebbero come una forma, solo come strisce.
Ogni lettera è uno span con font-variation-settings: un solo numero da 0 a 1, l'altezza del sole, diventa larghezza (WIDTH) e peso (WEIGHT). Ogni lettera legge l'altezza com'era STAGGER secondi prima per ogni posto che la separa dal lato del sole, da una breve memoria dell'ultimo secondo, e ci arriva su una sua molla. Sul canvas le lettere si ridisegnano col peso uguale, la larghezza più vicina fra quelle che il canvas conosce e la scatola misurata della lettera vera.
Una timeline GSAP disegna l'arco con stroke-dasharray su pathLength 1, fa spuntare le tacche con back.out mentre il disegno le raggiunge, alza le lettere da sotto l'orizzonte (un contenitore con overflow nascosto che finisce proprio sulla linea di base) e porta il sole all'ora START. Dopo 2,4 secondi senza nessuno una timeline in ripetizione porta il sole dall'alba al tramonto in DAY secondi; quando ricomincia, il sole salta sotto l'orizzonte senza molla, così non torna indietro sul cielo.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
WORD | script.js | 'Umbra' | La parola sull'orizzonte: corta è meglio, la misura si adatta da sola alla pagina. |
START | script.js | 9.5 | L'ora su cui si posa l'apertura, dalle 5 alle 19 (9.5 sono le nove e mezza). |
DAY | script.js | 11 | In quanti secondi il sole va dall'alba al tramonto quando va da solo. |
SHADOW | script.js | 0.5 | Quanto è lunga l'ombra: più alto, ombre più lunghe a ogni ora. |
HATCH | script.js | [6, 1] | Le righe dell'ombra: la distanza fra una riga e l'altra e lo spessore, in pixel. |
ANGLE | script.js | 62 | L'angolo fra le righe e la luce: 90 le mette di traverso, sotto i 30 diventano strisce. |
SUN_SPRING | script.js | [120, 15] | La molla con cui il sole segue il puntatore: quanto è rigida e quanto è frenata. |
WIDTH | script.js | [146, 70] | La larghezza delle lettere col sole basso e a mezzogiorno (da 50 a 150). |
WEIGHT | script.js | [250, 820] | Il peso delle lettere col sole basso e a mezzogiorno (da 100 a 900). |
STAGGER | script.js | 0.07 | Quanti secondi passano fra una lettera e l'altra quando seguono il sole. |
Per un nome o una parola che parla di luce, sole e ombra: il titolo di una casa vacanza o di un hotel al mare, l'insegna di un bar con la terrazza, un marchio di ombrelloni, creme solari o occhiali da sole, la pagina di un fotografo che lavora con la luce naturale. Funziona dove c'è una scena sola e la parola è il messaggio; non è adatto a un titolo fra tanti altri contenuti.
Le stesse animazioni a misure adattate: la parola occupa quasi tutta la larghezza, l'arco del cielo è più alto che largo, le scritte in alto e in basso sono un poco più piccole. Il sole segue il dito mentre lo trascina in qualunque punto della pagina (lì la pagina non scorre, è una scena sola) e si ferma quando si alza; poi il giorno riparte da solo.
Niente molle, niente lettere che salgono, niente tacche che saltano e niente giorno che va da solo: la scena compare in dissolvenza già al suo posto alle nove e mezza, e col puntatore o con le frecce l'ombra e le lettere vanno subito all'ora scelta.
GSAP 3.15.0, Anybody (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 9,3 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.