
Il pulsante d’invio
Pulsanti, Transizioni, SVG
NuovaGratis
Un interruttore disegnato come un piccolo paesaggio: acceso, il sole scivola dall’altra parte e diventa la luna, le nuvole del giorno se ne vanno, le colline si fanno blu, e la notte si allarga su tutta la pagina in un cerchio che parte dall’interruttore.
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 day and night switch</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/nunito@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- the day and the night of the page: a white layer, and over it a black circle that grows out of the switch and
shrinks back into it -->
<span class="day" aria-hidden="true"></span>
<span class="night" aria-hidden="true" data-night></span>
<main class="stage">
<!-- the switch: a little landscape. Turned on, the sun slides across and turns into the moon, the day clouds drift
off and the night ones come in, the hills darken, and the whole page goes black -->
<div class="theme" data-theme>
<button class="sky" type="button" role="switch" aria-checked="false" aria-labelledby="sky-label" data-sky data-autoclic>
<span class="sky__day" aria-hidden="true"></span>
<span class="sky__dark" aria-hidden="true" data-dark></span>
<svg class="sky__land" viewBox="0 0 132 56" preserveAspectRatio="none" aria-hidden="true">
<g data-day-clouds>
<path class="cloud" transform="translate(76 9)" d="M6 12a5 5 0 0 1 4.6-5 6.5 6.5 0 0 1 12.2-1.4A4.6 4.6 0 0 1 28 12z"/>
<path class="cloud" transform="translate(98 20) scale(0.75)" d="M6 12a5 5 0 0 1 4.6-5 6.5 6.5 0 0 1 12.2-1.4A4.6 4.6 0 0 1 28 12z"/>
</g>
<g data-night-clouds>
<path class="cloud cloud--night" transform="translate(10 8) scale(0.8)" d="M6 12a5 5 0 0 1 4.6-5 6.5 6.5 0 0 1 12.2-1.4A4.6 4.6 0 0 1 28 12z"/>
<path class="cloud cloud--night" transform="translate(30 20) scale(0.6)" d="M6 12a5 5 0 0 1 4.6-5 6.5 6.5 0 0 1 12.2-1.4A4.6 4.6 0 0 1 28 12z"/>
</g>
<path class="hill hill--back" d="M0 56V44c18-7 36-8 58-2s46-6 74-1v15z"/>
<path class="hill hill--front" d="M0 56v-7c24-4 48 4 74 0s40-5 58-1v8z"/>
<path class="hill hill--back-night" data-night-hill d="M0 56V44c18-7 36-8 58-2s46-6 74-1v15z"/>
<path class="hill hill--front-night" data-night-hill d="M0 56v-7c24-4 48 4 74 0s40-5 58-1v8z"/>
</svg>
<span class="sky__thumb" data-thumb>
<span class="sky__knob" data-knob>
<svg viewBox="-24 -24 48 48" aria-hidden="true">
<g class="sun-rays" data-rays></g>
<circle class="disc" r="13.5" data-disc/>
<g class="craters" data-craters>
<circle cx="-4.5" cy="-3.5" r="3.2"/>
<circle cx="4.8" cy="3.6" r="2.2"/>
<circle cx="-2" cy="6.4" r="1.5"/>
</g>
</svg>
</span>
</span>
</button>
<span class="theme__label" id="sky-label" data-label>Dark mode</span>
</div>
</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.
10 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 «L’interruttore giorno e notte» da Animorio e adattala al mio sitoIl pulsante (role switch) contiene due fondi a gradiente, il giorno e la notte uno sull’altro, un SVG con le nuvole e due coppie di colline, e il pomello: un SVG col disco, i raggi fatti dallo script e tre crateri. Il pomello sta dentro un secondo elemento che prende la pressione e lo sguardo verso l’altra parte, così queste non si scontrano con la corsa.
Tutto il passaggio dal giorno alla notte è una timeline in pausa: accendere la manda avanti, spegnere indietro, e un clic a metà la gira da dove si trova. Il pomello fa la sua corsa in tre quarti di TIME, allungandosi fino a STRETCH a metà strada; i raggi rimpiccioliscono e girano di 90 gradi, il disco cambia colore e i crateri compaiono con back.out.
Dietro a tutto ci sono due livelli fissi: il bianco del giorno e la notte nera, tagliata da un clip-path circle col centro sull’interruttore. Il raggio va da zero alla distanza dell’angolo più lontano della finestra; nella timeline un numero da 0 a 1 lo disegna a ogni fotogramma.
La scritta è bianca con mix-blend-mode difference: sul bianco diventa nera, sul nero resta bianca, e nel passaggio si divide proprio sul bordo del cerchio. Per questo il bianco del giorno è un livello vero e non solo lo sfondo della pagina, e nessun contenitore della scritta ha un transform.
È un pulsante con role switch e aria-checked: Invio e Spazio lo accendono e lo spengono, e il suo nome è la scritta accanto (aria-labelledby).
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
TIME | script.js | 0.85 | I secondi del passaggio, dal giorno alla notte e indietro. |
STRETCH | script.js | 1.18 | Quanto si allunga il sole mentre scivola. |
RAYS | script.js | 8 | I raggi del sole. |
PEEK | script.js | 4 | Quanto si affaccia il sole sotto il mouse, in pixel. |
Per scegliere fra il tema chiaro e quello scuro di un sito o di un’app, quando il cambio può essere anche un piccolo spettacolo. In un sito vero la scelta va salvata, e la prima volta si può partire da quella del sistema (prefers-color-scheme).
L’interruttore si rimpicciolisce un poco sotto i 420 pixel e i tocchi fanno come i clic; il cerchio della notte parte sempre dall’interruttore e copre tutto lo schermo.
Niente corsa né cerchio: l’interruttore cambia di colpo e la notte copre la pagina, o la lascia, in una dissolvenza di un quarto di secondo.
GSAP 3.15.0, Nunito (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 5,1 KB; le librerie: GSAP 28 KB.
Provata il 12 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.