Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Effetti speciali con text-shadow

Usare in maniera creativa la proprietà CSS che consente di aggiungere ombre sotto una porzione di testo
Usare in maniera creativa la proprietà CSS che consente di aggiungere ombre sotto una porzione di testo
Link copiato negli appunti

La proprietà text-shadow ha fatto la sua prima comparsa nelle specifiche CSS2 ma ha sofferto da subito di una scarsa diffusione a causa del fatto che la maggior parte dei browser non l'hanno mai implementata.

Con la recente febbre da implementazione, che vede i più grandi browser gareggiare tra loro nell'implementare le specifiche CSS3, text-shadow si sta finalmente diffondendo come meriterebbe e alcuni grandi siti web ne stanno facendo un uso sempre più convinto.

Stiamo parlando, ad esempio, del sito della Apple (Figura 1) e di WordPress.org (Figura 2) che la utilizzano per enfatizzare le voci dei menu.

Figura 1 - Navigazione del sito Apple.com
Navigazione Apple.com
Figura 2 - Navigazione del sito WordPress.org
Navigazione WordPress.org

Purtroppo questa proprietà non è ancora ben supportata: solo gli utilizzatori di Safari 3+, Opera 9.5+, Firefox 3.1, Konqueror e iCab potranno godere dei suoi effetti (e non sempre appieno! come spiegheremo in seguito).

Proprio per questa ancora limitata diffusione il suo utilizzo va necessariamente circoscritto in ambiti di puro abbellimento: è quindi prioritario prestare attenzione all'usabilità (evitare ad esempio che un link si distingua da un link al passaggio del mouse solo per il colore dell'ombra).

Nota: per visualizzare correttamente gli esempi avrete bisogno di un browser compatibile!

La proprietà text-shadow

La sinstassi di text-shadow è la seguente:

text-shadow: 2px 2px 2px #000;

Ci sono 3 valori che si possono esprimere in pixel, percentuali o em più un campo per definire il colore dell'ombra. Di questi tre valori numerici:

  • Il primo indica lo spostamento dell'ombra in orizzontale. Da sinsitra a destra.
  • Il secondo indica lo spostamento dell'ombra in verticale. Dall'alto in basso.
  • Il terzo indica la sfocatura dell'ombra.

Un'altra caratteristica molto interessante è la possibilità di definrie più ombre per uno stesso elemento. In questo modo:

text-shadow: 2px 2px 2px #000, 3px 3px 3px #fff; 4px 4px 4px #ccc;

Basta dividere ogni definizione da una virgola. Attenzione però che l'effeto multi-ombra non è ben supportato da tutti i browser, ad esempio Safari. Se volete testare questo effetto la maniera più facile è utilizzare la beta di Firefox 3.1.

Per avere una panoramica completa della compatibilità, fate riferimento a questa esaustiva tabella (tratta da qui):

Safari 3.1 (Mac/Win) : si, ma niente ombre multiple
Opera 9.5 (Mac/Win/Lin) : si
Firefox 2/3 (Mac/Win/Lin) : no
Firefox 3.1 (Mac/Win/Lin) : si
IE 6/7/8 (Win) : no
Google Chrome (Win) : si, ma niente ombre multiple
Shiira (Mac) : si, ma niente ombre multiple
Konqueror (Lin/Mac/Win) : si
iCab (Mac) : si, ma niente ombre multiple
Epiphany (Lin) : si
Safari per iPhone : si, ma niente ombre multiple
Nokia Symbian-Smartphones (Series 60) : si
Opera Mini 4.1 : si, ma niente sfocatura

Notate come a differenza delle proprietà dei CSS3 non sia necessario utilizzare prefissi proprietari come -moz, -webkit, etc. Questo perché, come anche detto in precedenza, text-shadow fa parte delle specifiche CSS2.

Ora che abbiamo fatto luce sul funzionamento e la sintassi di text-shadow, vediamo qualche esempio pratico.

Sul sito della Apple il menu di navigazione principale fa uso di text-shadow per ricreare un effetto rilievo sui link, che cambia al passaggio del mouse (Figura 3).

Figura 3 - Effetto rilievo in stile Apple
Effetto rilievo in stile Apple

Su uno sfondo grigio scuro (che simula il metallo), utilizziamo questo stile di base per i link:

#menu { background: #666; }
a { color: #000; }
a:hover { color: #fff; }

Aggiungiamo text-shadow per i link a riposo, in modo che il testo sembri sopraelevato rispetto allo sfondo. Avremo bisogno di un ombra nitida (0 di sfocatura) e molto leggera (1px verso il basso):

a { color: #000; text-shadow: 0 1px 0 #fff }

In pratica l'uso che si fa di text-shadow non è tanto quello di ricreare un ombra, quanto quello di replicare gli effetti di luce su un oggetto (solitamente impossibile se non ricorrendo ad un programma di grafica).

Adesso aggungiamo un ombra opposta per i link al passaggio del mouse:

a:hover { color: #fff; text-shadow: 0 -1px #fff; }

Il risultato finale simula la pressione del testo: da sopraelevato a scavato nello sfondo.
Notate come sia possibile spostare a piacimento l'ombra utilizzando anche valori negativi.

Effetto illuminazione al buio

Un altro effetto che possiamo ottenere è quello di rendere un link luminoso, utilizzando a fondo la variabile sfocatura del text-shadow (Figura 4).

Figura 4 - Effetto illuminazione al buio
Effetto illuminazione al buio

Prendiamo un semplice link su sfondo scuro, con poco contrasto:

#menu { background: #2a2a2a; }
a { color: #666; }

Al passaggio del mouse il link si accende, a livello di codice cambiamo il colore in uno molto più chiaro:

a:hover { color: #fff; }

Aggiungiamo una sfocatura molto elevata di colore verde, senza spostare l'ombra:

a:hover { color: #fff; text-shadow: 0px 0 15px #76EE00; }

Ecco l'esempio all'opera.

Quando si usa un effetto del genere è importante tenere a mente cosa succede se si utilizza la pagina con un browser che non supporta text-shadow. Ad esempio, se avessimo messo come colore del testo per il passaggio del mouse, lo stesso colore utilizzato per lo sfondo:

a:hover { color: #2a2a2a; text-shadow: 0 0 15px #76ee00; }

Il risultato sarebbe molto più d'impatto, ma, nel caso di non supporto da parte del browser, il link semplicemente scomparirebbe e questa sarebbe una grave pecca nell'usabilità della pagina.

Giocare con le ombre multiple

Le ombre multiple sono uno strumento molto potente nelle mani di un designer. Anche se è meglio dire che lo "sarebbero" in quanto, essendo ancor meno supportate, il loro utilizzo va ridotto al minimo.

Consideriamolo un esercizio di stile, in previsione futura. Come esempio vi porto l'Effetto Fiamma (è un esempio molto comune, Figura 5).

Figura 5 - Effetto fiamma
Effetto fiamma

Per ottenerlo basta un semplice:

text-shadow: 0 0 4px #ccc, 0 -5px 4px #ff3, 2px -10px 6px #fd3, -2px -15px 11px #f80, 2px -18px 18px #f20;

Godetevi l'esempio (con Firefox 3.1 possibilmente), e pregustatevelo per quando potremo utilizzare liberamente uno strumento del genere.

Conclusioni

Come detto qualche paragrafo prima, utilizzate text-shadow liberamente tenendo sempre a mente l'usabilità delle pagine. Come consiglio vi suggerisco di testare sempre le vostre il tutto su un browser che non supporta text-shadow per vedere come si comporta.

Per altri esempi e approfondimenti, eccovi qualche link:

Gli esempi sono disponibili per il download.

Ti consigliamo anche