Assombrir couleur hex par %
Créez les nuances de survol et d’appui à partir d’un hexadécimal de marque avec un pourcentage fixe : #4A90D9 à 20 % devient #2873C0, toujours le même bleu. La luminosité baisse en proportion et s’arrête au noir. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Couleur
- #4A90D9
- Pourcentage
- 20
- Original
- #4A90D9
- Hex
- #2873C0
Les designers, ingénieurs front-end et auteurs de design systems ont constamment besoin de teintes plus sombres d’une couleur de marque pour les états survol, bordures, ombres et texte accessible sur fonds clairs. Deviner un nouvel hex à l’œil est lent et incohérent d’un outil à l’autre. Cette capacité accepte une couleur hex et un pourcentage d’assombrissement de zéro à cent, convertit la couleur en HSL, multiplie la luminosité par un moins ce pourcentage, plafonne le résultat au noir et renvoie l’hex plus sombre avec les détails RGB et HSL. Zéro pour cent conserve la couleur d’origine ; cent pour cent produit le noir.
Ce que signifie assombrir par pourcentage en HSL
Les couleurs sur le web sont souvent stockées en hex ou RGB, mais les pas de teinte perceptifs sont plus simples en HSL : la teinte porte le ton, la saturation la pureté et la luminosité la proximité de l’échantillon avec le noir ou le blanc. Assombrir d’un pourcentage signifie réduire la luminosité en gardant teinte et saturation fixes, de sorte qu’un bleu de marque reste bleu — simplement plus profond.
Cet outil multiplie la luminosité actuelle par un moins le pourcentage sur cent, puis plafonne le résultat pour que la luminosité ne descende jamais sous zéro. À zéro pour cent la luminosité est inchangée, donc la sortie correspond à l’hex d’entrée normalisé. À cinquante pour cent la luminosité est divisée par deux.
À cent pour cent la luminosité devient zéro et le résultat est un noir pur quelle que soit la teinte de départ. Ce modèle relatif correspond à la façon dont de nombreux jetons de design mettent à l’échelle les états interactifs : un seul jeton de base plus un facteur d’assombrissement pour le survol ou l’appui. La soustraction absolue de points de luminosité peut dépasser sur des couleurs déjà sombres ; l’échelle relative avec plafond noir reste toujours dans la plage et n’invente jamais une luminosité négative.
Contrat d’entrée : couleurs hex et pourcentage 0–100
Passez la couleur comme chaîne hex en forme courte ou longue : #RGB ou #RRGGBB, avec ou sans le dièse initial. Les formes courtes s’étendent canal par canal, ainsi #F0A devient #FF00AA avant conversion. Le champ percent est obligatoire et doit être un nombre fini entre zéro et cent inclus.
Des valeurs telles que moins dix, cent un ou un texte non numérique sont rejetées ; l’échec de validation n’est pas facturé. En cas de succès, la réponse inclut original comme hex normalisé de six chiffres en majuscules, hex comme résultat assombri, le percent numérique que vous avez envoyé, rgb avec des canaux entiers de zéro à deux cent cinquante-cinq, et hsl avec la teinte en degrés et la saturation et la luminosité sur une échelle de zéro à cent après l’étape d’assombrissement.
L’arrondi est déterministe, de sorte que relancer la même paire ne dérive pas. Utilisez percent zéro pour normaliser et développer un hex court sans changer la teinte, ou percent cent lorsque vous avez besoin d’un ancrage noir véritable issu du même chemin de code que les assombrissements partiels pour des pipelines de jetons cohérents.
Pour une nuance ou tous les états d’un bouton
Pour une vérification ponctuelle — confirmer qu’un bleu primaire s’assombrit proprement pour le survol d’un bouton, ou qu’un pas de vingt pour cent respecte encore les objectifs de contraste sur blanc — utilisez l’outil gratuit dans le navigateur sur cette page. Il n’y a pas d’appel réseau dans la transformation, ni de modèle, ni de dépendance d’horloge, donc les résultats sont sûrs en périphérie et mis en cache.
Placez le point d’accès dans un pont de plugin Figma, un complément Storybook qui prévisualise les couleurs d’état, ou une étape serveur qui matérialise des surfaces mode sombre à partir d’une palette de base claire. Si vous convertissez déjà les formats avec un convertisseur de couleurs séparé, conservez-le pour les allers-retours HEX–RGB–HSL ; utilisez cet assombrisseur lorsque l’intention de recherche est précisément une teinte plus sombre par pourcentage.
Associez les deux dans un pipeline si vous avez besoin d’un export CMYK après assombrissement, mais l’étape d’assombrissement elle-même n’a besoin que d’hex en entrée et de couleur structurée en sortie avec le noir plafonné à cent pour cent.
Cas d’usage
États survol et appuyé de l’interface
Dérivez des teintes plus sombres de boutons et de liens à partir d’un seul hex de marque pour que les styles survol et actif restent cohérents entre composants sans choisir chaque échantillon à la main.
Accents de marque pour e-mail et PDF
Précalculez des hex d’accent plus sombres pour bordures et en-têtes dans des modèles qui n’acceptent que des couleurs statiques et ne peuvent pas calculer le HSL au rendu.
Questions fréquentes
Quelles entrées accepte l’assombrissement hex par pourcentage ?
Une couleur hex (#RGB ou #RRGGBB, # optionnel) et un percent de 0 à 100.
Comment la couleur plus sombre est-elle calculée ?
L’hex est converti en HSL, la luminosité est multipliée par (1 − percent/100) et plafonnée à zéro (noir), puis reconvertie en hex, RGB et HSL. Teinte et saturation restent ; percent 100 produit le noir.
Que contient une réponse réussie ?
original (hex d’entrée normalisé), hex (résultat assombri), percent, rgb {r,g,b} et hsl {h,s,l} après assombrissement.
Est-ce la même chose qu’un convertisseur de formats de couleur ?
Non. Un convertisseur change la représentation (HEX, RGB, HSL) sans décaler la teinte. Cet outil assombrit spécifiquement en baissant la luminosité d’un pourcentage et plafonne au noir.
Pourquoi un pourcentage relatif plutôt que retirer des points de luminosité ?
Retirer des points fixes peut aller trop loin sur des couleurs déjà sombres. Réduire la luminosité d’un pourcentage reste toujours dans la plage : 50 % la divise par deux, 100 % donne du noir et rien ne devient négatif.
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/darken-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#4A90D9","percent":20}'const res = await fetch("https://api.kit.forhosting.com/color/darken-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#4A90D9",
"percent": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/darken-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#4A90D9",
"percent": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/darken-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#4A90D9","percent":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#4A90D9","percent":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/darken-percent", 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": "#4A90D9",
"percent": 20
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.darken_percent",
"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
Les valeurs hors de zéro à cent et les chaînes hex mal formées sont rejetées avec une erreur claire invalid_input. Utilisez l’outil gratuit du navigateur pour des échantillons rapides, ou l’API à $0.002 par requête réussie lorsque vous générez des palettes dans un pipeline.
Ce que signifie assombrir par pourcentage en HSL
Comme la conversion est purement mathématique avec un arrondi fixe, le même hex et le même pourcentage produisent toujours le même hex plus sombre dans le navigateur et à la périphérie de l’API, ce qui rend fiables les tests de référence et les exécutions multi-régions pour le CI et les jetons de design dans chaque environnement que vous déployez.
Contrat d’entrée : couleurs hex et pourcentage 0–100
Caractères invalides, longueurs incorrectes, chaînes vides et valeurs non textuelles échouent avec invalid_input et un message qui nomme le champ. Des alias sont acceptés par commodité : hex, from ou text pour la couleur, et amount, pct ou percentage pour le pourcentage.
Où l’exécuter : outil navigateur gratuit ou API automatisée
La même fonction pure alimente l’API lorsque vous construisez des générateurs de thèmes, exportez des jetons de design vers des propriétés personnalisées CSS ou précalculez des échelles de teintes pour des modèles d’e-mail qui ne peuvent pas exécuter de scripts client. Chaque appel API réussi coûte $0.002 ; les pourcentages invalides hors de zéro à cent et les hex mal formés ne consomment pas le solde prépayé.
Cas d'intégration
Échelles de teintes pour jetons de design
Générez des variantes sombres échelonnées pour variables CSS ou JSON de thème en appliquant des pourcentages d’assombrissement fixes aux couleurs de la palette de base en CI.
Questions techniques
Combien coûte l’API ?
$0.002 par requête réussie. L’outil navigateur est gratuit. L’entrée invalide n’est pas facturée.