Css: alto livello e basso livello
I Css (Cascade Style Sheets, o fogli di stile a cascata) sono delle istruzioni che si inseriscono nel codice delle pagine web per definirne l’aspetto: colore di sfondo, colore del testo, larghezza, spazio tra le lettere, tra le righe, tipo di carattere, grandezza, margini... Tutto quanto. In origine le pagine web si potevano impaginare senza fare ricorso a tutto ciò, ma ora se si vuole ottenere un risultato decente è obbligatorio metterci mano.
Con i Css (o il Css, inteso come linguaggio) è possibile scegliere nel dettaglio come deve apparire il testo di ognuno degli elementi che compongono la pagina. Ma non ci si limita a scegliere le informazioni di base (nomi, grandezze, colori): c’è anche la possibilità di accedere alle impostazioni avanzate insite nei font OpenType, ad esempio scegliere tra numeri tabulari o vecchio stile, trasformare un testo in maiuscoletto, spostarlo come fosse un esponente, eccetera.
Si possono attivare e disattivare le legature (tutte o solo alcune), le lettere alternative, quelle dotate di svolazzi. Si può agire sul kerning eccetera eccetera.
Il tutto in due modi diversi: alto livello e basso livello.
Il primo prevede di inserire una istruzione utilizzando delle parole comprensibili all’essere umano: ad esempio impostare la variabile
font-variant-numeric
a oldstyle-nums
attiva i numeri vecchio stile (quelli che non si allineano tutti tra linea di base e linea superiore, ma hanno tratti discendenti o ascendenti). Le istruzioni di basso livello prevedono invece l’utilizzo di codici di quattro lettere che attivano l’omonima opzione all’interno del file. Per ottenere lo stesso risultato di prima si può scrivere
font-feature-settings: ‘onum’ on
. Perché mantenere sia l’alto che il basso livello? Perché in effetti anche se l’alto livello sarebbe più comodo e indipendente dal formato del font, non è ancora supportato da tutti i browser (font-variant-numeric è supportato da quasi tutti tranne Internet Explorer; ma già font-variant-alternates è disponibile in Firefox ma non in Chrome e molti altri. E comunque, anche i browser che supportano queste istruzioni sono compatibili solo da una certa versione in poi. Restano escluse le versioni più vecchie). E qui sta l’inghippo: è il browser del cliente che determina il fatto che una certa istruzione funzioni o no. Il progettista del sito deve quindi accertarsi tramite un’apposita tabella quali sono i browser che supportano questa tecnologia e fino a che punto, e prevedere anche che la pagina sia gradevole pure per chi usa un browser che non la supporta (Il basso livello invece funziona praticamente su tutti i browser, nelle loro versioni più recenti).
Una comoda guida di tutte lei istruzioni Css che hanno a che vedere con le caratteristiche OpenType dei font si può trovare sul sito Tipotheque.
Ci sono tutte le variabili che possono essere impostate (se il font lo prevede), anche quelle dipendenti da lingua e forme locali (arabo, cirillico...)
Una opzione ha soltanto la forma di basso livello: quella che riguarda il set stilistico. In un font ci possono essere varie lookup (non più di 20, mi sembra) con tabelle di sostituzione tra le lettere normali e quelle di uno Stylistic Set. Il codice di 4 cifre è composto da due s seguite da due cifre: ss01, ss02 e così via fino a 20.
In questo caso una definizione di alto livello per tutti i browser è impossibile, visto che il programmatore del browser non può avere neanche una pallida idea di ciò che il disegnatore del font ha voluto o vorrà progettare. C’è chi ha creato un set stilistico solo per trasformare le lettere normali nelle corrispondenti dell’alfabeto usato dai Goti nel medioevo, tanto per fare un esempio. O nelle antiche rune.
Quindi è il progettista del sito che deve studiare quali sono i set stilistici insiti nel font specifico che vuole utilizzare, e selezionare il suo preferito con l’istruzione di basso livello
font-feature-settings: ‘ss03’ on
. Chiaramente se cambia font per qualche motivo, il risultato finale potrebbe essere anche molto diverso, se il set stilistico numero 3 del nuovo font serve ad uno scopo completamente diverso rispetto all’ss03 del font che c’era prima.Il problema invece non si pone per quelle opzioni che sono state attivate con istruzioni di alto livello: impostare gli
oldstyle-nums
attiva i numeri vecchio stile tanto nel vecchio font quanto nel nuovo. Se il nuovo font non prevede l’opzione, niente di grave: vengono caricati comunque i numeri normali, senza nessun blocco o malfunzionamento o effetto particolarmente imprevisto.
Commenti
Posta un commento