Générateur d'ombres CSS : Box Shadow et Text Shadow simplifiés
· 12 min de lecture
Table des matières
- Comprendre les ombres CSS
- Box Shadows : fondamentaux et syntaxe
- Techniques avancées de Box Shadow
- Les Text Shadows expliquées
- Effets créatifs de Text Shadow
- Combiner Box et Text Shadows
- Performance et compatibilité des navigateurs
- Principes de conception d'ombres et bonnes pratiques
- Modèles d'ombres courants dans le design web moderne
- Considérations d'accessibilité
- Questions fréquemment posées
- Articles connexes
Comprendre les ombres CSS
Avez-vous déjà remarqué comment certains éléments web semblent « sortir » de l'écran tandis que d'autres paraissent plats et sans vie ? Cette magie visuelle provient souvent d'une fonctionnalité CSS puissante : les ombres. Elles donnent aux éléments comme les boutons, les cartes et les titres une touche de profondeur qui transforme une interface bidimensionnelle en quelque chose de tangible et interactif.
Les ombres CSS ne sont pas que des fioritures décoratives. Elles servent des objectifs fonctionnels critiques dans le design web moderne. Les ombres créent une hiérarchie visuelle, guident l'attention de l'utilisateur, indiquent l'interactivité et établissent des relations spatiales entre les éléments. Quand un bouton a une ombre subtile, les utilisateurs comprennent instinctivement qu'il est cliquable. Quand cette ombre change au survol, cela confirme que l'élément est interactif.
La psychologie derrière les ombres est ancrée dans notre perception du monde physique. Dans la vie réelle, les objets projettent des ombres en fonction de leur distance d'une surface et de la source lumineuse. En imitant ces phénomènes naturels dans le design web, nous créons des interfaces qui semblent familières et intuitives. Une carte avec une ombre douce semble flotter au-dessus de la page, tandis qu'un bouton enfoncé avec une ombre interne paraît enfoncé dans la surface.
Conseil pro : Les ombres doivent améliorer votre design, pas le dominer. Les meilleures ombres sont souvent celles que les utilisateurs ne remarquent pas consciemment mais qui leur manqueraient si elles étaient supprimées. Commencez subtilement et augmentez l'intensité uniquement lorsque nécessaire pour l'emphase.
CSS fournit deux propriétés d'ombre principales : box-shadow pour les conteneurs d'éléments et text-shadow pour la typographie. Bien qu'elles partagent des modèles de syntaxe similaires, chacune sert des objectifs distincts et offre des possibilités créatives uniques. Comprendre les deux vous permet de créer des effets visuels sophistiqués qui élèvent l'ensemble de votre système de design.
Box Shadows : fondamentaux et syntaxe
Les box shadows sont les chevaux de bataille des effets de profondeur CSS. Elles s'appliquent à l'ensemble du modèle de boîte d'un élément, créant des ombres autour des boutons, cartes, images, conteneurs et pratiquement n'importe quel élément HTML. La propriété box-shadow est remarquablement flexible, supportant tout, des indices d'élévation subtils aux effets d'éclairage dramatiques.
Voici la syntaxe complète pour les box shadows :
element {
box-shadow: [inset] offset-x offset-y blur-radius spread-radius color;
}
Décomposons chaque composant en détail :
| Propriété | Description | Exemples de valeurs |
|---|---|---|
inset |
Mot-clé optionnel qui crée une ombre intérieure au lieu d'extérieure | inset (ou omettre) |
offset-x |
Distance horizontale ; positif déplace à droite, négatif déplace à gauche | 0px, 5px, -3px |
offset-y |
Distance verticale ; positif déplace vers le bas, négatif déplace vers le haut | 0px, 8px, -2px |
blur-radius |
Douceur des bords de l'ombre ; des valeurs plus grandes créent des ombres plus douces | 0px, 10px, 25px |
spread-radius |
Agrandit ou réduit la taille de l'ombre ; positif agrandit, négatif réduit | 0px, 5px, -2px |
color |
Couleur de l'ombre ; utilisez RGBA pour contrôler la transparence | rgba(0,0,0,0.1), #333 |
Voici un exemple pratique d'un bouton moderne avec une ombre d'élévation subtile :
.button-primary {
background: #6366f1;
color: white;
padding: 12px 24px;
border-radius: 8px;
border: none;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: box-shadow 0.3s ease;
}
.button-primary:hover {
box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
}
Cela crée un bouton qui semble légèrement élevé de la page. Au survol, l'ombre devient plus grande et plus douce, créant l'illusion que le bouton se soulève plus près de l'utilisateur. Cette interaction subtile fournit un retour visuel immédiat que l'élément est interactif.
Astuce rapide : Utilisez notre Générateur CSS Box Shadow pour concevoir visuellement vos ombres et obtenir le code exact. C'est beaucoup plus rapide que les essais-erreurs dans votre éditeur de code.
Comprendre les valeurs de décalage
Les valeurs de décalage (offset-x et offset-y) déterminent où votre ombre apparaît par rapport à l'élément. Ces valeurs simulent la position d'une source lumineuse :
- Offset-x positif : L'ombre apparaît à droite (source lumineuse à gauche)
- Offset-x négatif : L'ombre apparaît à gauche (source lumineuse à droite)
- Offset-y positif : L'ombre apparaît en dessous (source lumineuse au-dessus)
- Offset-y négatif : L'ombre apparaît au-dessus (source lumineuse en dessous)
- Les deux à zéro : L'ombre apparaît uniformément autour de l'élément (source lumineuse centrée)
Les ombres les plus naturelles utilisent des valeurs offset-y positives car nous sommes habitués à la lumière venant d'en haut dans le monde physique. Un modèle courant est 0 2px pour une élévation subtile ou 0 8px pour une profondeur plus prononcée.
Rayon de flou et rayon d'étalement
Le rayon de flou contrôle la douceur de l'ombre. Une valeur de 0 crée une ombre aux bords nets, tandis que des valeurs plus grandes créent des ombres de plus en plus douces et diffuses. Pour la plupart des éléments d'interface, des valeurs de flou entre 4px et 20px fonctionnent bien.
Le rayon d'étalement est souvent mal compris. Il agrandit ou réduit l'ombre avant que le flou ne soit appliqué. Un étalement positif rend l'ombre plus grande que l'élément, tandis qu'un étalement négatif la rend plus petite. C'est utile pour créer des ombres qui ne s'étendent pas aussi loin que l'élément lui-même.
Techniques avancées de Box Shadow
Une fois que vous maîtrisez les box shadows de base, vous pouvez explorer des techniques avancées qui créent des effets visuels sophistiqués. Ces méthodes sont utilisées par les principaux systèmes de design et les applications web modernes pour obtenir des interfaces polies et professionnelles.
Ombres superposées pour une profondeur réaliste
Les ombres du monde réel ne sont pas uniformes. Elles ont des composants à la fois nets et doux. Vous pouvez empiler plusieurs ombres sur un seul élément en les séparant par des virgules :
.card-elevated {
box-shadow:
0 1px 3px rgba(0, 0, 0, 0.12),
0 1px 2px rgba(0, 0, 0, 0.24);
}
.card-floating {
box-shadow:
0 10px 20px rgba(0, 0, 0, 0.15),
0 3px 6px rgba(0, 0, 0, 0.10);
}
Cette technique, popularisée par Material Design, crée des ombres plus réalistes en combinant une ombre plus grande et plus douce avec une plus petite et plus nette. Le résultat imite la façon dont la lumière se comporte dans le monde physique, où les ombres ont à la fois une ombre (noyau sombre) et une pénombre (bords doux).
Ombres internes pour la profondeur et la texture
Le mot-clé inset inverse l'ombre pour qu'elle apparaisse à l'intérieur de l'élément plutôt qu'à l'extérieur. Cela crée l'apparence de profondeur, de récession ou de texture :
.input-field {
background: white;
border: 1px solid #e5e7eb;
padding: 10px 15px;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.06);
}
.pressed-button {
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
}
Les ombres internes sont parfaites pour les champs de formulaire, leur donnant une apparence subtilement enfoncée qui suggère qu'ils sont « gravés dans » la page. Elles sont également excellentes pour les états de bouton actif/enfoncé, créant un retour tactile.
Ombres colorées pour l'identité de marque
Qui a dit que les ombres devaient être noires ou grises ? Les ombres colorées peuvent renforcer l'identité de marque et créer des styles visuels distinctifs :
.brand-card {
background: white;
border-radius: 12px;
box-shadow: 0 8px 16px rgba(99, 102, 241, 0.2);
}
.success-button {
background: #10b981;
box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}
Utiliser la couleur de votre marque dans les ombres à faible opacité crée des designs cohérents et mémorables. Cette technique est particulièrement efficace pour les boutons d'appel à l'action et les cartes de contenu en vedette.
Conseil pro : Lors de l'utilisation d'ombres colorées, gardez l'opacité faible (0.1 à 0.3) pour maintenir la subtilité. Des ombres colorées trop saturées peuvent paraître criardes et peu professionnelles.
Neumorphisme et Soft UI
Le neumorphisme crée des interfaces qui semblent sortir ou s'enfoncer dans l'arrière-plan. Cela nécessite de combiner des ombres claires et sombres :
.neumorphic-card {
background: #e0e5ec;
border-radius: 20px;
box-shadow:
9px 9px 16px rgba(163, 177, 198, 0.6),
-9px -9px 16px rgba(255, 255, 255, 0.5);
}
Bien que le neumorphisme ait connu un moment de popularité, utilisez-le avec parcimonie. Il peut créer des problèmes d'accessibilité en raison du faible contraste et fonctionne mieux pour les éléments décoratifs plutôt que pour les composants d'interface critiques.
Les Text Shadows expliquées
Les text shadows s'appliquent spécifiquement au contenu textuel, créant de la profondeur, de l'emphase ou des effets décoratifs sur la typographie. La propriété text-shadow utilise une syntaxe plus simple que les box shadows mais offre des possibilités créatives tout aussi puissantes.
Voici la syntaxe de base :
element {
text-shadow: offset-x offset-y blur-radius color;
}
Notez que les text shadows n'incluent pas le rayon d'étalement ni le mot-clé inset. La propriété se concentre sur trois valeurs clés :
| Propriété | Description | Plage typique |
|---|---|---|
offset-x |
Position horizontale de l'ombre | -3px à 3px |
offset-y |
Position verticale de l'ombre | -3px à 3px |
blur-radius |
Douceur de l'ombre (optionnel) | 0px à 10px |
color |
Couleur de l'ombre | Toute couleur valide |
Voici un exemple pratique pour un titre hero :
h1.hero-title {
font-size: 48px;
font-weigh