{"id":320,"date":"2012-11-07T15:34:23","date_gmt":"2012-11-07T14:34:23","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/la-griglia-infinita\/"},"modified":"2012-11-07T15:34:23","modified_gmt":"2012-11-07T14:34:23","slug":"la-griglia-infinita","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/la-griglia-infinita\/","title":{"rendered":"La griglia infinita"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2012\/11\/n63grid-web.png\" border=\"0\" align=\"left\" \/>I grid system sono uno strumento fondamentale della grafica, ma sono sempre stati progettati per oggetti con dimensioni fisse. Finora. Oggi progettiamo per un medium che non ha dimensioni fisse, che \u00e8 in grado di cambiare forma per meglio adattarsi all&#8217;ambiente, un medium capace di mostrare un unico layout su uno smartphone, su un cartellone a Times Square e su tutto quello che si trova tra questi due estremi.<\/p>\n<p>Progettiamo per una tela infinita e perci\u00f2 abbiamo bisogno di grid system infiniti.<\/p>\n<p>Solitamente si pensa al responsive layout come ad un insieme di layout: mobile, tablet, desktop, etc. Il problema sono le dimensioni tra i vari layout: si finisce con l&#8217;avere dei layout fantastici a dimensioni specifiche (320, 720, 960), ma che lo sono molto meno a tutte le altre dimensioni. Quindi, anche se un sito pu\u00f2 sembrare perfetto sul vostro iPhone 4 a 640&#215;960, apparir\u00e0 un po&#8217; strano sul Nokia Lumia (480&#215;800) di un visitatore o nella finestra del browser a 685&#215;308 che tenete aperta sul vostro computer desktop. Potrebbe sembrare distorta anche sul nuovissimo iPhone 5 (640&#215;1136) che tuo cugino ha appena comprato, per non parlare degli infiniti e meno popolari altri device che si trovano in giro.<\/p>\n<p>All&#8217;aumentare dello spettro delle risoluzioni dei device, sia per ampiezza sia per omogeneit\u00e0, concentrarci solo sulle &#8220;dimensioni chiave&#8221; di ogni pagina avr\u00e0 come conseguenza un&#8217;esperienza non all&#8217;altezza per sempre pi\u00f9 utenti. Al contrario, dobbiamo creare un grid system che adotti la mancanza di dimensioni fisse proprie di questo medium, volto ad ottenere un singolo layout con diversi stati che variano da uno all&#8217;altro in maniera trasparente e portano struttura al contenuto per qualunque dimensione di schermo.<\/p>\n<div class=\"paragrafo\">\n<h2>Che cos&#8217;\u00e8 un grid system infinito?<\/h2>\n<p>Le griglie sono semplicemente uno strumento per risolvere un problema in maniera visuale. Creare un layout \u00e8 come fare un puzzle: si ha un certo numero di pezzi e si deve capire come metterli insieme. Quando creiamo una griglia, creiamo dei confini per il layout: relazioni e vincoli noti che definiscono un ambiente all&#8217;interno del quale si pu\u00f2 trovare una soluzione appropriata. Ma quando costruiamo una griglia <em>infinita<\/em>, non impostiamo solo i confini del layout, ma un <em>sistema<\/em> per il layout con troppe variabili a cui far aderire tutto. Se definiamo le relazioni importanti, gli spazi vuoti si riempiranno da soli.<\/p>\n<p>Perch\u00e9 una griglia sia utile, deve essere basata sulle cose che conosciamo. Nei media tradizionali, le dimensioni della pagina sono un vincolo noto, quindi ha senso che cominciamo con i bordi e definiamo le relazioni della griglia relative a quelli. Tuttavia, con il digitale non sappiamo quale sia la dimensione della pagina, perci\u00f2 questo vincolo non va troppo bene per essere il fondamento del nostro layout.<\/p>\n<p>Dobbiamo invece basare la nostra costruzione su quello che <em>effettivamente<\/em> conosciamo: il contenuto.<\/p>\n<blockquote>\n<p>Per adottare i layout nativi del web, indipendentemente dal device, dobbiamo scrollarci di dosso la convinzione che possiamo creare dei layout solo a partire dal canvas. Dobbiamo capovolgere questa nozione e creare i layout a partire dal contenuto.<\/p>\n<p><cite>\u2014 Mark Boulton, <a href=\"http:\/\/www.markboulton.co.uk\/journal\/comments\/a-richer-canvas\">\u201cA Richer Canvas&#8221;<\/a><\/cite><\/p>\n<\/blockquote>\n<p>Quando progettiamo a partire dal canvas, le sue dimensioni sono la costante a cui si ancora la nostra griglia: tutto viene dimensionato e posizionato in base a quelle misure. Progettare a partire dal contenuto vuol dire trovare una costante nel proprio contenuto, che sia la misura ideale di un paragrafo o le dimensioni di una pubblicit\u00e0, e creare la propria griglia a partire da quella costante, per riempire tutto lo spazio disponibile.<\/p>\n<p>Ora, i layout che si espandono fino a riempire lo spazio a disposizione non sono niente di nuovo, dopo tutto: i layout fluidi sono praticamente di default per il web, ma davvero pochi layout possono essere ingranditi o ristretti indefinitamente senza che si rompano le relazioni tra le loro componenti e qui \u00e8 dove entrano in gioco gli stati.<\/p>\n<h3>Stati<\/h3>\n<p>I layout fluidi vengono spesso <a href=\"http:\/\/twitter.com\/globalmoxie\/statuses\/133587842654937088\">paragonati all&#8217;acqua<\/a>, ma l&#8217;acqua non \u00e8 sempre fluida. L&#8217;H<sub>2<\/sub> ha tre stati differenti a seconda della temperatura: solido, liquido e gassoso. Passa senza strappi da uno stato all&#8217;altro a punti specifici (0\u00b0C, 100\u00b0C). Una griglia infinita ha pi\u00f9 stati (colonna singola, multi-colonna, etc.) e dovrebbe passare da uno all&#8217;altro di questi stati senza strappi e in punti precisi, come l&#8217;acqua. Per esempio, proprio come il ghiaccio \u00e8 uno stato appropriato per l&#8217;acqua quando la temperatura \u00e8 bassa, cos\u00ec un layout a singola colonna potrebbe essere lo stato appropriato per una griglia infinita sui device pi\u00f9 piccoli.<\/p>\n<p>I cambiamenti di stato dell&#8217;acqua sono causati da un riposizionamento delle sue molecole. Quando una griglia infinita cambia stato, dobbiamo risistemare le sue <em>componenti<\/em>.<\/p>\n<h3>Componenti<\/h3>\n<p>Ciascuno stato nel responsive layout tende ad essere fatto con le stesse componenti, come una galleria di immagini o un menu di navigazione. Tuttavia, come <a href=\"http:\/\/www.lukew.com\/ff\/entry.asp?1494\">ha recentemente sottolineato Ethan Marcotte<\/a>, la forma che assumono queste componenti pu\u00f2 variare radicalmente tra uno stato e l&#8217;altro, coinvolgendo di solito un cambiamento in uno o pi\u00f9 dei seguenti attributi:<\/p>\n<ol>\n<li><strong>Gerarchia:<\/strong> qual \u00e8 il suo ordine e la sua importanza nel layout?<\/li>\n<li><strong>Densit\u00e0:<\/strong> quanti dettagli mostrare?<\/li>\n<li><strong>Interazione:<\/strong> dovrebbe essere un elenco di link o un menu a tendina? Un carousel o un gruppo di immagini?<\/li>\n<li><strong>Larghezza:<\/strong> \u00e8 fissa (ha una larghezza specifica), flessibile (ha una max-width impostata) o frazionata (impostata con le percentuali)?<\/li>\n<\/ol>\n<p>Considerare quanto possano cambiare gli attributi di ciascuna componente tra i vari stati aiuta ad essere sicuri che il grid system produrr\u00e0 il layout pi\u00f9 adatto allo spazio disponibile. Osservato come le diverse componenti adattano la propria larghezza (fissa e flessibile) e posizione a seconda dei vari stati in <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/abstract-example\">questo esempio<\/a>.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Progettare un grid system infinito<\/h2>\n<p>Sebbene stiamo solo cominciando a grattare la superficie del progettare griglie infinite, ci sono gi\u00e0 alcune tecniche utili. Per cominciare, ecco della linee guida:<\/p>\n<h3>1. Usate unit\u00e0 proporzionali<\/h3>\n<p>Progettare una griglia vuol dire decidere cosa deve essere proporzionato a cosa. Quando scegliete un&#8217;unit\u00e0, legate una dimensione ad una particolare variabile:<\/p>\n<ul>\n<li>I pixel specificano la dimensione di un elemento in relazione ad una risoluzione particolare<\/li>\n<li>Gli em specificano la dimensione di un elemento relativamente alla sua dimensione del font; i rem specificano la dimensione relativamente alla dimensione del font di base del documento<\/li>\n<li>Le percentuali specificano la dimensione di un elemento relativamente al suo contenitore<\/li>\n<li>Le unit\u00e0 VH e VW specificano la dimensione di un elemento relativamente alla viewport<\/li>\n<\/ul>\n<p>Le unit\u00e0 assolute come i pixel danno effettivamente una data di scadenza al layout, bloccandolo a un range limitato di risoluzione nel quale &#8220;funziona&#8221;. Le unit\u00e0 proporzionali (em, rem e percentuali) permettono di definire <em>relazioni<\/em> importanti tra gli elementi e sono un primo step cruciale sula strada verso l&#8217;indipendenza dalla risoluzione.<\/p>\n<h3>2. Cominciate dagli estremi, poi lavorate su quello che c&#8217;\u00e8 in mezzo<\/h3>\n<p>Ogni layout ha un range naturale &#8220;ottimale&#8221; per il suo contenuto. Quanto potete allargarlo prima che si cominci a sfaldare? Quanto potete ridurlo prima che cominci a collassare? Per esempio, se la larghezza disponibile \u00e8 minore di 45 caratteri per riga, il layout comincia ad apparire illeggibile. Se c&#8217;\u00e8 pi\u00f9 spazio bianco di una colonna su ciascun lato del layout, il contenuto comincia a sembrare schiacciato. Questi estremi variano per ogni design, in stretta dipendenza dal contenuto.<\/p>\n<p>Pensare prima agli estremi obbliga a considerare il miglior modo per rappresentare il proprio contenuto ai due punti estremi delle spettro. Considerate la gerarchia, la densit\u00e0, l&#8217;interazione e la larghezza di ciascuna componente nello stato pi\u00f9 piccolo, poi fate lo stesso nello stato pi\u00f9 largo.<\/p>\n<p>Per esempio, supponiamo che il mio stato pi\u00f9 largo sia di 75em (pi\u00f9 largo di cos\u00ec e lo spazio bianco comincia a rimpicciolire il contenuto) e il mio stato pi\u00f9 piccolo sia 34em (pi\u00f9 piccolo di cos\u00ec e la misura risulta molto meno che ottimale). Nello <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/article-example-max?width=75em\">stato pi\u00f9 largo<\/a> ha senso che la navigazione sia una lista orizzontale (interazione) posizionata in alto (gerarchia), ma nello <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/article-example-min?width=34em\">stato pi\u00f9 piccolo<\/a> potrebbe avere pi\u00f9 senso spostarla in basso al layout (gerarchia), o ridurla in una lista che si pu\u00f2 aprire e nascondere (interazione). Progettare questi aspetti indipendentemente gli uni dagli altri aiuta ad essere pi\u00f9 obiettivi su cosa funzioni meglio in ogni stato, piuttosto che far adattare un&#8217;unica soluzione ai vari stati.<\/p>\n<h3>3. Cambiate stato nei punti in cui le relazioni non funzionano pi\u00f9<\/h3>\n<p>Una volta che avete trovato una soluzione per gli estremi, \u00e8 tempo di considerare in che modo e dove uno stato dovrebbe fare una transizione verso un altro stato. Proprio come l&#8217;acqua si trasforma in vapore quando le sue molecole si allontanano troppo, uno stato dovrebbe cambiare in un altro quando le relazioni tra le sue componenti cominciano a non funzionare pi\u00f9, come ad esempio quando la misura diventa troppo larga, o il logo allineato a sinistra \u00e8 cos\u00ec lontano dal menu allineato a destra che sembra che non ci sia alcuna connessione visuale tra i due.<\/p>\n<p>Qui \u00e8 dove i prototipi &#8220;live&#8221; vengono comodi. \u00c8 incredibilmente difficile predire esattamente a quale larghezza (in relazione al contenuto) un layout abbia bisogno di cambiare da uno stato a un altro. Un prototipo vi permette di ridimensionare il browser per trovare il punto <em>esatto<\/em> in cui le relazioni non funzionano pi\u00f9, cos\u00ec che possiate aggiungervi un breakpoint. Alcuni nuovi strumenti (come <a href=\"http:\/\/gridsetapp.com\">Gridset<\/a> e <a href=\"http:\/\/responsive.is\">Responsive.is<\/a>) rendono pi\u00f9 semplice che mai creare e testare i prototipi responsive, quindi non avete pi\u00f9 alcuna scusa per non farlo.<\/p>\n<p>Il numero di stati che richiedete dipender\u00e0 da quanto cambia il layout da un estremo all&#8217;altro. Per esempio, il mio stato pi\u00f9 piccolo ha una singola colonna e un menu &#8220;collapsed&#8221; e il mio stato pi\u00f9 largo ha tre colonne e un menu espanso. Tuttavia, nessuno dei due stati sembra a posto tra i 34em e i 53em, cos\u00ec ho aggiunto uno <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/article-example-in-between?width=45em\">stato \u201cnel mezzo\u201d<\/a> che mantiene la singola colonna per &#8220;article&#8221; dello stato pi\u00f9 piccolo, ma espande il menu e divide il footer in tre colonne per utilizzare al meglio lo spazio disponibile. Questo fa s\u00ec che la transizione da un estremo all&#8217;altro sia pi\u00f9 fluida.<\/p>\n<p>Ricordatevi di riconsiderare la gerarchia, la densit\u00e0, l&#8217;interazione e la larghezza di ciascuna componente ad ogni cambiamento di stato. Pu\u00f2 essere cha la colonna con il contenuto principale debba avere una larghezza fissa adesso per essere sicuri che la misura non diventi troppo grande o che abbiate spazio per aggiungere pi\u00f9 informazione (densit\u00e0) alla navigazione?<\/p>\n<h3>4. Andate oltre gli estremi<\/h3>\n<p>Quindi adesso abbiamo un layout responsive con pi\u00f9 stati che passano dal pi\u00f9 piccolo al pi\u00f9 grande in maniera fluida. Ma si tratta solo dell&#8217;intervallo tra i 34 e i 75em. Cosa succede quando lo spazio disponibile \u00e8 pi\u00f9 piccolo o pi\u00f9 grande di quegli stati? Come otteniamo un layout che va davvero da 0 all&#8217;infinito?<\/p>\n<p>Lo spazio \u00e8 prezioso nella zona pi\u00f9 piccola della scala, quindi dobbiamo ottenere il massimo da quello che abbiamo. <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/article-example-narrow?width=20em\">Per le dimensioni sotto ai 20em<\/a>, ho ridotto (ma non rimosso) i margini, diminuito la line height e indentato gli elenchi puntati. Praticamente, ho fatto quello che posso per ottimizzare la leggibilit\u00e0, anche se ho una quantit\u00e0 meno che ottimale di spazio a disposizione.<\/p>\n<p>Dal lato opposto della scala, il problema \u00e8 che c&#8217;\u00e8 <em>troppo spazio<\/em>, in particolare troppo &#8220;whitespace&#8221;. Il contenuto appare in questo caso schiacciato, quindi dobbiamo trovare dei modi per bilanciarlo. Sfortunatamente, ampliare semplicemente un layout indiscriminatamente non funziona sempre, perch\u00e9 cominciano ad apparire i problemi legati alla leggibilit\u00e0 causati dalle grandi dimensioni. Se aumentate la dimensione del testo per mantenere circa sessanta caratteri per riga, ma il carattere \u00e8 cos\u00ec grande che si deve in effetti muovere la testa per poter leggere, allora non si tratta di una buona esperienza.<\/p>\n<p>Al contrario, cercate elementi come gli header, i divisori o le immagini che potete ingrandire con il canvas, che aiutano ad ancorare un layout visivamente senza rovinarne la leggibilit\u00e0. Nel mio <a href=\"http:\/\/responsive.is\/alistapart.com\/d\/the-infinite-grid\/article-example-responsive\">esempio<\/a>, l&#8217;elemento righello che si allarga a larghezza piena aiuta ad &#8220;ancorare&#8221; il design al whitespace e a 75em comincio ad ingrandire gli elementi relativamente alla dimensione della viewport usando le unit\u00e0 VW. Il corpo del testo comincia a diventare scomodo a 90em, pertanto uso le unit\u00e0 rem per tenerlo a una dimensione di lettura comoda mentre gli altri elementi si ridimensionano attorno ad esso.<\/p>\n<p>In entrambe i casi, l&#8217;obiettivo \u00e8 quello di sfruttare al meglio lo spazio a disposizione, relativamente al contenuto, per massimizzare la leggibilit\u00e0 e la presentazione.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Verso l&#8217;infinito e oltre&#8230;<\/h2>\n<p>Ehm, in realt\u00e0 l&#8217;infinito pu\u00f2 bastare.<\/p>\n<blockquote>\n<p>Usare una griglia predefinita ha tanto senso quanto usare uno schema di colori predefinito.<\/p>\n<\/blockquote>\n<p><cite>\u2014 <a href=\"https:\/\/twitter.com\/adactio\/status\/161844989771513856\">Jeremy Keith<\/a><\/cite><\/p>\n<p>Ho cercato di non dare i dettagli in questo articolo perch\u00e9 non ce ne sono. Ogni layout \u00e8 differente e non ci sono dei numeri magici che funzionano in ogni occasione.<\/p>\n<p>Al contrario, dobbiamo definire con precisione le <em>relazioni<\/em> tra gli elementi e poi lasciare che i dettagli si definiscano da soli. Non abbiamo ancora tutte le risposte, ma agire in questo modo ci aiuter\u00e0 a porre le giuste domande.<\/p>\n<p>Questo \u00e8 un problema che vale la pena risolvere e non stiamo pensando ad una soluzione per noi stessi, ma per tutti quelli che progetteranno per i digital media nel futuro, che pu\u00f2 voler dire molte persone. Perfino un numero infinito.<\/p>\n<p>Illustrazioni: {carlok}<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I grid system sono una componente chiave del graphic design, ma sono sempre stati pensati per pagine dalle dimensioni finite. Finora. Oggi progettiamo per un medium che non ha dimensioni finite, un medium che cambia forma per adattarsi meglio all&#8217;ambiente, in grado di mostrare un unico layout su uno smartphone, su un cartellone in Times Square e su tutto quello che sta tra questi due estremi. Progettiamo per una tela infinita e perci\u00f2, dobbiamo conoscere i grid system. Scopriamo le tecniche e le linee guida che possono aiutarci a dare una struttura al contenuto su qualunque schermo questo venga visualizzato.<\/p>\n","protected":false},"author":818,"featured_media":7000677,"comment_status":"open","ping_status":"open","template":"","categories":[279,272,273,78,274],"tags":[],"coauthors":[379],"class_list":["post-320","article","type-article","status-publish","has-post-thumbnail","hentry","category-interaction-design","category-layout-and-grids","category-mobile-multidevice","category-numero-63-7-novembre-2012","category-responsive-design"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/320","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=320"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media\/7000677"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=320"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}