
La nav col nastro di carta
Navigazione, SVG, 3D, Hover
NuovaGratis
La card di una camera in un piccolo albergo, con la camera disegnata come la pianta di un architetto: muri neri, letto, scrivania, poltrona, bagno, l’arco della porta e la macchia di sole della finestra. Col puntatore sopra (o col focus, o con un tocco) la pianta si inclina e gira, i muri salgono su una molla e i mobili dopo di loro, e la camera si alza in assonometria coi due muri vicini tagliati bassi come in un plastico. Attraverso il disegno il puntatore sposta il sole e l’ora; scegliendo un’altra camera ogni muro e ogni mobile scivola al suo posto nella nuova, alla stessa scala.
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 card that stands up</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/archivo@5.3.0/standard.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the card of a room in a small hotel, with the room drawn as an architect's plan: black walls, the bed, the
desk, the bathroom, the swing of the door and the patch of sun from the window. With the pointer over it (or
the focus, or a tap) the plan tips back and turns, the walls rise out of it and the furniture after them,
and the room stands up in axonometric, the two near walls cut low so you can see in. Moving across the
drawing moves the sun. Choosing another room, every wall and every piece of furniture slides to its new
place. The drawing is projected and drawn by the script at every frame -->
<article class="room" aria-labelledby="room-name" data-room>
<button class="plan" type="button" aria-pressed="false" data-plan data-autoclic>
<svg class="plan__svg" aria-hidden="true" data-svg></svg>
<span class="plan__view" aria-hidden="true" data-view>Plan</span>
<span class="plan__sun" aria-hidden="true" data-sun-label>Sun at 10:30</span>
<span class="sr" data-plan-label>Show the room in 3D</span>
</button>
<div class="info">
<div class="info__head">
<h2 class="info__name" id="room-name" data-name>Garden double</h2>
<p class="info__price"><span data-price>€180</span><span class="info__night"> / night</span></p>
</div>
<p class="info__facts"><span data-area>22</span> m² · <span data-guests>Sleeps 2</span> · <span data-outlook>Window on the garden</span></p>
<div class="kinds" role="radiogroup" aria-label="Room" data-kinds></div>
<a class="book" href="#room-name" data-book>
<span class="book__word">Check dates</span>
<svg viewBox="0 0 18 12" aria-hidden="true"><path d="M1 6h15M11.5 1.5 16 6l-4.5 4.5" /></svg>
</a>
</div>
<p class="sr" aria-live="polite" data-live></p>
</article>
</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.
47 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 card della camera che si alza» da Animorio e adattala al mio sitoOgni camera è una pianta in metri con gli stessi pezzi (la stanza, il bagno, il letto, la scrivania, la seduta, la finestra, la porta). A ogni fotogramma la pianta diventa un elenco di scatole: i muri di 18 centimetri divisi intorno alla finestra (davanzale e architrave) e alla porta, i due muri sottili del bagno, i mobili con la loro altezza vera. Così una camera si trasforma nell’altra interpolando i numeri.
Un punto (x, y, z) gira attorno alla verticale di TURN gradi e poi la pianta si inclina di TILT: X = x·cos a − y·sin a, Y = (x·sin a + y·cos a)·cos e − z·sin e. Con e = 0 è la pianta, e le facce laterali hanno area zero. La scala in pixel per metro viene dalla camera più grande in piedi ed è la stessa per tutte.
Per ogni scatola si disegnano solo le facce la cui normale guarda verso l’occhio (il vettore sin e·sin a, sin e·cos a, cos e nelle coordinate della stanza): le teste dei muri in nero come un taglio, i fianchi in due grigi. L’ordine: i muri lontani, poi i mobili dal fondo in avanti, poi i muri vicini, che restano alti CUT metri come in un plastico.
L’inclinazione, i muri, i mobili e il cambio di camera sono quattro molle sul ticker di GSAP, in quattro sotto-passi col passo limitato a 1/30 di secondo. Alzandosi la pianta si inclina, i muri partono quando l’inclinazione ha passato il 42% e i mobili quando i muri sono a metà; abbassandosi vanno giù prima mobili e muri e la pianta torna piatta per ultima. I muri hanno la molla SPRING, che passa il segno.
La macchia di sole è un parallelogramma sul pavimento che parte dalla finestra a 55 centimetri dal muro e arriva a due metri, inclinato secondo l’ora: la posizione orizzontale del puntatore sul disegno va dalle 8:00 alle 17:00, scritte in alto a destra a passi di dieci minuti.
Il disegno è un button con aria-pressed: il focus da tastiera alza la camera come il mouse, Invio la fissa o la rimette in pianta, le frecce destra e sinistra spostano il sole. Le camere sono un radiogroup con frecce, Home e End. Al telefono un tocco alza la camera e la lascia in piedi mentre si scelgono le camere; il punto del tocco decide l’ora.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
ROOMS | script.js | [{ name: 'Garden double', short: 'Double', area: 22, guests: 2, view: 'Window on the garden', price: 180 }, …] | Le camere in vendita: il nome, il nome corto per la scelta, i metri quadri, i posti letto, la vista e il prezzo a notte. Al massimo tre (le piante sono tre). |
TILT | script.js | 52 | Quanto si inclina all’indietro la pianta quando la camera si alza, in gradi. |
TURN | script.js | -32 | Quanto gira la pianta, in gradi (col segno opposto gira dall’altra parte). |
WALL | script.js | 2.6 | Quanto sono alti i muri, in metri. |
CUT | script.js | 0.6 | Quanto restano alti i due muri vicini, in metri, per guardare dentro. |
SPRING | script.js | [140, 0.5] | La molla dei muri: quanto è rigida e quanto è frenata (1 = senza rimbalzi). |
CURRENCY | script.js | '€' | Il segno davanti al prezzo. |
Per la scheda di una camera d’albergo, di un appartamento in affitto, di una casa vacanze o di un ufficio da affittare; anche per un immobile in vendita o per uno studio di architettura che mostra i suoi interni. Funziona dove la gente vuole capire come è fatto davvero uno spazio prima di prenotarlo.
La card è larga 340 pixel, o lo schermo meno 32, e la scala del disegno si ricalcola sulla sua misura. Il passaggio del mouse non c’è: un tocco sul disegno alza la camera e la lascia in piedi, un altro la rimette in pianta, e il punto toccato decide l’ora del sole. Le molle e la coreografia sono quelle del computer.
Niente molle e niente rotazione in movimento: la pianta diventa assonometria (e torna pianta) di colpo, dietro una breve dissolvenza, e il cambio di camera fa lo stesso. Il sole si sposta subito, prezzo e metri quadri cambiano senza contare.
GSAP 3.15.0, Archivo (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 11 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.