Passa al contenuto principale

Piano

Il Progetto​

Pianoforte interattivo sviluppato con CSS responsive, in cui il numero di tasti si adatta automaticamente alle dimensioni dello schermo tramite media query.

Codice Sorgente​

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Piano</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="piano">
<img class="logo" src="https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg" alt="freeCodeCamp Logo" />
<div class="keys">
<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>

<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>

<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
<div class="key black--key"></div>
</div>
</div>
</body>
</html>

L’Esperienza di Sviluppo​

È stato molto rapido e allo stesso tempo estremamente utile dal punto di vista del responsive (non a caso il corso si chiama Responsive Web Design). Infatti, il numero di tasti del pianoforte varia in base alle dimensioni dello schermo.

Il collegamento con Refactoring UI​

Ho collegato questo progetto a un concetto fondamentale di Refactoring UI che sto studiando: le proporzioni perfette cambiano in base al contesto.

La rivelazione: non basta “rimpicciolire tutto” per il mobile. Ogni schermo ha le SUE proporzioni ottimali.

Il principio scoperto​

❌ Pensiero sbagliato: «Se desktop ha una proporzione di 2,5x, mobile deve avere 2,5x»

✅ Pensiero corretto: «Ogni schermo ha le SUE proporzioni ottimali»

L’analogia che mi ha colpito​

È come la differenza tra parlare in una stanza grande e in una stanza piccola:

  • Desktop (stanza grande): urli per il titolo (48px), parli normalmente per il testo (16px)
  • Mobile (stanza piccola): parli forte ma non urli per il titolo (24px), sussurri per il testo (14px)

Esempio concreto dal progetto​

/* Desktop - molto spazio disponibile */
#piano { width: 992px; }
.keys { width: 949px; }

/* Mobile - spazio limitato */
@media (max-width: 768px) {
#piano { width: 358px; }
.keys { width: 318px; }
}

Non è solo “più piccolo”, è proporzionalmente diverso per ogni contesto.

Cosa Ho Imparato​

  • Media query per il responsive design
  • Float e positioning per il layout dei tasti
  • Pseudo-elementi (::after) per creare i tasti neri
  • Il principio delle proporzioni contestuali di Refactoring UI
  • Overflow hidden per gestire il layout

Riflessione​

Questo progetto ha consolidato una comprensione fondamentale: il responsive design non è solo una questione tecnica, ma di proporzioni intelligenti che si adattano al contesto d’uso.


Prossimo Progetto: Technical Documentation Page (Certification Project)