
Il banner dei cookie
Consenso, Transizioni, SVG, Fisica
NuovaGratis
Dove va l'energia di una casa coi pannelli solari, disegnato come la casa tagliata a metà: ogni uso è una stanza larga quanto la sua parte del mese. Cambiando mese le pareti scivolano su molle e le lampade appese ai soffitti oscillano per lo strattone; la stanza scelta accende la sua luce, un cono caldo che dondola con la lampada, e le altre vanno al buio. A gennaio i pannelli sono sotto la neve, che in primavera si scioglie.
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 room chart</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/albert-sans@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the energy card of a home with solar panels: where a month's energy went, drawn as the house cut open. Every
use is a room, as wide as its share of the month; changing the month the walls slide on springs and the lamps
swing. The use picked with the pointer, a finger or the keys switches its light on, and the other rooms go
dark. The house is drawn by the script; the numbers are in a table for screen readers -->
<section class="home" aria-labelledby="home-title" data-home>
<div class="home__head">
<h2 class="home__title" id="home-title">Home energy</h2>
<div class="months" role="tablist" aria-label="Month" data-months data-autoclic>
<span class="months__thumb" aria-hidden="true" data-thumb></span>
<button class="months__btn" type="button" role="tab" aria-controls="home-house" data-month>Jan</button>
<button class="months__btn" type="button" role="tab" aria-controls="home-house" data-month>Apr</button>
<button class="months__btn" type="button" role="tab" aria-controls="home-house" data-month>Jul</button>
</div>
</div>
<p class="home__figure"><span class="home__value" data-value>0</span><span class="home__unit">kWh</span></p>
<p class="home__note" data-note></p>
<div id="home-house" role="tabpanel" data-panel>
<div class="house" data-house>
<svg class="house__svg" aria-hidden="true" data-svg></svg>
</div>
<div class="key" role="group" aria-label="Where it went" data-key></div>
<table class="sr" data-table></table>
</div>
<p class="sr" aria-live="polite" data-said></p>
</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.
31 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 grafico a stanze» da Animorio e adattala al mio sitoLe cinque stanze stanno in fila e ognuna è larga quanto la sua parte del mese, calcolata sui kWh veri: la casa è una barra impilata, con le pareti fra le stanze al posto dei due pixel di stacco. Le percentuali scritte si arrotondano coi resti più grandi, così fanno sempre cento. Il disegno è largo quanto la scheda, così le misure sono pixel veri anche al telefono.
Ogni parete è un numero, la parte del mese alla sua sinistra. Cambiando mese il suo obiettivo scivola al posto nuovo in SLIDE secondi con power2.inOut, una parete 30 millesimi dopo l'altra, e la parete lo insegue su una molla (WALLS): resta un poco indietro, va oltre e si assesta. La molla si calcola a passi di 1/240 di secondo sul ticker di GSAP, e da lì viene anche l'accelerazione di ogni parete.
Ogni lampada è un pendolo di 18 centimetri, se un pixel fosse un centimetro: θ'' = −ω²(sin θ + SWING · 0,4 · a/g · cos θ) − smorzamento, dove a è l'accelerazione del soffitto, la media delle due pareti della stanza. Così la lampada resta indietro quando il soffitto parte e oscilla quando si ferma, e si calma in un secondo e mezzo.
La stanza scelta mostra un cono caldo appeso alla lampada, che gira con lei, una pozza di luce sul pavimento che segue la punta del cono e un alone sul soffitto, tutto ritagliato dalla stanza con un clipPath che si sposta con le pareti. Le altre stanze tengono NIGHT del loro colore, e il disegno e la lampada passano dal colore della scheda al colore della stanza, così si leggono anche al buio. L'oggetto lavora con un orologio che corre quanto la luce è accesa: spegnendo, rallenta e si ferma senza scatti.
La neve è un tracciato dal colmo in giù con l'orlo ondulato e qualche goccia tonda, ritagliato dal tetto: la sua profondità va a uno a gennaio e a zero negli altri mesi, e l'orlo risale verso il colmo mentre si scioglie. Il totale e le percentuali contano con GSAP; la riga sotto il totale dice quanto è venuto dai pannelli, o il nome e la parte dell'uso acceso.
I mesi sono tab con le frecce. La legenda è un gruppo di pulsanti con le frecce, Inizio e Fine: la luce segue il fuoco, Esc la spegne, e una regione aria-live legge uso, kWh e parte; una tabella nascosta ha tutti i numeri del mese. Col mouse il passaggio accende e il clic tiene accesa; col dito il tocco accende, scorrere cambia stanza, un secondo tocco spegne. Un clic da script sui mesi (l'anteprima della libreria) sceglie il mese dopo e, finite le pareti, accende la stanza cresciuta di più.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
SLIDE | script.js | 0.6 | I secondi in cui le pareti scivolano al mese nuovo. |
WALLS | script.js | [260, 0.5] | Le molle che tirano le pareti: quanto sono rigide e quanto sono frenate (1 = senza andare oltre). |
SWING | script.js | 1 | Quanto oscillano le lampade quando le pareti si muovono (0 = restano ferme). |
GLOW | script.js | 0.75 | Quanto è forte la luce nella stanza accesa. |
NIGHT | script.js | 0.2 | Quanto colore tengono le altre stanze mentre una è accesa. |
COUNT | script.js | 0.7 | I secondi in cui i numeri contano ai valori nuovi. |
Per l'app di una casa con pannelli e pompa di calore, il cruscotto di un fornitore di energia, la bolletta spiegata, ma anche per qualsiasi totale che si divide in parti legate a dei luoghi: le spese di un negozio per reparto, le ore di un ufficio per stanza. Il cambio di mese fa vedere dove si è spostata la spesa (l'inverno nella pompa di calore, l'estate nel garage), e la luce accesa risponde alla domanda di chi guarda: quanto pesa questa parte?
Su un telefono la scheda prende la larghezza dello schermo e la casa si ridisegna alla sua misura, con le stanze in pixel veri e i pannelli che ci stanno; nelle stanze strette l'oggetto si rimpicciolisce. Toccando una stanza si accende la luce, scorrendo il dito di lato si passa di stanza in stanza (la pagina scorre ancora in verticale), e un secondo tocco o un tocco fuori la spegne. La legenda stringe le colonne perché i nomi ci stiano interi.
Le pareti non scivolano e le lampade non oscillano: cambiando mese la casa si spegne in dissolvenza, cambia e si riaccende, e i numeri cambiano subito. La luce si accende e si spegne ancora in dissolvenza, gli oggetti restano fermi e la neve compare e sparisce senza scendere.
GSAP 3.15.0, Albert Sans (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 13 KB; le librerie: GSAP 28 KB.
Provata il 7 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.