Générateur d'ombres couleur
Construisez une gamme complète du sombre au clair à partir d’une couleur de marque : #3366cc avec trois paliers donne sept échantillons, de #000000 en passant par #224488 et la base jusqu’à #bbccee et #ffffff. Seule la luminosité change. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Couleur hex
- #3366cc
- Quantité
- 7
- Luminosité de base
- 50
Un générateur d'ombres de couleur prend un hex CSS de base et un nombre de pas, puis renvoie une échelle complète d'ombres plus sombres et de teintes plus claires en ne déplaçant que le canal de luminosité dans l'espace HSL. La teinte et la saturation restent fixes, de sorte que les bleus de marque restent bleus et les rouges de marque restent rouges tandis que les surfaces progressent en douceur du quasi-noir, en passant par la base, jusqu'au quasi-blanc. Les chaînes hex invalides et les nombres de pas hors de l'intervalle entier autorisé sont rejetés avec une erreur de validation claire au lieu d'un écrêtage silencieux.
Comment teintes claires et ombres font avancer la luminosité
Parte d'une couleur hex CSS telle que hash trois trois six six c c ou la forme courte hash trois six c. L'analyseur développe les codes à trois chiffres, met les chiffres en minuscules et convertit chaque paire en entiers rouge, vert et bleu de zéro à deux cent cinquante-cinq.
Ces canaux se projettent en teinte, saturation et luminosité selon les formules standard CSS et W3C : la luminosité est la moyenne des fractions maximale et minimale du canal, la saturation dépend de cette luminosité, et la teinte se mesure en degrés autour de la roue des couleurs, les gris achromatiques rapportant une teinte nulle. Les ombres ne se mélangent pas vers le noir en RGB ; elles abaissent seulement le pourcentage de luminosité tandis que teinte et saturation restent fixes.
Pour l'indice de pas k de un au nombre de pas choisi, chaque ombre utilise une luminosité égale à la luminosité de base multipliée par un moins k sur les pas, de sorte que l'ombre la plus lointaine aboutit au noir pur avec luminosité zéro et la plus proche se place juste sous la base.
Les teintes claires élèvent la luminosité vers le blanc de la même manière : la luminosité devient la luminosité de base plus la distance restante jusqu'à cent, mise à l'échelle par k sur les pas, de sorte que la teinte la plus lointaine est le blanc pur. Une fois chaque nouvelle luminosité connue, le même chemin CSS teinte-vers-rgb reconvertit HSL en canaux entiers et en code hex à six chiffres en minuscules.
Il n'y a ni graines aléatoires, ni horodatages d'horloge, ni appels réseau, de sorte que les mêmes entrées donnent toujours la même échelle ordonnée. Les formes hex alpha à quatre ou huit chiffres sont rejetées car ce contrat est uniquement RGB opaque. Les pas non entiers ou les valeurs hors de un à vingt échouent à la validation pour que les clients ne dépassent pas en silence l'intervalle autorisé.
Ce que vous envoyez et ce que vous recevez
Envoyez deux champs : color comme chaîne hex et steps comme entier entre un et vingt inclus. Chaque échantillon inclut role, index, step, hex, entiers r g b, nombres de teinte saturation luminosité et chaînes imprimables rgb et hsl. Role vaut shade pour les pas plus sombres, base pour l'original et tint pour les pas plus clairs ; step est négatif pour les ombres, zéro pour la base et positif pour les teintes claires afin que les clients trient ou filtrent sans redériver la luminosité.
Une courte chaîne formula documente les règles de progression de L pour la documentation et le support. Contrôles typiques : trois pas sur hash trois trois six six c c, cinq pas sur le rouge pur, et confirmation qu'un hex invalide échoue à la validation. Utilisez le formulaire gratuit du navigateur pour les revues de design et les rampes rapides, puis appelez le contrat identique depuis des scripts pour la génération en masse d'échelles de tokens.
Maintenez steps dans l'intervalle documenté plutôt que de compter sur des écrêtages silencieux — cet outil échoue de façon explicite pour que les systèmes de design restent prévisibles.
Où les échelles d'ombre interviennent dans le travail réel
Les designers produit construisent des rampes d'interface complètes en générant des états active plus sombres et des fonds hover plus clairs à partir d'un primaire de marque sans dériver la teinte, de sorte qu'une échelle de CTA bleu marine reste bleu marine de l'état pressé à la surface douce. Les revues d'accessibilité explorent des compagnons de couleurs de texte ou d'icônes le long d'une échelle de luminosité, puis remettent les candidats à un vérificateur de contraste plutôt que de deviner les demi-teintes à l'œil.
Les équipes marketing produisent des pastels de campagne et des accents profonds à partir de logos saturés pour bannières sociales et en-têtes d'e-mail tout en préservant l'identité de teinte de la marque. Les ingénieurs frontend scriptent des rampes d'ombre en intégration continue afin qu'une seule couleur de marque rende une échelle documentée pour graphiques, puces, badges et boutons secondaires.
Si vous avez ensuite besoin d'un seul pas d'éclaircissement, de convertir HSL en RGB, de construire une palette analogue ou de vérifier le contraste WCAG, traitez-les comme des intentions de recherche et des pages d'atterrissage distinctes plutôt que de surcharger cette page d'ombres.
Cas d’usage
États hover et pressé de l'interface
Dérivez des ombres pressées plus sombres et des teintes hover plus claires à partir d'une couleur primaire en gardant teinte et saturation stables.
Pastels marketing et accents profonds
Produisez des échantillons plus clairs et plus sombres prêts pour la campagne à partir de couleurs de logo saturées pour bannières, diapositives et créations sociales.
Questions fréquentes
Comment ce générateur d'ombres de couleur construit-il l'échelle ?
Il convertit hex en HSL, fait progresser la luminosité vers le noir pour les ombres (L = L×(1−k/steps)) et vers le blanc pour les teintes claires (L = L+(100−L)×(k/steps)), garde teinte et saturation fixes, puis reconvertit chaque pas en hex et RGB.
Que signifie le paramètre steps ?
Steps est le nombre de marches de luminosité de chaque côté de la couleur de base (entier 1–20). Le total d'échantillons vaut 2×steps+1 en incluant la base, ordonnés du plus sombre au plus clair.
Quelle est la différence entre une ombre et une teinte claire ?
Une ombre abaisse la luminosité HSL vers le noir ; une teinte claire l'élève vers le blanc. Les deux conservent la teinte et la saturation d'origine pour que l'identité de marque reste stable.
Quels formats hex sont acceptés ?
Hex CSS à trois et six chiffres, avec ou sans dièse initial.
Quel est le coût ?
L'outil du navigateur est gratuit et s'exécute en local.
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/color/shades \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3366cc","steps":3}'const res = await fetch("https://api.kit.forhosting.com/color/shades", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3366cc",
"steps": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/shades",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3366cc",
"steps": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/shades", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3366cc","steps":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3366cc","steps":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/shades", 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
{
"color": "#3366cc",
"steps": 3
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.shades",
"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.
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
Le nombre de pas est le nombre de marches de chaque côté de la base : trois pas donnent trois ombres plus sombres, la couleur d'origine et trois teintes plus claires, soit sept échantillons ordonnés du plus sombre au plus clair. Aucun appel réseau, aucune graine aléatoire ni dérive de modèle — la même couleur et les mêmes pas produisent toujours le même JSON.
Ce que vous envoyez et ce que vous recevez
Color accepte aussi les alias hex et base ; steps accepte count et n. Champs manquants, caractères non hex, longueurs incorrectes, NaN, Infinity, non-entiers et steps hors de l'intervalle fermé échouent avec invalid_input et ne sont pas facturés. En cas de succès la réponse renvoie la couleur normalisée à six chiffres et l'entier steps, puis fournit count égal à deux fois steps plus un, lightness_base du HSL d'origine, un échantillon base, des tableaux séparés shades et tints, un tableau complet swatches ordonné du plus sombre au plus clair, et une liste de commodité hexes. Le tarif des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé.
Où les échelles d'ombre interviennent dans le travail réel
Les pipelines de tokens de design émettent des variables CSS ou des échelles de thème JSON à partir d'un seul hex de base et stockent chaque échantillon dérivé pour les surfaces en mode clair et mode sombre. Comme cette capacité est un moteur de parse pur, le prix de l'API est la base publiée de $0.002 par élément réussi et l'échec de validation ne consomme pas le solde.
Cas d'intégration
Rampes d'ombre pour tokens de design
Générez une échelle complète du plus sombre au plus clair à partir d'un hex de marque pour variables CSS, JSON de thème et systèmes multi-marques.