Menu

Générateur de Box Shadow CSS

Conçois un box-shadow CSS multi-couches avec aperçu live et copie le CSS prêt à l'emploi.

Par Nethanel Bar, Co-founder & CEO

Dernière mise à jour

Prêt à vraiment apprendre à coder ?

Coddy vous apprend en écrivant du vrai code dans votre navigateur : leçons interactives, retour immédiat et aide de l'IA quand vous bloquez.

Qu'est-ce qu'un générateur de box-shadow ?

box-shadow est la propriété CSS qui ajoute ombres, halos et creux à n'importe quel élément. C'est le plus gros levier pour donner de l'*élévation* à un design plat - les cartes décollent de la page, les modales flottent, les boutons paraissent cliquables.

L'astuce, c'est qu'une *bonne* ombre est rarement une seule couche. Les ombres réelles sont plus douces et reçoivent de la lumière ambiante - la plupart des design systems (Material, iOS, Tailwind) empilent 2 à 3 déclarations box-shadow avec des offsets et opacités différents. À la main c'est laborieux ; un générateur te laisse régler chaque couche visuellement et voir le rendu combiné en direct.

Le générateur Coddy gère un nombre illimité de couches, les ombres *externes* et *inset*, la couleur et l'opacité par couche, et des presets pour les motifs les plus courants : cartes discrètes, drops nets, halos de marque, creux inset et surfaces neumorphic. Copie le CSS et colle-le dans ta feuille de styles - sans upload, sans compte, sans filigrane.

Ce qu'il faut savoir sur box-shadow

  • La syntaxe est box-shadow: [inset] <x> <y> <blur> <spread> <color>. inset met l'ombre *à l'intérieur* de l'élément ; sans lui, elle tombe à l'extérieur.
  • *Blur* adoucit le bord - plus la valeur est grande, plus l'ombre est diffuse. *Spread* gonfle ou rétrécit l'ombre avant le blur (valeurs négatives = retrait, utile pour des lifts internes doux).
  • Plusieurs ombres se séparent par une virgule et s'empilent de l'arrière vers l'avant dans l'ordre écrit - la première déclarée se retrouve *sous* les suivantes dans le rendu final.
  • Utilise rgba() (ou hsla()) pour la couleur, ça te laisse régler l'opacité par couche. Noir pur en faible opacité se lit comme un gris doux ; noir pur à fond se lit comme une découpe dure.
  • box-shadow est composée par le GPU et fait partie des améliorations visuelles les moins chères. Elle n'affecte pas le layout - l'élément garde sa taille et sa position.

Comment dessiner un box-shadow

  1. Pars d'un preset

    Choisis le preset le plus proche du rendu visé - carte discrète, élévation douce, drop net, halo de marque, creux inset, neumorphic. Les presets sont de bons points de départ à affiner.

  2. Affine la couche active

    Joue avec les sliders X/Y, blur, spread, couleur, opacité. L'aperçu à gauche se met à jour en direct. Opacité basse + blur élevé = ombres *plus douces*.

  3. Empile d'autres couches

    Clique *Ajouter une couche* pour une seconde ombre. Une vraie profondeur utilise presque toujours deux couches : une courte et serrée (ombre de contact) et une longue et douce (ombre ambiante).

  4. Active inset pour des creux

    Activer *Inset* peint l'ombre à l'intérieur de l'élément. Combinée à une légère ombre extérieure, ça donne l'effet d'un bouton appuyé.

  5. Copie le CSS

    Quand l'aperçu correspond à ton design, clique sur *Copier le CSS*. Colle le résultat dans ta feuille de styles - la règle générée inclut toutes les couches actives.

Aide-mémoire box-shadow

Chaque valeur de box-shadow: x y blur spread color et son rôle.

ValeurEffetPlage typique
Offset XDécale l'ombre horizontalement ; positif = droite−40px à 40px
Offset YDécale l'ombre verticalement ; positif = bas0 à 40px pour une lumière naturelle
BlurAdoucit le bord0 à 80px
SpreadGonfle ou rétrécit avant le blur−30 à 30px
ColorToute couleur CSS ; rgba() permet d'ajuster l'opacité par couchergba(0,0,0,0.05–0.3) pour des ombres naturelles
insetPeint l'ombre à l'intérieur de l'élément-
Plusieurs couchesSéparées par des virgules ; empilées arrière→avant2–3 couches pour une profondeur réaliste

Exemples de box-shadow à tester

Carte discrète avec contact + ambiance

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

Une ombre courte et serrée définit le point de contact, une plus longue et douce simule la lumière ambiante. C'est le motif qu'utilisent la plupart des design systems modernes.

Halo de marque

Glow coloré doux
box-shadow: 0 0 24px 4px rgba(108, 140, 255, 0.45);

Mets X et Y à zéro pour que le halo rayonne uniformément. Un petit spread positif épaissit le glow avant que le blur ne l'adoucisse. À doser - les halos colorés attirent beaucoup l'attention.

Inset façon bouton enfoncé

Ombre inset pour un look pressé
box-shadow:    inset 0 2px 6px rgba(0, 0, 0, 0.18),    inset 0 0 0 1px rgba(0, 0, 0, 0.06);

Les ombres inset se peignent à l'intérieur. Une ombre douce donne l'impression d'un creux ; un inset d'1 px ajoute un liseré interne discret pour bien le définir.

Erreurs fréquentes avec box-shadow

  • Du noir pur à forte opacité. Ça se lit comme une découpe dure, pas comme une ombre. Descends à 0.06–0.18 pour une élévation naturelle.
  • Oublier l'offset Y. Une ombre X=0/Y=0 reste *derrière* l'élément uniformément - ok pour un glow, faux pour une carte censée flotter.
  • Empiler trop de couches. Trois suffisent souvent ; dix produisent un flou confus et coûtent cher à peindre.
  • Utiliser filter: drop-shadow() et box-shadow comme s'ils étaient interchangeables. drop-shadow() suit le canal alpha d'un SVG/PNG - utile pour les formes irrégulières - mais box-shadow est plus rapide pour des éléments rectangulaires.
  • Oublier que box-shadow ignore le overflow: hidden *de l'élément lui-même*. Si le parent a overflow: hidden, l'ombre se fait couper.

FAQ CSS box-shadow

Que signifie chaque valeur de box-shadow ?
box-shadow: x y blur spread color. Les deux premiers sont des offsets ; *blur* adoucit le bord ; *spread* change la taille avant le blur ; la couleur est n'importe quelle couleur CSS (utilise rgba() pour l'opacité). Ajoute inset au début pour que l'ombre soit intérieure.
Comment empiler plusieurs ombres dans une seule règle ?
Sépare chaque ombre par une virgule. Elles s'affichent de l'arrière vers l'avant dans l'ordre écrit, donc la première finit *sous* les suivantes. Idéal pour combiner une ombre de contact serrée à une ombre ambiante douce.
Différence entre box-shadow et filter: drop-shadow() ?
box-shadow suit le rectangle de l'élément et est rapide à peindre. drop-shadow() suit le canal alpha (top pour SVGs et PNGs transparents) mais coûte plus cher. Utilise box-shadow pour cards et boutons ; drop-shadow() pour formes irrégulières.
Pourquoi mon ombre est pixelisée ?
Soit le blur est très faible (un blur 0 est volontairement net), soit l'élément est mis à l'échelle. Augmente le blur ou cherche un transform: scale() dans un ancêtre.
Le box-shadow modifie-t-il le layout ?
Non. L'ombre se peint hors de la boîte mais ne pousse pas les voisins. Si le parent doit laisser de la place, donne-lui du padding ou overflow: visible.

En savoir plus

Autres outils pour développeurs

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER