
Lettere in piedi con l'ombra lunga
Testo, Scroll, 3D
NuovaGratis
I titoli compaiono parola per parola come un bagliore azzurro senza lettere, che gira sulla ruota dei colori; poi si riempiono del loro colore mentre il bagliore si spegne.
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>Neon headings</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/mona-sans@5.3.0/standard.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/jetbrains-mono@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="page">
<header class="top">
<p class="brand">Spool</p>
<p class="top__line">Release notes</p>
</header>
<!-- every heading with data-neon lights up, word by word, when it comes on screen -->
<section class="hero">
<p class="label">Spring release</p>
<h1 class="heading heading--big" data-neon>Every frame is a block you can play with.</h1>
<p class="text">Pick one up, change it, drop it back on the timeline. Nothing is baked in until you export.</p>
<div class="actions">
<button class="replay" type="button" data-replay data-autoclic>
<span class="replay__text" data-text="Light it again">Light it again</span>
<svg class="replay__icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M4.5 12a7.5 7.5 0 1 0 2.2-5.3" /><path d="M4.5 4.5v4.2h4.2" /></svg>
</button>
<span class="hint">or scroll</span>
</div>
</section>
<section class="part">
<h2 class="heading" data-neon>Stack them, swap them, keep the ones that work.</h2>
<p class="text">Blocks snap to the beat of your track and remember every setting you give them.</p>
</section>
<section class="part">
<h2 class="heading" data-neon>Your brand kit rides along on every export.</h2>
<p class="text">Colours, type and logos travel with the project, so nobody starts from a blank timeline.</p>
</section>
<section class="part part--last">
<h2 class="heading" data-neon>Wide, tall or square, all in one go.</h2>
<p class="text">One project, every size your channels ask for.</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/SplitText.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 «I titoli al neon» da Animorio e adattala al mio sitoSplitText divide ogni titolo in parole e lascia l’etichetta per i lettori di schermo. Ogni parola parte trasparente, con due ombre azzurre #4cc7f0 di 5 e 18 px: senza le lettere resta solo la loro luce.
Il filtro hue-rotate gira di 160° in un secondo, allo stesso passo per tutte le parole, finché ognuna non comincia a riempirsi; mentre si riempie la sua rotazione torna a zero, così il bianco esce pulito.
Da 0,3 secondi, una parola ogni 0,05 secondi (le ultime tre una volta e mezza più distanti) prende il suo colore in due terzi di secondo, e l’ombra va verso un rosso trasparente: spegnendosi, il bagliore scivola ancora di colore.
Un IntersectionObserver con un margine di −10% in basso accende il titolo quando entra davvero nello schermo; quando esce dal basso, cioè risalendo, la sua timeline torna all’inizio e si riaccende alla discesa dopo. I titoli restano nascosti finché non sono divisi, così il testo semplice non lampeggia.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
GLOW | script.js | #4cc7f0 | Il colore del bagliore da cui partono le parole. |
TURN | script.js | 160 | Quanto gira il bagliore sulla ruota dei colori, in gradi. |
WORD, FILL_AT | script.js | 1, 0.3 | La durata del giro, in secondi, e quando comincia a riempirsi la prima parola. |
GAP | script.js | 0.05 | Il ritardo fra una parola e l’altra, in secondi. |
MARGIN | script.js | 0px 0px -10% 0px | Quanto deve entrare nello schermo un titolo per accendersi. |
Per i titoli di una pagina scura: note di rilascio, un lancio, un evento serale, il sito di un locale. Su fondo chiaro funziona lo stesso, ma il bagliore si vede meno.
Uguale, con titoli da 36 px; il bagliore resta di 5 e 18 px, quindi sullo schermo piccolo sembra più morbido.
Niente bagliore: i titoli sono subito scritti nel loro colore.
GSAP 3.15.0, SplitText (GSAP) 3.15.0, Mona Sans (font variabile) 5.3.0, JetBrains Mono (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 4,3 KB; le librerie: GSAP + SplitText 31 KB.
Provata il 28 settembre 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.