Cos’è un design responsive?
Un design responsive è un approccio allo sviluppo di siti web che ne permette una visualizzazione ottimale su vari tipi di dispositivi finali. Il termine design responsive è contemporaneo a quello di web mobile e si è affermato come approccio standard nel web design.
Riassunto
Il design responsive adatta layout, tipografia e immagini per garantire una visualizzazione ottimale e una UX eccellente su ogni dispositivo.
- Usa Flexbox, CSS Grid e media query per strutturare i contenuti in base al viewport.
- Impiega la tipografia fluida con
remeclamp()per assicurare leggibilità e scalabilità. - Ottimizza le immagini tramite
srcsete<picture>per migliorare i Segnali web essenziali. - Adatta la navigazione con soluzioni come il menu hamburger o la bottom navigation.
Design responsive: una panoramica
Prima dell’arrivo del web mobile, il panorama dei dispositivi finali abilitati a internet era relativamente omogeneo. Comprendeva computer portatili e desktop, i quali presentavano forti similitudini in relazione ai mezzi di input e output. Entrambi i tipi di dispositivi mettevano a disposizione dell’utente una tastiera, un mouse o un trackpad, e uno schermo con una larghezza di 1.000-2.000 pixel.
In questo contesto, non era necessario alcuno sforzo particolare per sviluppare un sito web che fosse visualizzato correttamente su un qualsiasi dispositivo. La soluzione più semplice prevedeva di limitare la larghezza di una pagina al minimo comune denominatore. Un approccio popolare era quello di visualizzare le pagine web a 800 pixel di larghezza, centrate o giustificate a sinistra. Nel caso di schermi più grandi, poteva ricorrere qualche spazio bianco in più, nonostante ciò, le pagine venivano lette facilmente su ogni dispositivo.
Questa situazione è cambiata con l’arrivo dei dispositivi mobili e la significativa diversificazione dei dispositivi finali. Mentre gli schermi dei primi dispositivi con accesso a internet erano simili tra loro, gli schermi delle tecnologie moderne come smartphone, tablet e simili differiscono sotto molti aspetti: i dispositivi attuali coprono larghezze dello schermo da 320 pixel fino a ben oltre 4.000 pixel. Oltre alle semplici dimensioni in pixel, è però necessario considerare anche la singola risoluzione fisica in “pixels per inch” (ppi) dei display Retina, così come il rapporto dei pixel in base al dispositivo, device pixel ratio (DPR). Inoltre, la navigazione non avviene necessariamente con il mouse, ma anche con il dito.
| Schermi più piccoli | Schermi più grandi | Fattore | |
|---|---|---|---|
| Prima del web mobile | circa 1.000 pixel | circa 2.000 pixel | circa 2 |
| Dopo il web mobile | circa 320 pixel | > 4.000 pixel | > 10 |
Un sito web responsive si adatta allo spazio disponibile su un determinato schermo. Il termine “area libera utilizzabile” è spesso applicato in questo contesto. Un sito web dovrebbe avere una buona visualizzazione su tutti i dispositivi e assicurare un’esperienza utente (UX) ottimale.
Il design responsive copre una vasta gamma di tecnologie e approcci combinati che permettono lo sviluppo di un sito web completamente responsive. Questi includono:
- Elementi HTML5 quali
picturee attributi qualisrcsetesizes - Media query di CSS
- Unità CSS
- L’utilizzo di diversi asset da un’unica fonte
- L’approccio mobile first
Oltre ai classici smartphone e tablet, stanno acquisendo sempre più importanza i dispositivi pieghevoli e con doppio schermo. Questi dispositivi possono modificare dinamicamente la superficie del display, ad esempio quando vengono aperti o quando si passa da una visualizzazione a singolo schermo a una a schermo diviso. Per il web design responsive questo significa che i layout non devono solo adattarsi a diverse dimensioni dello schermo, ma anche a improvvisi cambiamenti dell’area disponibile durante l’utilizzo. I siti web moderni e responsive dovrebbero quindi essere abbastanza flessibili da presentare i contenuti in modo coerente e facile da usare anche al variare dei formati fisici del dispositivo.
- Editor facile e intuitivo con supporto IA
- Immagini e testi d'effetto in pochi secondi
- Dominio, indirizzo e-mail e certificato SSL inclusi
Perché si dovrebbe progettare un sito web responsive?
Lo sviluppo di un sito web responsive offre molti vantaggi. L’aspetto principale da considerare è l’esperienza utente (UX). In teoria, è possibile implementare una buona UX senza un design responsive, ma ciò richiederebbe un sito mobile apposito o l’uso di JavaScript. Tuttavia, questo tipo di approccio è significativamente più complesso rispetto al design responsive basato su CSS e richiede più manutenzione delle diverse versioni del sito.
Un sito web responsive per un design ottimale
Il design di un sito web gioca un ruolo importante nella percezione dei visitatori e delle visitatrici riguardo alle informazioni presentate sul sito. Un buon design riflette l’identità dell’organizzazione che si nasconde dietro il sito web e aiuta a creare una connessione tra l’utente e il marchio. I visitatori e le visitatrici dovrebbero avere un’esperienza positiva quando visitano un sito web. Di seguito presentiamo due esempi che dimostrano l’importanza del design responsive per l’esperienza utente:
- Immagina che un titolo riempia l’intero schermo su un dispositivo mobile. Tuttavia, nella versione desktop, lo stesso titolo avente la stessa dimensione di carattere non risalta affatto. Per poter attirare l’attenzione del visitatore o della visitatrice, sul desktop il titolo dovrebbe essere visualizzato in una dimensione maggiore.
- Immagina un sito web per un blog, in cui appare una barra laterale accanto agli articoli. La barra laterale contiene dei link ad altri articoli con delle miniature. Nella versione desktop, la barra laterale limita la larghezza degli articoli, rendendo la pagina più facile da leggere. Tuttavia, su un dispositivo mobile, questo elemento occuperebbe quasi la metà dello schermo. Il layout deve quindi essere diverso sui dispositivi mobili sui quali la barra laterale dovrà apparire sotto gli articoli.
Un sito web responsive per un’esperienza utente (UX) ottimale
Generalmente un sito web non responsive verrà visualizzato sullo schermo di un dispositivo mobile esattamente come è visualizzato su un desktop, sarà semplicemente più piccolo. Ciò costringe l’utente a ingrandire alcune parti della pagina per visualizzarle correttamente. Offrire una versione ottimizzata permette quindi un’esperienza utente migliore. Di seguito alcuni esempi:
- Nella versione desktop, una voce su un sito web può essere selezionata usando il mouse. Tuttavia, sui dispositivi mobili si naviga con le dita. La voce da selezionare deve quindi essere più grande sulla versione mobile e bisognerà lasciare più spazio tra gli elementi.
- Immagina di avere un modulo sul tuo sito. Normalmente grazie alla proprietà CSS del margine interno (
padding), il testo contenuto nel modulo è facilmente leggibile e non tocca i bordi del modulo stesso. Un margine interno di 20 pixel a sinistra e a destra è la norma e si presenta bene su degli schermi grandi. Tuttavia, su un dispositivo mobile con soli 320 pixel di larghezza dello schermo si perdono 40 dei 320 pixel (cioè un ottavo della larghezza). Se il modulo ha anche un margine esterno (margin), diciamo altri 20 pixel per lato, sul dispositivo mobile va perso il 25 percento dello spazio disponibile. Per evitarlo, sui dispositivi mobili i margini andrebbero ridotti.
Sito web non responsive: quali sono le possibili conseguenze?
Sempre più utenti navigano su internet usando un dispositivo mobile. Scegliere di non utilizzare un sito web responsive comporta degli svantaggi significativi. I più noti sono:
- Tassi di conversione sfavorevoli e alta frequenza di rimbalzo a causa di un design subottimale e di una pessima esperienza utente.
- Un posizionamento svantaggioso nei motori di ricerca poiché Google valuta, tra le altre cose, la facilità d’uso dai dispositivi mobili, i segnali web essenziali e le dimensioni degli elementi touch.
- Prestazioni scarse dovute al caricamento di risorse non ottimizzate (misurabili, ad esempio, tramite Largest Contentful Paint (LCP) e Interaction to Next Paint (INP).
Utilizza strumenti specializzati per testare il design responsive per verificare la compatibilità mobile del tuo sito web.
Segnali web essenziali: metriche dell’esperienza utente
Per valutare in modo oggettivo la reale esperienza utente, Google utilizza i cosiddetti Segnali web essenziali. Si tratta di metriche di performance standardizzate che misurano la velocità di caricamento dei contenuti, la stabilità del layout e la reattività di un sito web agli input dell’utente. I principali segnali web essenziali sono:
- Largest Contentful Paint (LCP): misura quanto tempo impiega il più grande elemento di contenuto visibile a essere renderizzato (obiettivo: ≤ 2,5 s)
- Interaction to Next Paint (INP): misura la reattività di una pagina alle interazioni degli utenti (obiettivo: ≤ 200 ms)
- Cumulative Layout Shift (CLS): valuta se i contenuti si spostano in modo imprevisto durante il caricamento (obiettivo: ≤ 0,1)
I siti web non progettati in modo responsive ottengono spesso risultati peggiori in questi valori, ad esempio a causa di file di immagini troppo grandi, contenuti caricati in un secondo momento o adattamenti del layout che non sono ottimizzati per i dispositivi mobili.
Strumenti per l’analisi dei segnali web essenziali
I segnali web essenziali possono essere misurati con diversi strumenti. I seguenti sono particolarmente diffusi:
- Google PageSpeed Insights: analizza singole pagine e combina i dati sul campo degli utenti reali con i dati di laboratorio
- Google Lighthouse: integrato negli Strumenti per sviluppatori di Chrome e adatto ad analisi dettagliate delle prestazioni
- Google Search Console: mostra dati aggregati dei segnali web essenziali per interi siti web e identifica gli URL problematici
Questi strumenti aiutano a individuare in modo mirato i punti deboli e a verificare come gli adattamenti responsive influiscano concretamente sull’esperienza utente.
Quali aspetti dello sviluppo web sono influenzati da un design responsive?
Un design responsive include vari approcci e tecnologie. Di norma esistono varie soluzioni per diversi scenari che possono sorgere. Lo sviluppo è ancora in continua evoluzione.
Layout responsive
Fin dagli albori di internet, l’implementazione di layout complessi sui siti web ha costituito una scienza. HTML ha vari tipi di elementi: block, inline e inline-block. Gli elementi a blocco occupano l’intera larghezza disponibile e si dispongono uno sotto l’altro. Gli elementi inline occupano solo la larghezza effettivamente richiesta dal loro contenuto e si posizionano uno accanto all’altro. Di seguito una panoramica dei tipi di elementi più importanti per un web design responsive:
| Tipo di elemento | Larghezza | Flusso dell’elemento |
|---|---|---|
block
|
Tutta la larghezza disponibile o quella assegnata | Colonna |
inline
|
Larghezza degli elementi che contiene | Riga |
inline-block
|
Larghezza degli elementi contenuti o quella assegnata | Riga |
flex
|
Tutta la larghezza disponibile | Riga o colonna |
grid
|
Tutta la larghezza disponibile | Layout complesso |
In passato, per disporre i contenuti uno accanto all’altro si utilizzavano layout basati su tabelle o float. Oggi questi approcci sono considerati superati. I layout responsive moderni si basano quasi esclusivamente su Flexbox CSS e CSS Grid. Flexbox è particolarmente adatto a layout monodimensionali, come liste orizzontali o verticali, mentre CSS Grid viene utilizzato per strutture di pagina complesse e bidimensionali.
Un esempio al riguardo: immagina una pagina con quattro elementi di anteprima per i post di un blog. Gli elementi di anteprima contengono ciascuno un’immagine, un’intestazione, un teaser e il pulsante “continua a leggere”. Con Flexbox, è possibile implementare facilmente il seguente layout responsive:
- Visualizzazione su uno schermo grande: tutti gli elementi dell’anteprima appaiono uno accanto all’altro in una fila. Ogni elemento occupa il 25% dello spazio disponibile.
- Visualizzazione su uno schermo medio: gli elementi appaiono uno accanto all’altro in due file contenenti ciascuno due elementi. Ogni elemento occupa il 50% dello spazio disponibile.
- Visualizzazione su uno schermo piccolo: tutti gli elementi appaiono uno sotto l’altro in una riga. Ogni elemento occupa il 100% dello spazio disponibile.
Layout responsive con CSS Grid e media query
I layout moderni e responsive oggi possono essere realizzati in molti casi senza ricorrere a framework CSS aggiuntivi. I moduli di layout nativi come CSS Grid e Flexbox sono ampiamente supportati e permettono strutture flessibili e facili da manutenere. Uno strumento centrale in questo contesto sono le CSS media queries. Grazie a queste è possibile applicare regole CSS in base alle caratteristiche del dispositivo di output, in particolare alla larghezza del viewport. Le media query rispondono quindi alla domanda in quali condizioni un determinato layout debba essere attivo, ad esempio a partire da una certa dimensione dello schermo o con un particolare orientamento del dispositivo.
Consideriamo l’esempio di una pagina con quattro elementi di anteprima per gli articoli del blog. Ogni elemento contiene un’immagine di anteprima, un titolo, un breve testo e un link all’articolo completo. L’obiettivo è variare il numero di elementi affiancati in base alla larghezza disponibile dello schermo.
Struttura HTML:
<div class="blog-grid">
<article class="blog-preview">…</article>
<article class="blog-preview">…</article>
<article class="blog-preview">…</article>
<article class="blog-preview">…</article>
</div>htmlImplementazione CSS con CSS Grid:
.blog-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.5rem;
}
/ *Schermi di medie dimensioni* /
@media screen and (min-width: 600px) {
.blog-grid {
grid-template-columns: repeat(2, 1fr);
}
}
/ *Schermi di grandi dimensioni* /
@media screen and (min-width: 1024px) {
.blog-grid {
grid-template-columns: repeat(4, 1fr);
}
}cssSenza media query viene innanzitutto definito un layout semplice per i piccoli schermi. A partire da una larghezza di 600 pixel vengono visualizzate due colonne, da 1.024 pixel su quattro. Questo approccio segue il principio mobile first e garantisce che i contenuti restino chiari sui display ridotti e siano sfruttati al meglio sugli schermi più grandi. Le media queries reagiscono sempre al viewport, cioè alla dimensione della finestra del browser o dello schermo.
Container Queries: responsive design a livello di componente
Mentre le media query reagiscono alla dimensione del viewport, le CSS container query intervengono in un altro punto. Permettono di applicare gli stili in base alla dimensione di un contenitore circostante, indipendentemente dalla reale dimensione dello schermo. In questo modo gli elementi non reagiscono più all’intera finestra del browser, ma allo spazio che hanno effettivamente a disposizione all’interno di un layout. Questo è particolarmente rilevante nei layout modulari, in cui i componenti vengono utilizzati più volte e in contesti differenti, ad esempio sia nella stretta barra laterale sia nell’ampio contenuto principale. Con le sole media query è possibile rappresentare questi scenari solo in modo limitato.
Un esempio tipico è un elemento di anteprima per articoli. Se si trovano in una barra laterale stretta, immagine e testo devono essere visualizzati uno sotto l’altro. Nell’area principale, con più spazio, immagine e testo possono invece essere mostrati affiancati. Le container queries consentono proprio questo adattamento in base al contesto, senza dover definire breakpoint aggiuntivi per ogni variante di layout. Per prima cosa il contenitore padre viene definito come cosiddetto “query container”:
Implementazione CSS con CSS Grid:
.preview-container {
container-type: inline-size;
}cssIl componente di anteprima riceve un layout di base semplice, ottimizzato per spazi ridotti:
.article-preview {
display: flex;
flex-direction: column;
gap: 1rem;
}cssSuccessivamente, tramite una container query, viene definito che il layout cambia non appena il contenitore supera una determinata larghezza:
@container (min-width: 500px) {
.article-preview {
flex-direction: row;
}
}cssIl componente si adatta così automaticamente allo spazio disponibile del suo contenitore. Che si trovi in una barra laterale o nell’area principale non ha più importanza. Ciò che conta è solo la larghezza del contenitore, non quella del viewport. Le container query supportano quindi un approccio basato sui componenti nel design responsive e integrano in modo sensato le classiche media query. Nei progetti moderni le due tecniche vengono spesso combinate, per realizzare sia cambi di layout globali sia adattamenti molto granulari delle singole componenti.
Tipografia e contenuto del testo responsive
Per un’esperienza utente ottimale, la dimensione dei caratteri degli elementi testuali di un sito web deve essere adattata alla superficie dello schermo disponibile e ai contesti d’uso. Oltre alla pura leggibilità, svolgono un ruolo centrale anche fattori come scalabilità, accessibilità e stabilità del layout. A questo scopo, nel web design responsive vengono utilizzate diverse tecniche tipografiche.
La componente di base è l’elemento CSS rem (“root element”), che collega proporzionalmente la dimensione del carattere di un elemento all’elemento HTML root. Per scalare coerentemente il testo, puoi semplicemente adattare la dimensione del carattere dell’elemento root usando i breakpoint di CSS.
html {
font-size: 16px;
}
h1 {
font-size: 3rem;
}cssQuesto approccio mobile first si può combinare in modo efficace con le media query per aumentare moderatamente la dimensione base del testo sugli schermi più grandi:
@media screen and (min-width: 30em) {
html {
font-size: 18px;
}
}cssNei layout moderni si utilizza sempre più spesso una tipografia fluida, che si adatta in modo continuo allo spazio disponibile. A questo scopo oggi si preferisce usare la funzione CSS clamp(). Essa consente di definire una dimensione minima, una preferita e una massima del font, senza bisogno di breakpoint aggiuntivi.
h1 {
font-size: clamp(2rem, 4vw, 3.5rem);
}cssIn questo modo il testo rimane ben leggibile sui display piccoli, cresce dinamicamente sugli schermi più grandi e non supera mai i limiti definiti. clamp() è oggi considerata la soluzione migliore per la tipografia responsive.
Immagini responsive
Oltre al layout e alla tipografia, nel design responsive l’attenzione è rivolta in particolare anche alla visualizzazione ottimizzata delle immagini. Ovviamente non avrebbe senso caricare un’immagine con una lunghezza di 1.920 pixel su uno schermo largo solo 400 pixel. Per questo motivo, innanzitutto l’immagine deve essere ridimensionata nel browser, utilizzando una discreta quantità di potenza di calcolo. D’altra parte, la dimensione del file di un’immagine aumenta in base ai pixel contenuti nell’immagine.
Un’immagine di dimensioni di circa 1.920x1.080 pixel occuperà uno spazio quattro volte superiore rispetto a una di 960x540 pixel. Di conseguenza, anche il download di un’immagine di questo tipo su un dispositivo mobile richiede più tempo. Nel complesso, questo ha un effetto molto negativo sulle prestazioni e sulla facilità d’uso di un sito web, se le immagini non sono ottimizzate in modo responsive.
| Dimensioni immagine | Dimensione schermo | Effetto |
|---|---|---|
| Immagine piccola | Schermo grande | L’immagine si carica rapidamente ma appare sgranata |
| Immagine grande | Schermo piccolo | L’immagine viene caricata lentamente, appare nitida e comporta una performance non ottimale sul sito web |
| Immagine grande | Schermo grande | L’immagine viene caricata lentamente, appare nitida, la performance è ottimale |
| Immagine piccola | Schermo piccolo | L’immagine viene caricata rapidamente, appare nitida, la performance è ottimale |
Per le immagini responsive sono stati introdotti gli attributi srcset e sizes, con i quali il browser può scegliere la risorsa d’immagine più adatta a seconda del contesto. In questo caso si parla anche di “asset”. Ogni singolo file è collegato alla verifica di una media feature CSS. In questo modo il browser può caricare, dall’elenco di asset disponibili, quello più ottimale per il singolo dispositivo.
Di seguito ti presentiamo un breve esempio. Il codice HTML qui riportato definisce un’immagine per la quale vi sono due asset definiti tramite srcset: uno con una lunghezza di 480 pixel e l’altro con una lunghezza di 800 pixel. Tramite l’utilizzo di sizes viene anche determinato che l’immagine da 480 pixel dovrebbe essere usata su schermi con una larghezza fino a 600 pixel. Altrimenti, il browser dovrebbe caricare l’immagine da 800 pixel.
<img
src="bild-800w.jpg"
srcset="bild-480w.jpg 480w,
bild-800w.jpg 800w"
sizes="(max-width: 600px) 480px,
800px"
alt="Descrizione dell’immagine">htmlIl vantaggio decisivo di questo approccio è che è il browser a decidere quale variante dell’immagine caricare. Gli sviluppatori e le sviluppatrici devono solo mettere a disposizione dimensioni di immagine adeguate, senza però controllare manualmente la selezione.
Tradizionalmente, gli schermi si presentavano con una larghezza maggiore dell’altezza. Al giorno d’oggi invece, gli schermi degli smartphone sono più alti che larghi. Pertanto, le immagini in formato orizzontale appaiono relativamente piccole su questi schermi o su qualsiasi altro schermo in formato verticale. Per ottenere un risultato migliore, è consigliabile utilizzare un’immagine quadrata o verticale appositamente adatta. La scelta di diversi tagli di un’immagine viene definita “art direction”. Questo si può realizzare con l’elemento <picture>. L’elemento <picture> consente la definizione complessa di più immagini equivalenti per diversi casi d’uso.
Di seguito riportiamo un ultimo esempio. Il seguente codice HTML definisce un elemento <picture> che imposta vari asset sia per il formato orizzontale che per quello verticale. In entrambi i casi, esistono diverse versioni ottimizzate per rispondere a delle dimensioni di schermo variabili:
<picture>
<source
media="(orientation: landscape)"
srcset="image-small-landscape.png 320w,
image-large-landscape.png 1200w"
sizes="(min-width: 60rem) 80vw,
(min-width: 40rem) 90vw,
100vw">
<source
media="(orientation: portrait)"
srcset="image-small-portrait.png 160w,
image-large-portrait.png 600w"
sizes="(min-width: 60rem) 80vw,
(min-width: 40rem) 90vw,
100vw">
<img src="image-small.png" alt="Image description">
</picture>htmlIn questo modo puoi assicurarti che un soggetto venga mostrato con la stessa efficacia sia sui piccoli display verticali sia sugli schermi di grandi dimensioni.
Oltre alla risoluzione corretta, oggi anche il formato dell’immagine gioca un ruolo importante. I formati classici come JPEG o PNG vengono sempre più spesso integrati o sostituiti da formati moderni ed efficienti:
- WebP: buona compressione con ampia compatibilità tra i browser
- AVIF: compressione molto elevata con qualità dell’immagine eccellente
Questi formati riducono sensibilmente la dimensione dei file e contribuiscono in modo misurabile a tempi di caricamento migliori.
Navigazione responsive
La navigazione è uno degli elementi di controllo principali di un sito web e rappresenta una sfida particolare nel design responsive. Tradizionalmente, la navigazione di un sito è mostrata nella parte superiore della pagina, di solito sotto forma di lista orizzontale dei menu con dei sottomenu che si aprono al passaggio del mouse. Questo tipo di navigazione è chiaramente inadatta per i dispositivi mobili, dato che non vi è abbastanza spazio e non è possibile utilizzare il mouse.
Ci sono vari approcci per affrontare la navigazione sui dispositivi mobili. Sono tutti poco ingombranti e non richiedono l’utilizzo di un mouse. L’attenzione dell’utente è spesso diretta alla navigazione con un’animazione. Gli approcci più popolari per una navigazione responsive includono:
- L’icona del “menu hamburger” (le tre linee orizzontali parallele): questo elemento viene selezionato per attivare il menu.
- La navigazione “off canvas”: il menu scorre dal bordo dello schermo e spinge il contenuto corrente dello schermo su un lato.
Nella pratica vengono però utilizzati anche altri modelli di navigazione consolidati, che offrono vantaggi diversi a seconda del contesto d’uso. Tra questi c’è la bottom navigation, in cui i punti di navigazione principali sono collocati nella parte inferiore dello schermo e risultano così facilmente raggiungibili con il pollice. I menu “Priority+“ danno priorità ai punti di navigazione importanti e spostano in modo dinamico le voci meno rilevanti in un sottomenu. Per i siti web di grandi dimensioni si utilizzano inoltre mega menu ottimizzati per il touch, che garantiscono una struttura chiara anche su tablet più grandi e dispositivi ibridi.
Risparmia tempo e denaro: affida la creazione del tuo sito web ai nostri esperti.

