CSS-Box-Schatten-Generator

Nächste

Erzeugen Sie jeweils eine box-shadow-Regel: Legen Sie horizontalen und vertikalen Offset, Unschärfe, Verbreitung, Farbe und optional inset fest und kopieren Sie das Ergebnis. Echte Schatten brauchen meist zwei oder drei Schichten, daher erzeugen Sie jede Schicht einzeln und verbinden die Regeln mit einem Komma.

So gestalten Sie einen Box-Schatten

  1. 1

    Schattenwerte festlegen

    Horizontaler Offset, vertikaler Offset, Unschärferadius, Verbreitung und Farbe mit Opazität.

  2. 2

    Inset umschalten

    Schalten Sie den Schatten auf inset um, um einen inneren Schatten zu erhalten, nützlich für gedrückte Schaltflächen und Hohlräumeffekte.

  3. 3

    Farbe wählen

    Schwarz mit niedriger Opazität ist der Klassiker. Farbige Schatten (abgestimmt auf den Farbton des Elements, dunkler) wirken natürlicher.

  4. 4

    CSS kopieren

    Kopieren Sie die einzelne Schattenregel und fügen Sie sie in Ihr Stylesheet ein. Für mehrschichtige Schatten erzeugen Sie jede Schicht einzeln und verbinden die Regeln mit einem Komma.

Die box-shadow-Syntax

box-shadow: <x-offset> <y-offset> <blur> <spread> <colour> [inset];
  • x-offset: positiv = rechts, negativ = links.
  • y-offset: positiv = unten, negativ = oben.
  • blur: 0 = harter Rand, höher = weicher. Sichtbare Größe ist ungefähr 1,5x Unschärfe über das Element hinaus.
  • spread: zusätzliche Größe über das Element hinaus. Positiv vergrößert den Schatten; negativ verkleinert ihn (nützlich für subtile Halos).
  • colour: unterstützt jede CSS-Farbe. rgba(0, 0, 0, 0.15) ist das A und O.
  • inset: Schlüsselwort, das den Schatten innerhalb des Elements umschaltet.

Geschichtete Schatten sehen realistisch aus

Dieser Generator erzeugt jeweils eine einzelne Schattenregel. Um einen mehrschichtigen Schatten zu bauen, erzeugen Sie jede Schicht einzeln und verbinden die Regeln mit einem Komma.

Ein Schatten mit 0 0 40px sieht verschwommen aus. Zwei Schatten, ein kleiner scharfer nahe am Element und ein größerer weicher weiter entfernt, ahmen nach, wie echtes Licht streut.

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

Die erste Zeile gibt den engen Kontakt-Schatten; die zweite den weicheren Umgebungs-Schatten. Dieses einzelne Muster deckt 80% der Kartenstil-UI ab.

Elevationssysteme

Material Design verwendet 6 Elevationsstufen, jede mit einem anderen Schattenstapel. Vereinfacht:

Elevation Schatten
1 (ruhend) 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 (gehoben) 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22)
5 (schwebend) 0 19px 38px rgba(0,0,0,.30), 0 15px 12px rgba(0,0,0,.22)

Wählen Sie einen pro Elevationsrolle und verwenden Sie ihn konsistent.

Farbige Schatten wirken natürlicher

Reine schwarze Schatten wirken künstlich, weil echte Schatten von der darunter liegenden Oberfläche gefärbt werden. Versuchen Sie:

box-shadow: 0 12px 24px rgba(40, 80, 120, 0.18);
  • ein kühles Blau-Grau anstelle von reinem Schwarz. Auf warmen Hintergründen verwenden Sie einen wärmeren Farbton.

Leistung

Box-Schatten werden bei jedem Neuzeichnen gemalt. Große, schwere Schatten auf vielen Elementen können das Scrollen verlangsamen. Milderungen:

  • Verwenden Sie transform: translateZ(0) auf dem Element, um eine zusammengesetzte Ebene zu erzwingen.
  • Ersetzen Sie komplexe Schatten durch filter: drop-shadow(), nur wenn Sie möchten, dass der Schatten einem Clip-Pfad folgt (es ist im Allgemeinen langsamer).
  • Begrenzen Sie Schatten auf Elementen, die häufig neu gerendert werden.

Inset für gedrückte Zustände

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

Inset-Schatten erzeugen einen vertieften Look, die Schaltfläche erscheint, als wäre sie in die Oberfläche gedrückt. Kombinieren Sie dies mit einem kleinen nach unten gerichteten transform: translateY(1px) für einen taktilen Klick.

Häufig gestellte Fragen

In der Regel, weil die Unschärfe zu niedrig oder die Verbreitung zu hoch ist. Ein scharfkantiger Schatten ohne Unschärfe sieht aus wie ein doppeltes Element. Erhöhen Sie die Unschärfe (20-30px ist ein gängiger Ausgangspunkt) und halten Sie die Verbreitung bei 0 oder sehr kleinen negativen Werten.

Box-shadow folgt dem Border-Box des Elements, einschließlich border-radius, sodass runde Karten automatisch schön gerundete Schatten erhalten. Für Clip-Pfad-Formen folgt box-shadow nicht dem Clip; verwenden Sie stattdessen filter: drop-shadow().

Offsetten Sie den Schatten stark in die gewählte Richtung und verwenden Sie negative Verbreitung, um die gegenüberliegende Seite zu verbergen. Oder verwenden Sie zwei Schatten, einen sichtbar auf der Zielseite, einen anderen mit negativer Verbreitung, um das unerwünschte Überlaufen zu “essen”.

Es gibt keine harte Grenze, aber jeder Schatten ist ein weiterer Maldurchgang. Drei bis vier Schichten sind die praktische Obergrenze; alles darüber hinaus sollten Sie in Betracht ziehen, ein Hintergrundbild oder SVG zu verwenden.

Verwandte Tools