Il responsive design è un approccio alla creazione di interfacce web che si adattano alle dimensioni e alle capacità del dispositivo che le visualizza, utilizzando layout fluidi, immagini flessibili e media query CSS per ridisporre un unico codice sorgente su diverse dimensioni dello schermo. Introdotto come pratica specifica da Ethan Marcotte nel 2010, ha sostituito il precedente approccio che prevedeva la creazione di siti web separati per desktop e dispositivi mobili, ed è ora lo standard di riferimento per praticamente tutti i progetti web.
Il suo principale vantaggio è quello di mantenere un'unica implementazione anziché diverse. I siti mobile separati divergono nel tempo, accumulano incongruenze, complicano l'analisi e l'indicizzazione dei motori di ricerca e raddoppiano il costo di ogni modifica. Un'implementazione responsive mantiene unificati contenuti, URL e funzionalità, il che si allinea anche al modo in cui i motori di ricerca indicizzano e classificano le pagine, poiché l'indicizzazione mobile-first valuta la visualizzazione mobile dello stesso URL.
L'equivoco comune è che "responsive" significhi solo che un layout non si deforma. Ridisporre le colonne in una pila in una finestra di visualizzazione stretta è il minimo, non l'obiettivo. La vera responsività tiene conto del diverso contesto, delle diverse capacità e degli intenti associati ai diversi dispositivi: aree di interazione tattile dimensionate per le dita anziché per i cursori, schemi di navigazione adatti a schermi piccoli anziché a menu compressi da desktop, priorità dei contenuti che posiziona il materiale più importante per primo quando tutto è disposto verticalmente e moduli che utilizzano tipi di input e tastiere appropriati.
Le prestazioni sono il punto debole delle implementazioni responsive, che spesso si rivelano inefficaci nella pratica. Un layout che si adatta visivamente, pur scaricando immagini di dimensioni desktop, pacchetti JavaScript completi e componenti non necessari, genera una pagina dall'aspetto corretto ma con prestazioni scadenti proprio sui dispositivi e sulle connessioni meno in grado di gestire tale carico. Immagini responsive con set di sorgenti appropriati, caricamento condizionale dei componenti non visualizzati su schermi di piccole dimensioni e differimento del caricamento delle risorse non critiche sono gli elementi che rendono questo approccio efficace sul campo, e non solo in un browser ridimensionato su un desktop.
Testare un'applicazione responsive richiede dispositivi reali, non solo il ridimensionamento del browser. Gli emulatori non riproducono l'imprecisione del tocco, le reali condizioni di rete, i limiti di memoria dell'hardware di fascia media o il modo in cui le tastiere di sistema e la barra degli strumenti del browser occupano lo spazio verticale. Molti dei difetti più comuni, tra cui input oscurati dalla tastiera, elementi che occupano gran parte di uno schermo piccolo e overflow orizzontale causato da un singolo elemento di grandi dimensioni, sono invisibili nell'emulazione desktop e immediatamente evidenti su un telefono.
La progettazione responsive deve tenere conto anche del ridimensionamento del testo e dello zoom, aspetti spesso trascurati e causa comune di problemi di accessibilità. Un layout creato con dimensioni fisse in pixel potrebbe adattarsi correttamente a diverse larghezze dello schermo, ma bloccarsi completamente quando un utente aumenta la dimensione predefinita del testo del browser o ingrandisce la pagina al 200%, un'impostazione che un numero considerevole di persone utilizza in modo permanente. I contenuti che fuoriescono dai contenitori, vengono tagliati o richiedono lo scorrimento orizzontale in queste condizioni non soddisfano né gli standard di usabilità né quelli di accessibilità. Testare con dimensioni del testo maggiori e livelli di zoom elevati richiede pochi minuti e permette di individuare una tipologia di difetti che i test a larghezza fissa non rilevano, poiché i due vincoli sollecitano il layout in modi diversi.
Poiché la reattività si estende al layout, alla strategia dei contenuti e alla distribuzione, raramente viene migliorata regolando solo i breakpoint. progettazione del prodotto L'approccio duraturo consiste nel definire il layout, la spaziatura e il comportamento dei componenti attraverso le viewport all'interno di un sistema di progettazione in modo che le nuove pagine ereditino il comportamento corretto per impostazione predefinita. Il lato delle prestazioni appartiene a prestazioni web funziona, poiché la differenza tra un sito responsive che converte su dispositivi mobili e uno che non lo fa risiede solitamente nel peso e nella strategia di caricamento, piuttosto che nel layout.