Generatore di Ombre CSS

Avanti

Crea una regola box-shadow alla volta: imposta gli offset orizzontale e verticale, la sfocatura, la diffusione, il colore e l’inset facoltativo, poi copia il risultato. Le ombre reali richiedono di solito due o tre livelli, quindi genera ogni livello separatamente e unisci le regole con una virgola.

Come progettare un'ombra

  1. 1

    Imposta i valori dell'ombra

    Offset orizzontale, offset verticale, raggio di sfocatura, diffusione e colore con opacità.

  2. 2

    Attiva inset

    Trasforma l'ombra in inset per un'ombra interna, utile per pulsanti premuti ed effetti di cavità.

  3. 3

    Scegli il colore

    Il nero con bassa opacità è il classico. Le ombre colorate (che riprendono la tinta dell'elemento, più scure) appaiono più naturali.

  4. 4

    Copia il CSS

    Copia la singola regola d'ombra e incollala nel tuo foglio di stile. Per ombre a più livelli, genera ogni livello separatamente e combina le regole con una virgola.

La sintassi box-shadow

box-shadow: <x-offset> <y-offset> <blur> <spread> <colour> [inset];
  • x-offset: positivo = destra, negativo = sinistra.
  • y-offset: positivo = giù, negativo = su.
  • blur: 0 = bordo netto, più alto = più morbido. La dimensione visibile è circa 1.5x la sfocatura oltre l’elemento.
  • spread: dimensione extra oltre l’elemento. Positivo aumenta l’ombra; negativo la riduce (utile per aloni sottili).
  • colour: supporta qualsiasi colore CSS. rgba(0, 0, 0, 0.15) è il pane quotidiano.
  • inset: parola chiave che capovolge l’ombra all’interno dell’elemento.

Ombre stratificate sembrano reali

Questo generatore produce una regola d’ombra alla volta; per costruire un’ombra a più livelli, genera ogni livello separatamente e combina le regole con una virgola.

Un’ombra con 0 0 40px appare sfocata. Due ombre, una piccola e nitida vicino all’elemento e una più grande e morbida più lontano, imitano come la luce reale si disperde.

box-shadow:
  0 1px 2px rgba(0, 0, 0, 0.08),
  0 4px 12px rgba(0, 0, 0, 0.08);

La prima riga fornisce l’ombra di contatto stretta; la seconda l’ombra ambientale più morbida. Questo singolo schema copre l’80% delle interfacce utente in stile scheda.

Sistemi di elevazione

Il Material Design utilizza 6 livelli di elevazione, ciascuno con un diverso stack di ombre. Semplificato:

Elevazione Ombra
1 (riposo) 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24)
2 0 3px 6px rgba(0,0,0,.16), 0 3px 6px rgba(0,0,0,.23)
3 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23)
4 (sollevato) 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22)
5 (fluttuante) 0 19px 38px rgba(0,0,0,.30), 0 15px 12px rgba(0,0,0,.22)

Scegli uno per ruolo di elevazione e usalo in modo coerente.

Ombre colorate appaiono più naturali

Ombre nere pure sembrano artificiali perché le ombre reali sono tinte dalla superficie sottostante. Prova:

box-shadow: 0 12px 24px rgba(40, 80, 120, 0.18);
  • un blu-grigio fresco invece di nero puro. Su sfondi caldi, usa una tinta più calda.

Prestazioni

Le ombre box-shadow vengono dipinte ad ogni ripristino. Ombre grandi e pesanti su molti elementi possono rallentare lo scorrimento. Mitigazioni:

  • Usa transform: translateZ(0) sull’elemento per forzare uno strato composito.
  • Sostituisci ombre complesse con filter: drop-shadow() solo se hai bisogno che l’ombra segua un clip-path (è più lenta in generale).
  • Limita le ombre sugli elementi che si ridisegnano frequentemente.

Inset per stati premuti

.button:active {
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.12);
}

Le ombre inset simulano un aspetto incassato, il pulsante appare premuto nella superficie. Combina con un piccolo transform: translateY(1px) verso il basso per un clic tattile.

Domande frequenti

Di solito perché la sfocatura è troppo bassa o la diffusione è troppo alta. Un’ombra con bordo netto e senza sfocatura appare come un elemento duplicato. Aumenta la sfocatura (20-30px è un punto di partenza comune) e mantieni la diffusione a 0 o valori negativi molto piccoli.

L’ombra box-shadow segue il border-box dell’elemento, inclusa la border-radius, quindi le schede arrotondate ottengono automaticamente ombre ben arrotondate. Per forme clip-path, l’ombra box-shadow non segue il clip; usa invece filter: drop-shadow().

Offsetta l’ombra pesantemente nella direzione scelta e usa una diffusione negativa per nascondere il lato opposto. Oppure usa due ombre, una visibile sul lato target, un’altra con diffusione negativa per “mangiare” la fuoriuscita indesiderata.

Nessun limite rigoroso, ma ogni ombra è un altro passaggio di pittura. Tre o quattro strati è il limite pratico; qualsiasi cosa in più dovresti considerare di usare un’immagine di sfondo o SVG invece.

Strumenti correlati