Générez une valeur box-shadow CSS
Indiquez le décalage, le flou, l'extension et la couleur d'une ombre et obtenez un box-shadow CSS prêt à coller : 4, 8, 16 et 0 deviennent 4px 8px 16px 0px suivis de votre couleur. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Décalage x
- 4
- Décalage y
- 8
- Flou
- 16
- Étendue
- 0
- Couleur
- rgb(15 23 42 / 0.25)
- Ombre de boîte
- 4px 8px 16px 0px rgb(15 23 42 / 0.25)
Créez une valeur box-shadow CSS prête à copier à partir de cinq entrées explicites, sans assembler vous-même la syntaxe. Indiquez les décalages horizontal et vertical, le rayon de flou, le rayon d’étalement et toute couleur reconnue par CSS. Le générateur valide les champs numériques, refuse les valeurs négatives de flou ou d’étalement et renvoie une ombre formatée de façon cohérente en pixels. Il convient aux travaux de conception interactifs, aux chaînes de jetons de design, aux générateurs de composants et aux tests qui doivent produire exactement le même résultat pour une entrée donnée.
Positionnez l’ombre avec les décalages horizontal et vertical
Les deux valeurs sont exprimées en pixels CSS dans le résultat généré. Un décalage horizontal positif déplace l’ombre vers la droite, tandis qu’une valeur négative la déplace vers la gauche. Un décalage vertical positif la déplace vers le bas et une valeur négative vers le haut.
Zéro conserve le centrage sur l’axe concerné. Ces champs acceptent des décimales lorsqu’un système de design utilise des espacements fractionnaires, et le générateur préserve le nombre validé sans l’arrondir discrètement. Tenez compte de la source lumineuse apparente : une lumière placée en haut à gauche produit généralement une ombre en bas à droite.
De petits décalages donnent souvent une impression de proximité et de subtilité, alors que de grandes valeurs peuvent faire paraître l’élément surélevé ou volontairement graphique. L’outil ne déduit pas la direction à partir du flou, de la couleur ou du type de composant. Vous gardez donc la maîtrise des valeurs et pouvez les reproduire exactement dans vos feuilles de style et vos builds.
Réglez la douceur et l’emprise grâce au flou et à l’étalement
Le rayon de flou contrôle la transition progressive entre la zone la plus marquée de l’ombre et la transparence. Une valeur nulle crée un bord net, tandis que des valeurs plus élevées produisent une ombre plus douce et visuellement plus large. Le rayon d’étalement agrandit la forme de l’ombre avant l’application du flou.
Zéro respecte l’emprise initiale de l’élément et une valeur positive l’étend de tous les côtés. Cette capacité refuse volontairement les valeurs négatives de flou et d’étalement. Saisissez chaque valeur sous forme de nombre brut ; le CSS renvoyé ajoute les unités px dans l’ordre requis.
Le flou et l’étalement sont deux réglages différents : augmenter l’un ne remplace pas l’autre. Pour une ombre d’interface discrète, associez un décalage modeste à un flou moyen et à peu ou pas d’étalement. Pour un contour de focus marqué ou un effet d’affiche, un flou nul et un étalement plus fort créent une bordure nette.
Prévisualisez le résultat sur la surface réelle, car le contraste et les couleurs environnantes modifient la douceur perçue.
Choisissez une couleur et appliquez la valeur produite
Le champ de couleur accepte une valeur CSS non vide, notamment un nom de couleur, une notation hexadécimale ou une forme fonctionnelle telle que rgb() ou hsl(). La transparence alpha est souvent essentielle à une ombre naturelle, car une couleur sombre opaque peut sembler lourde sur une surface claire et terne sur un fond coloré. Le générateur supprime les espaces superflus autour de la valeur, vérifie l’équilibre des parenthèses et refuse les caractères susceptibles de rompre une déclaration.
Affectez cette valeur à la propriété box-shadow, insérez-la dans une propriété personnalisée ou conservez-la comme jeton de design. La réponse est une valeur et non une déclaration complète ; votre application choisit donc le sélecteur et décide d’ajouter ou non d’autres couches. Une requête produit une seule couche d’ombre.
Pour plusieurs ombres, générez et vérifiez chaque couche séparément avant de joindre les valeurs par des virgules. L’exécution est déterministe et ne dépend ni du réseau, ni d’un modèle, ni du hasard, ni du stockage, ni de l’horloge, ce qui la rend adaptée aux instantanés et aux builds reproductibles.
Cas d’usage
Créez un jeton d’ombre pour un composant
Transformez des paramètres de design structurés en valeur box-shadow stable pour les cartes, menus, boîtes de dialogue et commandes flottantes.
Alimentez un éditeur visuel de styles
Convertissez les curseurs et sélecteurs de couleur en CSS copiable tout en refusant le flou ou l’étalement négatif.
Produisez des feuilles de style reproductibles
Exploitez le résultat déterministe dans un script de build, un générateur de composants, un test d’instantané ou une chaîne de thèmes.
Questions fréquentes
Un décalage horizontal ou vertical peut-il être négatif ?
Oui. Un décalage horizontal négatif déplace l’ombre à gauche et un décalage vertical négatif la déplace vers le haut.
Quelles unités la sortie utilise-t-elle ?
Les quatre valeurs numériques sont émises en pixels. Fournissez des nombres finis sans ajouter de texte d’unité.
Le générateur crée-t-il plusieurs couches d’ombre ?
Non. Chaque requête produit une couche. Générez-les séparément, puis joignez les valeurs vérifiées par des virgules si votre CSS exige plusieurs ombres.
Quelle différence entre le flou et l'extension d'une ombre ?
Le flou adoucit le bord : à zéro il reste net, et plus la valeur grandit, plus le dégradé est doux et large. L'extension agrandit la forme de l'ombre de tous côtés avant le flou, donc augmenter l'un ne remplace pas l'autre.
Comment rendre une ombre semi-transparente ?
Utilisez une couleur avec transparence, par exemple une valeur rgb() ou hsl() avec un canal alpha, comme rgb(15 23 42 / 0.25). Une couleur sombre opaque paraît souvent lourde, alors qu'une teinte translucide ressemble à une ombre naturelle.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/box-shadow-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}'const res = await fetch("https://api.kit.forhosting.com/web/box-shadow-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/box-shadow-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/box-shadow-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/box-shadow-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.box_shadow_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Positionnez l’ombre avec les décalages horizontal et vertical
Commencez par offset_x et offset_y, qui déterminent le déplacement de l’ombre par rapport à l’élément.
Réglez la douceur et l’emprise grâce au flou et à l’étalement
Elle propose ainsi un contrat simple fondé sur des valeurs positives ou nulles et une erreur invalid_input claire, plutôt qu’un style inattendu.
Choisissez une couleur et appliquez la valeur produite
Il renvoie un champ box_shadow contenant les cinq parties dans l’ordre canonique CSS : décalage horizontal, décalage vertical, rayon de flou, rayon d’étalement et couleur.
Questions techniques
Combien coûte chaque valeur générée ?
L’outil exécuté dans le navigateur est gratuit. Une requête API réussie coûte $0.002 par élément généré.
Le flou ou l’étalement peuvent-ils être négatifs ?
Non. Cette capacité exige des valeurs positives ou nulles et renvoie sinon une erreur invalid_input.