
Lo sfondo di fili come un tessuto
Sfondi, Hover
NuovaGratis
Uno sfondo animato da mettere dietro a un titolo o a una sezione: due famiglie di cerchi concentrici a filo d'inchiostro su una carta bianco caldo. Il centro della prima gira piano, quello della seconda segue il puntatore su una molla, e dove i cerchi si incrociano nascono le frange del moiré, che si aprono a ventaglio e corrono sulla carta. 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>Loupe</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/newsreader@5.3.0/opsz.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/newsreader@5.3.0/opsz-italic.css">
<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 background: two families of hairline concentric rings on a canvas behind the page; one drifts slowly, the
other follows the pointer, and where they overlap the moire fringes bloom and sweep across the paper -->
<main class="pagina" data-pagina>
<canvas class="fondo" aria-hidden="true" data-fondo></canvas>
<header class="testa">
<p class="marchio">Loupe</p>
<p class="testa__nota">Opticians since 1984</p>
</header>
<section class="eroe">
<div class="blocco" data-blocco>
<p class="occhiello" data-entra>Eyewear, fitted by hand</p>
<h1 class="titolo">
<span class="riga"><span class="riga__dentro" data-riga>Look <em class="accento">twice,</em></span></span>
<span class="riga"><span class="riga__dentro" data-riga>then see clearly.</span></span>
</h1>
<div class="azione" data-entra>
<a class="pillola" href="#">
<span class="pillola__scritta" data-testo="Book an eye test">Book an eye test</span>
<svg class="pillola__freccia" viewBox="0 0 16 16" aria-hidden="true"><path d="M2.5 8h10.5M9 3.8 13.2 8 9 12.2" /></svg>
</a>
</div>
</div>
</section>
</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.
22 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 «Lo sfondo a moiré di cerchi» da Animorio e adattala al mio sitoSu un canvas a tutta pagina (devicePixelRatio limitato a 2) ogni famiglia è una serie di cerchi concentrici, uno ogni PASSO pixel, fino all'angolo più lontano. Il moiré non si programma: nasce da solo dove due serie di righe sottili e regolari si sovrappongono con i centri un poco lontani, perché i cerchi ora coincidono e ora cadono negli spazi vuoti dell'altra famiglia.
Verso i bordi i cerchi sfumano: da metà di LONTANO (una frazione della diagonale) fino a LONTANO la trasparenza scende a zero. Per non cambiare globalAlpha a ogni cerchio, i cerchi vanno in dodici Path2D secondo la loro trasparenza e ogni gruppo si disegna con un solo stroke: ventiquattro stroke per fotogramma in tutto.
Il centro della seconda famiglia segue il puntatore su una molla (MOLLA) integrata a mano sul ticker di GSAP; il passo dei suoi cerchi cambia del RESPIRO per cento con un seno legato alla fase del giro. Basta spostare un centro di pochi pixel perché le frange corrano di molto: è la lente d'ingrandimento del moiré.
Dopo i cerchi si passa a destination-out e si riempie un ovale con un gradiente radiale (il contesto stirato con scale), pieno al centro e trasparente sul bordo: dietro alle parole i cerchi si schiariscono di CALMA senza un bordo netto.
Una timeline porta il raggio massimo delle due famiglie da 0 a 1, la seconda mezzo secondo dopo, con gli ultimi novanta pixel sfumati come il bordo di un'increspatura. Le righe del titolo salgono con back.out mentre il peso passa da 250 a 400. Dopo 2,4 secondi senza il puntatore vero il centro segue una curva di Lissajous legata al giro; IntersectionObserver e visibilitychange fermano tutto quando la pagina non si vede.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
PASSO | script.js | 9 | La distanza fra un cerchio e l'altro, in px (sul telefono un poco meno). |
SPESSORE | script.js | 1 | Lo spessore dei cerchi, in px. |
GIRO | script.js | 24 | In quanti secondi il centro che va da solo fa un giro intero e torna uguale. |
DERIVA | script.js | 0.14 | Quanto si allontana quel centro dal centro della pagina, in frazioni della pagina. |
RESPIRO | script.js | 0.035 | Quanto si allarga e si stringe la seconda famiglia (0.035 vuol dire il 3,5%). |
MOLLA | script.js | [55, 12] | La molla del centro che segue il puntatore: quanto è rigida e quanto è frenata. |
LONTANO | script.js | 0.52 | Fin dove arrivano i cerchi prima di sfumare, in frazioni della diagonale della pagina. |
CALMA | script.js | 0.9 | Quanto si schiariscono i cerchi dietro al titolo (0 per niente, 1 spariscono). |
Come fondo della prima schermata di un ottico o di un marchio di occhiali, di uno studio di design, di una galleria d'arte cinetica, di uno studio di registrazione o di un festival di musica elettronica; in generale dietro a un titolo corto quando si vuole una carta chiara che si muove appena e sorprende quando si muove il mouse. Il colore dei cerchi e l'accento si cambiano nel CSS.
Le stesse animazioni a misure adattate: i cerchi sono un poco più fitti e il titolo più piccolo, con la gomma che lo segue. Il dito sposta il centro della seconda famiglia mentre tocca e trascina; quando si alza torna il puntatore finto.
I cerchi sono fermi, già allargati, con le frange al loro posto: niente giro, niente molla, niente apertura. Il titolo, la riga piccola e la pillola compaiono in dissolvenza.
GSAP 3.15.0, Newsreader (font variabile) 5.3.0, Archivo (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 5,8 KB; le librerie: GSAP 28 KB.
Provata il 19 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.