{"id":644,"date":"2016-08-10T20:11:13","date_gmt":"2016-08-10T18:11:13","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/framework\/"},"modified":"2016-08-10T20:11:13","modified_gmt":"2016-08-10T18:11:13","slug":"framework","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/framework\/","title":{"rendered":"Framework"},"content":{"rendered":"<div class=\"main-content pre-article\">\n<p class=\"editors-note\"><strong>Note degli editori:<\/strong> Siamo lieti di condividere un estratto dal Capitolo 5 del nuovo libro di Ethan Marcotte <cite>Responsive Design: Patterns &amp; Principles<\/cite>, disponibile ora su <a href=\"http:\/\/abookapart.com\/products\/responsive-design-patterns-principles\">A Book Apart<\/a>.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<p>Nel corso degli ultimi anni, abbiamo imparato come adattare i nostri layout alle infinite tele del web. I nostri design possono essere visualizzati su schermi di ogni dimensione, in ogni momento e il responsive design \u00e8 un approccio che ci permette di gestire le forme variabili del web. Ma con tutte le sfide che stiamo affrontando e con quelle che verranno, dobbiamo cominciare a creare non solo dei pattern, ma dei <em>principi<\/em> per il responsive design, principi che ci permetteranno di concentrarsi non solo sul layout, ma sulla qualit\u00e0 del nostro lavoro.<\/p>\n<p>Se ciascuna parte della nostra interfaccia responsive \u00e8 pi\u00f9 o meno autonoma, con le sue regole di layout, bisogni del contenuto e breakpoint, allora il codice dietro al design di ciascun elemento \u00e8 molto meno importante del pensare attentamente al <em>come<\/em> e al <em>perch\u00e9<\/em> si dovrebbe adattare un elemento. In altre parole, in che modo possiamo andare oltre il modo di ragionare in colonne e righe e cominciare a parlare della qualit\u00e0 dei nostri design responsive? E come dovrebbero essere i framework che supportano tutto questo?<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Trovare le parole<\/h2>\n<p>Onestamente, non c&#8217;\u00e8 una risposta perfetta a questa domanda, ma, recentemente, un certo numero di designer e aziende hanno cominciato a condividere il vocabolario che usano per decidere in che modo e quando debbano adattare i propri design responsive. Per esempio, Vox Media pensa che il proprio contenuto esista all&#8217;interno di un fiume e, portando avanti la metafora, lo scorrere di tale contenuto possa essere interrotto in alcuni punti. Ecco come <a href=\"http:\/\/bkaprt.com\/rdpp\/05-16\/\">descrivono la front page di Vox.com<\/a>:<\/p>\n<blockquote><p>Il contenuto scorre attorno a delle \u201crocce\u201d in \u201condate\u201d, che sono moduli come potrebbe esserlo un elenco \u201cMost Commented\u201d o una riga di \u201cPopular Videos\u201d. Molti di questi comportamenti rimangono nel nuovo layout del sistema, ma la differenza principale \u00e8 il livello di contesto aggiunto. Gli elementi nel fiume sono disposti in maniera da sottolineare meglio la diversit\u00e0 di contenuti su Vox: articoli, features, video, app editoriali, card stacks, giusto per nominarne alcuni. Ciascuno di questi viene mostrato in maniera diversa a seconda del suo tipo e dei contributi vicini.<\/p><\/blockquote>\n<p>Notate come il linguaggio che usano per parlare della qualit\u00e0 dei loro layout non ruota attorno a colonne o righe. Non c&#8217;\u00e8 nemmeno una menzione alle griglie. Per Vox, il processo di design comincia con il dare priorit\u00e0 al contenuto ed evolve in un layout. Comprendendo il peso e l&#8217;importanza di ciascuna parte del contenuto che scorre nel fiume, il team di Vox pu\u00f2 generare algoritmicamente un layout responsive che riflette l&#8217;importanza dell&#8217;informazione al suo interno.<\/p>\n<p>Cominciare con un sistema astratto di colonne e righe sarebbe sbagliato per loro e, direi, per tutti i web designer. Dopo tutto, <a href=\"http:\/\/bkaprt.com\/rdpp\/05-17\/\">secondo Mark Boulton<\/a>, ci sono tre benefici fondamentali in un grid system:<\/p>\n<ul>\n<li>I grid system <strong>creano connessioni<\/strong>. Una griglia ben fatta pu\u00f2 connettere visivamente pezzi di contenuto correlati tra loro o, in maniera altrettanto importante, separare tra loro elementi non collegati. In altre parole, ci aiutano a creare delle narrazioni partendo dal layout.<\/li>\n<li>Stabilendo dei punti di allineamento predefiniti, i grid system aiutano i designer a <strong>risolvere problemi di layout<\/strong>.<\/li>\n<li>Un grid system ben progettato <strong>fornir\u00e0 dei percorsi visuali che gli occhi dei lettori potranno seguire<\/strong> e permetter\u00e0 loro di comprendere meglio la gerarchia visuale.<\/li>\n<\/ul>\n<p>Come fa notare Boulton, storicamente abbiamo creato dei grid system adottando un metodo \u201ccanvas in\u201d. Lavorando dai bordi di una pagina stampata, i designer suddividevano una pagina in un sistema di colonne e righe, e sistemavano le immagini e il testo sulla griglia in maniera piacevole, facendo aggiustamenti razionali. Ma il web non ha questi confini: dopo tutto, \u00e8 il primo vero medium fluido nel design. Come risultato, Boulton sostiene che dovremmo invece adottare un approccio \u201ccontent out\u201d per progettare le nostre griglie: creare sistemi di layout pi\u00f9 complessi partendo da pezzi di contenuto piccoli e modulari come base. E per fare ci\u00f2, Boulton propone tre principi guida:<\/p>\n<ul>\n<li><strong>Definite le relazioni partendo dal contenuto.<\/strong> Una griglia per il web dovrebbe essere definita dal contenuto, non dai limiti di una pagina immaginaria.<\/li>\n<li><strong>Usate rapporti o misure relazionali piuttosto che misure fisse.<\/strong><\/li>\n<li><strong>Legate il contenuto al device.<\/strong> Usate le media query CSS e tecniche quali il responsive web design per creare layout che reagiscano alla viewport.<\/li>\n<\/ul>\n<p>Comprendendo la forma del nostro contenuto, possiamo creare layout flessibili che supportino la connessione, non solo tra pezzi di informazione collegati, ma tra i layout e il device. Possiamo creare grid system responsive che non solo vanno bene per un numero sempre pi\u00f9 grande di schermi, ma che sembra che siano stati creati ad hoc ovunque li si guardi.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Trovare le linee<\/h2>\n<p>Ovviamente i principi sono meravigliosi ma dobbiamo ancora trovare un modo per implementarli, per tradurre questi ideali in  pattern pratici e layout responsive. Per me, questo processo \u201ccontent out\u201d comincia osservando la versione pi\u00f9 piccola di un pezzo di contenuto, poi espandendo tale elemento finch\u00e9 cominciano a vedersi le sue linee e comincia a perdere la sua forma. Quando succede, ho l&#8217;opportunit\u00e0 di fare un cambiamento: introdurre un breakpoint che ridia forma all&#8217;elemento e ne preservi l&#8217;integrit\u00e0.<\/p>\n<p>Ma prima, abbiamo bisogno di un metodo per trovare le linee di un elemento e comprendere come perda la sua forma. Per me, questo processo comincia con l&#8217;osservare quattro caratteristiche: <strong>larghezza<\/strong>, <strong>gerarchia<\/strong>, <strong>interazione<\/strong> e <strong>densit\u00e0<\/strong>.<\/p>\n<h3>Larghezza<\/h3>\n<p>La larghezza potrebbe sembrare un po&#8217; troppo auto-esplicativa. Al cambiare della larghezza di una viewport, deve cambiare la larghezza di un design responsive. Ma quando il design diventa troppo largo o troppo stretto, devono diventarlo anche gli elementi al suo interno e man mano che questi moduli si espandono o si contraggono, potrebbero esserci delle opportunit\u00e0 per aggiungere un breakpoint.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5.jpg\" border=\"0\" alt=\"Immagini dal responsive portfolio di Meagan Fisher che mostrano come diverse larghezze di schermo influenzino la tipografia.\" width=\"100%\" \/><\/p>\n<p>Nel suo impressionante portfolio responsive, Meagan Fisher aggiusta la tipografia di certi elementi, non solo il loro layout, a seconda che la loro larghezza aumenti o diminuisca.<\/p>\n<h3>Gerarchia<\/h3>\n<p>Sono sicuro che sarete d&#8217;accordo nell&#8217;affermare che la larghezza \u00e8 la caratteristica pi\u00f9 comune di un design responsive, ma non \u00e8 la sola. Al cambiare della forma di un elemento, potrebbe essere necessario cambiare anche la <em>gerarchia<\/em> degli elementi.<\/p>\n<p>Diamo una rapida occhiata a <a href=\"http:\/\/bkaprt.com\/rdpp\/05-19\/\">una pagina prodotto sul sito ecommerce responsive di Tattly<\/a>. Quando lo si guarda su schermi pi\u00f9 grandi, l&#8217;area di contenuto primaria ha due pezzi di informazione: un carosello di foto del prodotto sulla sinistra e una call to action per l&#8217;acquisto del prodotto sulla destra.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_004.jpg\" border=\"0\" alt=\"Screenshot dal sito di ecommerce responsive di Tattly, che mostra una griglia a due colonne su schermi pi\u00f9 grandi.\" width=\"100%\" \/><\/p>\n<p>Sul sito di ecommerce responsive di Tattly, il contenuto prodotto viene disposto in una piacevole griglia a due colonne sugli schermi pi\u00f9 grandi.<\/p>\n<p>Ma questa \u00e8 solo una visualizzazione di questa particolare parte del design, perch\u00e9 quando gli schermi diventano pi\u00f9 stretti, perdiamo l&#8217;abilit\u00e0 di sistemare pi\u00f9 colonne l&#8217;una accanto all&#8217;altra. Qui \u00e8 dove sorge la questione della gerarchia: in un layout a colonna singola, quale pezzo di contenuto deve apparire prima? Tattly ha optato, piuttosto correttamente, per usare le foto del prodotto come guida, ma voi potete rispondere in maniera diversa alle domande sulla gerarchia sul vostro sito.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_003.jpg\" border=\"0\" alt=\"Screenshot dal sito ecommerce responsive di Tattly, che mostra in che modo le informazioni del prodotto si spostano da due colonne a una sulle viewport pi\u00f9 strette.\" width=\"100%\" \/><\/p>\n<p>Nelle viewport pi\u00f9 strette, la gerarchia delle informazioni sul prodotto cambia da due a una colonna.<\/p>\n<p>La gerarchia \u00e8 generalmente un reminder per essere pi\u00f9 <em>coscienti della dimensione verticale<\/em> nei nostri design. Dopo tutto, abbiamo le media query min-width e max-width, ma possiamo anche avvalerci pi\u00f9 spesso delle query min-height e max-height. Penso che il menu di navigazione di <a href=\"http:\/\/bkaprt.com\/rdpp\/05-20\/\">Field Museum<\/a> bilanci meravigliosamente i layout verticale ed orizzontale.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_002.png\" border=\"0\" alt=\"Screenshot della navigazione responsive di Field Museum a larghezze strette e larghe.\" width=\"100%\" \/><\/p>\n<p>La navigazione responsive d Field Museum, che occupa l&#8217;altezza del design. Sotto a una certa larghezza, la navigazione si sposta dalla cima dello schermo per evitare il cropping.<\/p>\n<p>Su schermi pi\u00f9 grandi, la navigazione \u00e8 ancorata al lato sinistro del design e si espande per tutta l&#8217;altezza della viewport. Potete notare che stanno usando il <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/flex\">flexible box model<\/a> o <em>flexbox<\/em>, un metodo di layout CSS avanzato che vedremo pi\u00f9 avanti in questo capitolo. Ma dal momento che flexbox permette agli elementi di riempire automaticamente lo spazio a loro disposizione, man mano che il menu diventa pi\u00f9 alto o pi\u00f9 basso, gli elementi della navigazione si ridimensionano verticalmente, ma sotto una certa larghezza <em>o<\/em> altezza, il menu \u00e8 posto in cima alla pagina.<\/p>\n<p>Prestando attenzione ai bordi verticali della navigazione, Field Museum \u00e8 stato in grado di introdurre layout alternativi per essere sicuro che il contenuto all&#8217;interno del loro menu di navigazione non fosse mai celato, oscurato o troncato. In altre parole, i breakpoint che introduciamo nei nostri design responsive non sono legati alla forma dello schermo di un device. Al contrario, le nostre media query difendono l&#8217;integrit\u00e0 del contenuto che stiamo progettando.<\/p>\n<h3>Interazione<\/h3>\n<p>Il modo in cui <em>interagiamo<\/em> con un elemento pu\u00f2 cambiare con il design. I sistemi di navigazione responsive sono probabilmente l&#8217;esempio pi\u00f9 ovvio di questo. Come abbiamo visto nel Capitolo 2, i menu vengono spesso mostrati per intero nei breakpoint pi\u00f9 larghi, ma vengono celati in quelli pi\u00f9 piccoli, magari nascosti dietro a icone espandibili o a link quando lo spazio \u00e8 scarso.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_004.png\" border=\"0\" alt=\"Screenshots del sito dell'azienda di Karen McGrane, che mostra una navigazione tradizionale su schermi pi\u00f9 larghi e un display toggled su larghezze pi\u00f9 piccole.\" width=\"100%\" \/><\/p>\n<p>Il sito dell&#8217;azienda di Karen McGrane ha una navigazione dall&#8217;aspetto tradizionale nei breakpoint pi\u00f9 larghi, ma sulle viewport pi\u00f9 strette l&#8217;utente attiva la visibilit\u00e0 del menu. Stessi link, ma con un nuovo modello di interazione.<\/p>\n<p>Ma la navigazione non \u00e8 il solo tipo di contenuto che potrebbe richiedere dei cambi di interazione. Per esempio, prendete i <a href=\"http:\/\/bkaprt.com\/rdpp\/05-23\/\">tornei sportivi responsive progettati da SB Nation<\/a>. Mentre appaiono come grafici dall&#8217;aspetto complesso nei breakpoint pi\u00f9 grandi, viene mostrata una visuale pi\u00f9 semplice e pi\u00f9 lineare dei tornei sugli schermi pi\u00f9 piccoli.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5.png\" border=\"0\" alt=\"Screenshots che mostrano i tornei di SB Nation: completamente visibili sugli schermi larghi, caroselli sezione per sezione su schermi pi\u00f9 piccoli.\" width=\"100%\" \/><\/p>\n<p>Non so nulla di sport, ma so che mi piace la visualizzazione responsive dei tornei di SB Nation: grafici complessi su grandi schermi, ma un carosello sulle viewport pi\u00f9 piccole. Stesse informazioni, diverse interazioni.<\/p>\n<p>Insieme al layout semplificato, i tornei vengono presentati come caroselli nelle visualizzazioni pi\u00f9 piccole, in cui lo spazio \u00e8 prezioso. Ognuna delle quattro regioni per il torneo \u00e8 una singola slide nel carosello, permettendo all&#8217;utente di muoversi in un ciclo per i dettagli. L&#8217;informazione in entrambe gli stati visuali \u00e8 la stessa ma cambia il modello di interazione.<\/p>\n<h3>Densit\u00e0<\/h3>\n<p>Infine, la quantit\u00e0 di informazione che mostrate in un elemento potrebbe dover variare nel tempo. In altre parole, potrebbe cambiare la <em>densit\u00e0<\/em> dell&#8217;informazione. La feature del <cite>Guardian<\/cite> sugli Oscar del 2015 ne \u00e8 un esempio completo, con timeline progettate in maniera responsive che mostrano una quantit\u00e0 di dati significativa sui film. Sopra a una certa larghezza, vengono caricate le immagini thumbnail, aumentando leggermente la densit\u00e0 visuale (e informativa) della timeline.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_003.png\" border=\"0\" alt=\"Screenshots delle timeline cinematografiche responsive del Guardian, che mostrano un'immagine extra nelle visualizzazioni pi\u00f9 larghe.\" width=\"100%\" \/><\/p>\n<p>Le timeline cinematografiche responsive del <cite>Guardian<\/cite> crescono gradualmente in densit\u00e0, mostrando un&#8217;immagine extra sopra ad una certa larghezza.<\/p>\n<p>La densit\u00e0 \u00e8, come potreste aver indovinato, un&#8217;area in cui dovreste camminare molto attentamente. Come abbiamo discusso prima, rimuovere o nascondere informazioni perch\u00e9 non ci stanno pu\u00f2 essere problematico.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2016\/08\/5_002.jpg\" border=\"0\" alt=\"Screenshot della navigazione di Tattly, che nasconde i sotto-menu sugli schermi pi\u00f9 piccoli.\" width=\"100%\" \/><\/p>\n<p>Tattly nasconde completamente i suoi sotto-menu, riducendo la sua navigazione a una lista di sezioni primarie sugli schermi pi\u00f9 piccoli.<\/p>\n<p>Personalmente, penso che le timeline del <cite>Guardian<\/cite> funzionino cos\u00ec bene perch\u00e9 le immagini mostrate nei breakpoint pi\u00f9 larghi sono degli enhancement: non sono critici per la comprensione delle informazioni attorno ad essi. Avrebbero potuto progettare versioni alternative delle timeline che mostrassero immagini a tutti i breakpoint? Penso di s\u00ec, ma ritengo che questo sia un esempio meraviglioso di densit\u00e0 usata per alleggerire l&#8217;impatto visuale di un design, rimuovendo informazioni estranee senza impedire l&#8217;accesso al contenuto.<\/p>\n<p>Illustrazioni: {carlok}<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Da quando abbiamo adottato il responsive design, definendo i componenti delle interfacce, stabilendo i breakpoint e pensando in maniera content-out invece che canvas-in, abbiamo imparato che \u00e8 molto pi\u00f9 di un semplice cambiamento nelle tecniche che usiamo. Dobbiamo cambiare il modo in cui parliamo dei (e agiamo sui) principi di buon responsive design. In questo estratto dal Capitolo 5 del suo nuovo libro \u201cResponsive Design: Patterns &#038; Principles, Ethan Marcotte esplora i framework filosofici e pratici che possono guidare il nostro lavoro responsive.<\/p>\n","protected":false},"author":818,"featured_media":7000806,"comment_status":"open","ping_status":"open","template":"","categories":[151,274],"tags":[],"coauthors":[299],"class_list":["post-644","article","type-article","status-publish","has-post-thumbnail","hentry","category-numero-134-10-agosto-2016","category-responsive-design"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/users\/818"}],"replies":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/comments?post=644"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media\/7000806"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=644"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}