CSS-box-shadow-generator

Volgende

Maak telkens één box-shadow-regel: stel de horizontale en verticale offset, vervaging, spreiding, kleur en optionele inset in en kopieer het resultaat. Echte schaduwen hebben meestal twee of drie lagen nodig, dus genereer elke laag afzonderlijk en verbind de regels met een komma.

Hoe ontwerp je een box-shadow

  1. 1

    Stel de schaduwwaarden in

    Horizontale offset, verticale offset, vervagingsradius, spreiding en kleur met opaciteit.

  2. 2

    Schakel inset om

    Zet de schaduw om naar inset voor een binnenschaduw; handig voor ingedrukte knoppen en holle effecten.

  3. 3

    Kies de kleur

    Zwart met een lage opaciteit is de klassieker. Gekleurde schaduwen (afgestemd op de tint van het element, maar donkerder) ogen natuurlijker.

  4. 4

    Kopieer de CSS

    Kopieer de enkele schaduwregel en plak die in je stylesheet. Voor gelaagde schaduwen genereer je elke laag afzonderlijk en combineer je de regels met een komma.

De box-shadow-syntaxis

box-shadow: <x-offset> <y-offset> <blur> <spread> <colour> [inset];
  • x-offset: positief = rechts, negatief = links.
  • y-offset: positief = omlaag, negatief = omhoog.
  • blur: 0 = harde rand, hoger = zachter. De zichtbare omvang reikt ongeveer 1,5× de vervaging buiten het element.
  • spread: extra omvang buiten het element. Positief vergroot de schaduw; negatief verkleint hem (handig voor subtiele halo’s).
  • colour: ondersteunt elke CSS-kleur. rgba(0, 0, 0, 0.15) is de standaardkeuze.
  • inset: trefwoord dat de schaduw naar de binnenkant van het element keert.

Gelaagde schaduwen ogen realistisch

Deze generator levert telkens één schaduwregel op; om een gelaagde schaduw te bouwen, genereer je elke laag afzonderlijk en combineer je de regels met een komma.

Eén schaduw met 0 0 40px ziet er wazig uit. Twee schaduwen, een kleine, scherpe dicht bij het element en een grotere, zachte verder weg, bootsen na hoe echt licht zich verstrooit.

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

De eerste regel geeft de strakke contactschaduw; de tweede de zachtere omgevingsschaduw. Dit ene patroon dekt 80% van de UI in kaartstijl.

Elevatiesystemen

Material Design gebruikt 6 elevatieniveaus, elk met een andere schaduwstapel. Vereenvoudigd:

Elevatie Schaduw
1 (in rust) 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 (opgetild) 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22)
5 (zwevend) 0 19px 38px rgba(0,0,0,.30), 0 15px 12px rgba(0,0,0,.22)

Kies er één per elevatierol en gebruik die consequent.

Gekleurde schaduwen ogen natuurlijker

Zuiver zwarte schaduwen ogen kunstmatig, omdat echte schaduwen gekleurd worden door het oppervlak eronder. Probeer eens:

box-shadow: 0 12px 24px rgba(40, 80, 120, 0.18);

Een koel blauwgrijs in plaats van zuiver zwart. Gebruik op warme achtergronden een warmere tint.

Prestaties

Box-shadows worden bij elke herteken-bewerking opnieuw getekend. Grote, zware schaduwen op veel elementen kunnen het scrollen vertragen. Maatregelen:

  • Gebruik transform: translateZ(0) op het element om een samengestelde laag af te dwingen.
  • Vervang complexe schaduwen pas door filter: drop-shadow() als je wilt dat de schaduw een clip-path volgt (dit is over het algemeen trager).
  • Beperk schaduwen op elementen die vaak opnieuw worden gerenderd.

Inset voor ingedrukte toestanden

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

Inset-schaduwen bootsen een verzonken uiterlijk na; de knop lijkt in het oppervlak te zijn gedrukt. Combineer dit met een kleine, neerwaartse transform: translateY(1px) voor een tastbare klik.

Veelgestelde vragen

Meestal omdat de vervaging te laag of de spreiding te hoog is. Een schaduw met een harde rand en geen vervaging lijkt op een gedupliceerd element. Verhoog de vervaging (20–30px is een veelgebruikt startpunt) en houd de spreiding op 0 of op zeer kleine negatieve waarden.

Box-shadow volgt de border-box van het element, inclusief de border-radius, zo krijgen afgeronde kaarten automatisch mooi afgeronde schaduwen. Voor clip-path-vormen volgt box-shadow de clip niet; gebruik in plaats daarvan filter: drop-shadow().

Verschuif de schaduw flink in de gekozen richting en gebruik een negatieve spreiding om de tegenoverliggende kant te verbergen. Of gebruik twee schaduwen, één zichtbaar aan de doelkant en een tweede met negatieve spreiding om de ongewenste uitloop “op te eten”.

Er is geen harde limiet, maar elke schaduw is weer een extra tekenbewerking. Drie tot vier lagen is het praktische plafond; meer dan dat en je kunt beter een achtergrondafbeelding of SVG gebruiken.

Gerelateerde tools