Ajustez le contraste d'une couleur par facteur
Éloignez les canaux d’une couleur du gris moyen 128 pour la rendre plus percutante, ou rapprochez-les pour l’adoucir : #3366cc avec un facteur de 1.5 devient #0d59f2. Un facteur de 1 ne change rien. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Couleur
- #3366cc
- Facteur
- 1,5
- Gris moyen
- 128
- Hex
- #0d59f2
- Résistance (Ω)
- 13
- G
- 89
Le contraste autour du gris moyen est le geste classique d'imagerie qui étire ou comprime chaque canal rouge, vert et bleu en l'éloignant du milieu huit bits cent vingt-huit, au lieu de faire glisser la luminosité HSL ou d'élever une puissance gamma. Les designers, auteurs de jetons et ingénieurs graphiques utilisent un facteur de contraste lorsqu'ils veulent des échantillons plus percutants ou plus plats sans tourner la roue de teinte ni traiter la couleur comme une photographie entière. Cet outil accepte une couleur hex CSS et un facteur fini dans l'intervalle fermé de zéro à dix, applique la règle par canal selon laquelle la sortie égale le gris moyen plus la distance signée depuis ce gris multipliée par le facteur, écrête chaque canal dans la plage légale de zéro à deux cent cinquante-cinq et renvoie l'hex ajusté ainsi que les entiers RGB. Un facteur de un laisse l'échantillon inchangé ; un facteur de zéro ramène tous les canaux au gris moyen ; les valeurs au-dessus de un augmentent le contraste et peuvent écrêter hautes lumières ou ombres.
Ce que le contraste autour du gris moyen fait aux canaux RGB
Commencez par une couleur hex CSS telle que dièse trois trois six six c c ou la forme courte dièse trois six c. L'analyseur développe les codes à trois chiffres, passe les chiffres en minuscules et convertit chaque paire en entiers rouge, vert et bleu de zéro à deux cent cinquante-cinq. Le gris moyen sur cette échelle huit bits est cent vingt-huit : le pivot entier des curseurs de contraste classiques dans les logiciels de peinture et les pipelines raster.
Chaque canal est réécrit par une arithmétique ordinaire : soustrayez le gris moyen, multipliez par le facteur de contraste, ajoutez à nouveau le gris moyen, puis arrondissez à l'entier le plus proche et écrêtez dans la boîte légale de zéro à deux cent cinquante-cinq. Les canaux déjà au gris moyen restent immobiles pour tout facteur fini, car leur distance signée est nulle. Les canaux plus sombres que le gris moyen s'en éloignent lorsque le facteur est supérieur à un et s'en rapprochent lorsqu'il est compris entre zéro et un.
Les canaux plus clairs que le gris moyen font de même dans l'autre sens. Un facteur exactement égal à un est l'identité : chaque canal arrondi correspond à l'entrée. Un facteur de zéro aplatit l'échantillon au gris moyen sur les trois canaux, soit le code hex huit zéro huit zéro huit zéro.
Les grands facteurs écrêtent : un rouge sombre peut atteindre zéro et un bleu clair deux cent cinquante-cinq, et ces extrémités restent aux murs légaux au lieu de boucler. Le même facteur s'applique indépendamment au rouge, au vert et au bleu, de sorte que l'équilibre relatif des canaux peut changer par rapport à une histoire de contraste HSL qui fige la teinte. Cette différence est volontaire : ce contrat est l'étirement linéaire autour du gris moyen, ni un curseur perceptuel ni un rapport WCAG entre deux couleurs.
Les formes hex alpha à quatre ou huit chiffres sont rejetées car le contrat est uniquement du RGB opaque.
Contrat d'entrée, forme de la réponse et validation
Envoyez deux champs : color comme chaîne hex et factor comme nombre fini de zéro à dix inclus. Chaque échantillon inclut role, hex, les entiers r g b et une chaîne rgb imprimable. Les champs de premier niveau hex, r, g et b reflètent le résultat ajusté en contraste pour les clients d'une ligne.
Une courte chaîne formula documente la règle du gris moyen par canal pour la documentation et le support. Contrôles typiques : appliquer le facteur un point cinq à un bleu moyen, appliquer le facteur zéro point cinq pour aplatir un rouge saturé vers le gris, confirmer que le facteur un renvoie l'hex d'origine, confirmer que le facteur zéro donne le gris moyen, et rejeter le facteur quinze ou une couleur manquante.
Branchez le formulaire gratuit du navigateur pour des aperçus rapides, puis appelez le même contrat depuis des scripts lorsque vous avez besoin d'une génération massive de jetons ou de contrôles d'intégration continue. Gardez le facteur dans l'intervalle documenté plutôt que de compter sur un écrêtage silencieux du multiplicateur lui-même — cet outil échoue clairement sur un mauvais facteur afin que systèmes de design et pipelines de rendu restent prévisibles d'un environnement à l'autre.
Où un facteur de contraste autour du gris moyen se justifie
Les équipes de marque et de produit conservent souvent un seul hex héroïque et ont besoin d'un compagnon plus percutant ou plus discret sans ouvrir un éditeur d'image complet ni inventer à l'œil une deuxième couleur de marque. Les auteurs de jetons de design génèrent des rampes de contraste en balayant un facteur sur un échantillon de base lorsque l'éclaircissement ou l'assombrissement HSL paraît trop pastel et que le gamma paraît trop lié à l'affichage.
Les outils de présentation et de marketing produisent des variantes de campagne à partir d'un logo saturé : augmentez le facteur pour une affiche, baissez-le pour une pastille de fond assourdie. Les auteurs de supports d'enseignement de l'imagerie peuvent montrer qu'étirer le RGB autour du gris moyen n'est pas changer la luminosité HSL, ni une courbe de puissance gamma, ni mesurer le contraste WCAG entre deux couleurs.
Si vous devez plus tard comparer deux codes hex pour l'accessibilité, appliquer un exposant gamma, éclaircir ou assombrir en HSL, ou filtrer une photographie entière, traitez cela comme des intentions de recherche et des pages d'atterrissage distinctes plutôt que de surcharger cette page du facteur autour du gris moyen.
Cas d’usage
Renforcer un hex de marque sans nouvelle teinte
Augmentez une seule couleur de logo autour du gris moyen et capturez l'hex résultant pour affiches, états de survol et revues de design.
Rampes de jetons assourdies à partir d'un échantillon
Balayez le facteur sous un pour aplatir les tons moyens vers le gris en gardant les mêmes proportions RGB, au lieu de faire glisser la luminosité HSL.
Questions fréquentes
Comment le facteur de contraste modifie-t-il votre couleur hex ?
Chaque canal RGB c devient clamp(round(128 + (c − 128) × factor), 0, 255). Le gris moyen reste fixe ; les canaux plus sombres et plus clairs s'éloignent de 128 lorsque le facteur est supérieur à 1 et s'en rapprochent lorsqu'il est inférieur à 1.
Quelle plage de facteur est autorisée ?
Le facteur doit être un nombre fini dans [0, 10].
Quels formats hex sont acceptés ?
Hex CSS à trois et six chiffres, avec ou sans dièse initial. Les formes alpha (#rgba / #rrggbbaa) et les caractères non hex sont rejetés.
Que font les facteurs 0 et 1 ?
Un facteur de 1 laisse la couleur strictement identique. Un facteur de 0 ramène tous les canaux au gris moyen : toute couleur devient #808080. Au-dessus de 1, le contraste augmente ; entre 0 et 1, il diminue.
Pourquoi un canal reste-t-il bloqué à 0 ou à 255 ?
Avec un facteur élevé, un canal peut dépasser les limites : un rouge sombre atteint 0, un bleu clair atteint 255. Le résultat est alors arrêté à la limite au lieu de repartir de l’autre côté.
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/contrast-adjust \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3366cc","factor":1.5}'const res = await fetch("https://api.kit.forhosting.com/color/contrast-adjust", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3366cc",
"factor": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/contrast-adjust",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3366cc",
"factor": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/contrast-adjust", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3366cc","factor":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3366cc","factor":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/contrast-adjust", 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",
"factor": 1.5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.contrast_adjust",
"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 chaînes hex invalides et les facteurs hors plage échouent avec un invalid_input explicite, sans enveloppe silencieuse.
Contrat d'entrée, forme de la réponse et validation
Color accepte aussi les alias hex et base ; factor accepte contrast et amount. Champs manquants, caractères non hex, longueurs incorrectes, NaN, Infinity, facteurs négatifs et valeurs au-dessus de dix échouent avec invalid_input et ne sont pas facturés. En cas de succès, la réponse renvoie la couleur à six chiffres normalisée et le facteur numérique, indique mid_gray comme cent vingt-huit, puis fournit les échantillons original et result. 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ù un facteur de contraste autour du gris moyen se justifie
Comme cette capacité est un moteur parse pur, le tarif API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.
Cas d'intégration
Contrôles golden CI du contraste du thème
Vérifiez que les jetons de production correspondent encore à l'étirement attendu autour du gris moyen après des modifications de palette, sans ouvrir un éditeur d'image.
Questions techniques
Que se passe-t-il pour factor = 1 et factor = 0 ?
Le facteur 1 est l'identité : aucun canal ne change, donc l'hex résultat correspond à l'hex d'entrée normalisé. Le facteur 0 ramène tous les canaux au gris moyen 128, soit #808080.
Combien coûte l'ajustement du contraste d'une couleur ?
L'outil navigateur est gratuit et s'exécute localement. Les requêtes API utilisent le solde prépayé KIT à $0.002 par élément réussi ; une entrée invalide n'est pas facturée.