Mondi su mondi, sistemi di sistemi.

Scale tipografiche: altre opzioni

Thursday, April 1st, 2010

Ho già parlato di come adattare una scala tipografica usando le impostazioni di base di YUI1.

Qualche tempo fa ho scoperto questa pagina2 di Iain Lamb3.

In questo caso, i valori ottenuti per i titoli sono diversi, usando sempre la scala tradizionale. Usando come valore base 13px otteniamo4 19,5px, 17,3px e 15,2px per h1, h2 e h3, rispettivamente, invece di 24px, 21px e 18px.

La cosa curiosa è che pur dichiarando appunto che viene usata la scala tipografica tradizionale i valori che ne risultano sono diversi. Bisognerebbe approfondire ma sul sito non c’è modo di farlo :-(

  1. Scala tipografica con YUI
  2. Scale & Rhythm
  3. http://lamb.cc ha anche un bel blog, seguitelo
  4. è solo un default, ovviamente

Layout: un approccio modulare

Monday, February 1st, 2010

Mi è ricapitato fra le mani questo articolo di Jason Santa Maria e volevo segnalarlo perché anche a distanza di qualche tempo (è del 2008) rimane validissimo.

In poche parole

L’idea è molto semplice e consiste nell’estrarre gli elementi di variabilità del nostro lay­out e associarvi delle classi nel foglio di stile. Così, ad esempio, le dimensioni che pos­siamo attribuire a un’immagine diventano delle classi:

.one {width: 100px;}
.two {width: 210px;}


così come la loro posizione:

.left {float: left; margin-right: 20px;}
.right {float: right; margin-left: 20px;}


e così via.

A questo punto, sfruttando la pos­sibilità di specificare più classi per un dato elemento pos­siamo combinare quelle che ci servono.

Analogie

Questo approccio mi ricorda quello pre­sentato in Design Fast Websites; la composizione delle classi sembra molto simile. A chi interessa, l’autrice della pre­sentazione ha anche creato un framework CSS basato sugli stessi principi, Object Oriented CSS, scaricabile da GitHub.

Altre applicazioni

Possiamo usare lo stesso sistema anche per le dimensioni delle font. Oltre a specificare direttamente la dimensione del testo per un elemento, creiamo le classi corrispondenti:

._24, h1 { font-size: 182%; }
._21, h2 { font-size: 161.6%; }
._18, h3 { font-size: 138.5%; }
._16, h4 { font-size: 123.1%; }

Dettagli sul font hinting

Friday, January 22nd, 2010

Nel mio post chilometrico su @font-face ho accennato alla questione del font hinting e alle differenze nel rendering delle font, in particolare, quello delle font OpenType CFF sotto Windows è nettamente peggiore di quelle TrueType 1.

PostScript vs TrueType

Il motivo di questa differenza è dovuto al fatto che il formato CFF eredita una serie di scelte fatte in pas­sato con il PostScript, in particolare la descrizione dell’outline e, appunto, il modello di hinting.

Questi modelli, però, erano creati per le stampanti a bassa risoluzione e non per il monitor; viceversa, il TrueType è stato pensato fin dall’inizio per il rendering a video.

Perché il CFF usa il modello del PostScript?

La scelta usata per il CFF è motivata dal fatto che il formato outline con le curve di Bézier cubiche del PostScript è quello usato quasi tutti i progettisti di font e soprattutto il modello di hinting è molto più semplice e può essere in larga parte automatizzato 2.

In questo momento, quindi, la scelta del TrueType per @font-face sembra praticamente obbligata, almeno fino al momento in cui il rendering tramite DirectWrite sarà sufficientemente diffuso su Windows 3.

  1. Fonts e il web: a che punto siamo
  2. Font Hinting Explained By A Font Design Master
  3. A typographic workbook. Le informazioni sui diversi formati si trovano alle pagg. 135–137.

Pagehand

Monday, June 22nd, 2009

Volevo segnalare Pagehand, nuovo word proces­sor per Mac OS X, perché ha alcune features degne di nota.

Ma non basta Word?

Il primo punto a favore è l’uso del PDF come formato di file, non legandoci quindi mani e piedi all’ennesimo formato proprietario.

Il secondo è l’occhio di riguardo con cui sono trattate le opzioni tipografiche e l’implementazione degli stili.

Certo, il confronto con altri word proces­sor può essere impietoso, eppure, mi sembra un’applicazione ben fatta, con un buon potenziale.

Siamo ancora all’inizio

È ovvio che potremmo pensare a innumerevoli features da aggiungere, ma una mi sembra veramente mancante, vista la filosofia di base: non è pos­sibile modificare pdf creati da altre applicazioni.

Non so molto del formato pdf per poter dire se sia una limitazione in qualche modo giustificabile, ma non credo. Speriamo che questa svista venga corretta presto.

Font per programmatori: altri post

Tuesday, June 16th, 2009

Segnalo altri due post che parlano di Menlo e di Anonymous Pro, con un confronto molto meno raffazzonato del mio.

Da qualche giorno sto provando Anonymous Pro ma continua a sembrarmi leggero nel peso standard. Vedremo…

I link:

Font per programmatori

Friday, June 12th, 2009

Una delle cose che forse farà contento John Siracusa è che in Snow Leopard sarà disponibile una nuova font monospaced, Menlo, una rivisitazione dell’Andale Mono.

Il confronto fra i due caratteri rivela che le differenze si concentrano sugli elementi più importanti come la distinzione fra O e 0, ad esempio. Credo anche che abbiano un support migliore per i caratteri tipografici meno usati in programmazione ma non sono sicuro.

Ma c’è un’altra font molto recente ed è l’Anonymous Pro. Forse per i miei gusti è un po’ leggera — soprattutto calcolando che ultimamente uso Lucida Sans TypeWriter — ma vale la pena di provarla. Ecco uno screenshot.

Segnalo anche un’imprecisione nell’articolo di Ars Technica: il Monaco è ancora incluso, almeno nelle vecchie beta.

Bonus a chi capisce il significato del codice di esempio ;-)

Scala tipografica con YUI

Friday, June 5th, 2009

Questo vecchio articolo di Mark Boulton prende le mosse dalla tradizionale scala tipografica, ormai in uso da qualche centinaio di anni.

In quell’articolo ne viene proposta una versione per il web, tenendo conto delle peculiarità del medium. la scala è la seguente:

11px /16.5px — Body copy and leading.
24px — Main heading used as section headings on the Homepage, Portfolio homepage and entries.
18px — Headings for journal entries and portfolio subheadings.
16px — All navigational and content tertiary headings.
13px — All other headed elements.

Usando la scala di YUI ecco la mia versione, pensata per usare come dimensione del testo nei para­grafi un valore di 13px/1.231em:

/* 24px */
h1 { font-size: 182%; }
/* 21px */
h2 { font-size: 161.6%; }
/* 18px */
h3 { font-size: 138.5%; }
/* 16px */
h4 { font-size: 123.1%; }

Curiosità: in entrambe le scale viene usato l’equivalente di 13px, che è l’unica dimensione — in punti — assente nella scala originaria fra 6 e 14pt.

Ritmo verticale: un riassunto

Friday, September 26th, 2008

Nel tentativo di capirci qualcosa di più ho messo insieme una paginetta di rias­sunto sulla questione del ritmo verticale. I commenti sono graditissimi!

Ritmo verticale

Friday, September 26th, 2008

Questo articolo su Opera Dev mi dato lo stimolo per scrivere qualche appunto un po’ più completo sulle griglie per la baseline del testo (uso i termini in inglese quando non conosco i corrispondenti corretti in italiano), in particolare quando usiamo un framework per i CSS come YUI.

La prime cose da decidere sono la font-size e line-height; con YUI, i valori sono: font-size: 13px e line-height: 1.231em (ovvero, 16px). In altri articoli ho visto applicare un valore del 150%; con YUI avremmo 19.5px, che pos­siamo ottenere, appros­simando, con 146.5% (19px) o 153.9% (20px), ma per questo articolo usiamo il default.

L’idea di base è che una volta scelto, questo valore sarà la nostra unità di base per calcolare padding, margin e line-height, in modo che l’altezza comples­siva di un elemento sia sempre un suo multiplo di tale unità.

Paragrafi e altri block elements

Per elementi come p basta compensare il valore di 1em assegnato di default dai browser ai margini:

p {
  margin-top: 16px;
  margin-bottom: 16px;
}

Liste

Per le liste dobbiamo decidere, eventualmente caso per caso, se specificare il trattamento per ogni singola riga, e quindi ricadere negli esempi visti prima, o considerare la lista come blocco unico; in questo caso basterà specificare margin-bottom.

Immagini e callouts

Per gli altri elementi, dobbiamo decidere in base alla pos­sibilità o meno di sapere in anti­cipo l’ingombro verticale: di un’immagine pos­siamo stabilire che dovrà essere alta, ad esempio, 80px (ovvero, un multiplo di 16) e quindi essere certi che non romperà il ritmo verticale; per gli elementi variabili come blocchi di testo in callout, se gli elementi all’interno rispettano già la misura standard, dobbiamo solo accertarci che la somma di margin, padding e border siano anch’essa un multiplo:

.callout {
  border: 1px solid #ddd;
  padding: 7px 10px;
  margin-bottom: 16px;
}

Infatti: border top + padding top + padding bottom + border bottom = 16px.

Nel caso delle immagini, se vogliamo anche calcolare la pos­sibilità che l’utente possa ridimensionare il testo, pos­siamo specificare le dimensioni dell’immagine in em, in questo caso, 5em.

Quindi, quando le dimensioni del testo non variano basta lavorare sui para­metri del box model: margin, border e padding.

Variazioni su line-height

Invece, tutte le volte che cambiamo font-size si pone il problema di cosa fare con il valore di line-height. Su OperaDev quest’ultimo non viene nemmeno variato e si lavora solo sul box model; nell’articolo di A List Apart, consigliano di usare semplicemente dei multipli del valore di base per i titoli ma non dicono nulla sulla pos­sibilità di avere dei callout in cui la dimensioni del testo è minore di quel valore; in 24 Ways, il valore di line-height per i titoli viene ottenuto dividendo il valore di base per font-size e applicando lo stesso metodo anche ai callout in modo da ottenere sempre una griglia omogenea — tuttavia non dicono nulla sul problema di una line-height troppo piccola quando i titoli scorrono su più righe; infine, Mark Boulton propone un miglioramento per i callout ma purtroppo non dice nulla sui titoli.

Che fare? Questi sono i valori che ho usato per il file di esempio di griglia per ritmo verticale:

h1 {
    font-size: 24px;
    line-height: 0.6667em;
    margin-bottom: 0.6667em;
    margin-top: 1.3334em;
}
h2 {
    font-size: 19px;
    line-height: 1.2631em;
    margin-bottom: 0.8421em;
    margin-top: 0.8421em;
}
h3 {
    font-size: 18px;
    line-height: 0.8889em;
    margin-bottom: 0.8889em;
    margin-top: 0.7778em;
}

In pratica ho usato la divisione, tranne che per l’h2, dove, a causa del testo che scorre su più righe, il valore di line-height era troppo basso e quindi l’ho moltiplicato per 1,5, ottenendo un box di 48px.

Considerazioni simili pos­sono essere fatte per blocchi di testo con un valore di font-size inferiore a quello base, come nei callout: pos­siamo fare in modo che ogni riga stia nella griglia standard o fare in modo che sia proporzionale alle dimensioni del testo nel callout.

Nel primo caso line-height viene incrementato tramite la formula: line-height standard / dimensione testo callout. Nel secondo caso dobbiamo prima decidere il rapporto, fra numero di righe del testo principale e quello del callout e poi fare qualche calcolo. Se vogliamo che ogni quattro righe di testo “standard” ci siano cinque righe di callout, allora il valore di line-height sarà: line-height standard * 4 / 5, ovvero, 12.8 px. Tuttavia va ricordato che dovremo anche aggiustare (a occhio) il valore di margin-top.

Strumenti utili

Se consideriamo ogni caso singolarmente, gli accorgimenti descritti non sono difficili da seguire ma quando lavoriamo su una pagina nel suo insieme può venire utile qualche strumento.

Per FireFox, oltre ai clas­sici come Firebug e Web Developer, ho trovato utile Gridfox.

Altri post sull’argomento

Riflusso del testo con l’elemento pre

Wednesday, July 9th, 2008

Non sapevo fosse pos­sibile far rifluire il testo anche all’interno del pre

Della serie “guarda che post pazzesco dopo una pausa di qualche giorno” :-D Avevo un po’ di candidati per cose più succose ma non ho tempo.

« Voci Precedenti