Distance couleur-complémentaire
La distance entre une couleur et son complément transforme une relation classique du cercle chromatique en mesure reproductible.
Lancer gratuitement
Indiquez une couleur hexadécimale ou RGB : le calculateur détermine son complément HSL exact à 180 degrés, convertit les deux couleurs du sRGB vers CIELAB D65 et fournit leur écart Delta E 76. Un indice normalisé facilite le tri et la comparaison, tandis que la couleur initiale, son complément, les canaux RGB, les codes hexadécimaux et les coordonnées Lab rendent chaque étape vérifiable. Une validation stricte refuse toute saisie incomplète ou hors limites au lieu de la corriger discrètement.
Saisissez une couleur et définissez son complément sans ambiguïté
Envoyez une couleur sous la forme d’un code hexadécimal de trois ou six chiffres, d’une expression rgb(r, g, b) ou de trois canaux RGB séparés par des virgules. Le dièse initial et la casse des lettres hexadécimales n’influencent pas le résultat. Les canaux RGB doivent être des entiers compris entre 0 et 255 : une syntaxe incorrecte, des pourcentages, des décimales, des canaux manquants ou des valeurs hors de la plage sRGB affichable entraînent donc une erreur de saisie. Après analyse, le calculateur convertit les canaux RGB d’origine en HSL et fait pivoter la teinte d’exactement 180 degrés, sans modifier la saturation ni la luminosité. Cette définition correspond au point opposé classique du cercle HSL et explicite l’opération au lieu de s’appuyer sur un jugement artistique implicite. La valeur HSL obtenue est reconvertie en canaux sRGB entiers avant la mesure, comme les couleurs réellement représentables par les écrans et les flux CSS ordinaires. Les couleurs achromatiques constituent un cas important : puisque le gris possède une saturation nulle, la rotation de sa teinte nominale ne produit aucune différence visible. Son complément reste le même gris et la distance mesurée vaut zéro. Une saisie identique donne toujours une sortie identique, sans réseau, hasard, horloge, recherche de profil ni état caché.
Interprétez la distance Lab et l’indice d’harmonie
La réponse présente la couleur d’origine normalisée et son complément sous forme de valeurs hexadécimales à six chiffres en majuscules, de canaux RGB entiers et de coordonnées CIELAB. La conversion commence par linéariser les canaux sRGB standard, les projette vers CIE XYZ au moyen de la matrice sRGB conventionnelle, emploie le blanc de référence D65 du sRGB, puis applique la fonction de transfert CIELAB. Le champ delta_e_76 représente la distance euclidienne entre les deux triplets Lab : zéro signifie que les couleurs affichées coïncident, tandis qu’une valeur supérieure traduit une séparation perceptuelle plus importante selon ce modèle. Delta E 76 est retenu volontairement, car ce service mesure une seule paire déterministe sans pondération sectorielle de tolérance. harmony_strength convertit cette distance en une échelle pratique de 0 à 100, en divisant Delta E par deux et en plafonnant le résultat à 100. Il s’agit d’un repère comparatif, non d’une loi universelle de beauté. Les libellés simplifient le classement : moins de 15 est faible, de 15 à moins de 35 modéré, de 35 à moins de 65 fort, et 65 ou plus très fort. Les compléments saturés obtiennent généralement une note élevée, contrairement aux teintes atténuées et neutres. Conservez delta_e_76 pour la mesure source et utilisez l’indice ou le libellé dans des tableaux de bord, filtres et règles graphiques simples.
Employez cette mesure avec discernement dans vos systèmes graphiques
Ce calculateur est utile lorsqu’un générateur de palettes, un créateur de thèmes, un système de graphiques ou une chaîne de jetons de marque exige davantage que le code hexadécimal du complément. Votre équipe peut dériver les compléments selon une convention stable, classer les couleurs sources par séparation perceptuelle et conserver les coordonnées Lab avec les jetons produits à des fins d’audit. Le tarif API est de $0.002 par élément réussi, tandis que l’exécution dans le navigateur permet des contrôles interactifs rapides. La validation empêche qu’une chaîne de couleur erronée ne devienne une donnée de palette apparemment plausible. Ne confondez pas force de l’harmonie et contraste accessible : Delta E estime une différence chromatique, alors qu’un texte lisible demande un calcul de contraste de luminance tenant compte de la taille et du contexte. Une note très forte ne garantit pas non plus l’adéquation à une marque, une culture, un état d’interface ou un procédé d’impression. Le calcul concerne ici les écrans sRGB ; les couleurs imprimées, encres directes, gamuts étendus et échantillons mesurés nécessitent au préalable un profil colorimétrique géré explicitement. Utilisez le résultat comme un signal parmi le contraste, la hiérarchie, l’équilibre de saturation et l’examen humain. Pour garantir la reproductibilité, enregistrez le champ method : il désigne la rotation HSL, CIELAB D65 et Delta E 76 et évite toute confusion avec CIE94, CIEDE2000 ou une autre règle de complément.
Cas d’usage
Classer des couleurs d’accent générées
Mesurez chaque couleur de marque face à son complément dérivé et privilégiez les paires offrant la séparation perceptuelle recherchée.
Auditer la génération de jetons
Conservez les valeurs hexadécimales, RGB et Lab normalisées, la méthode et la distance afin de reproduire et contrôler ultérieurement un jeton complémentaire.
Expliquer les relations chromatiques
Montrez pourquoi les couleurs saturées et les gris neutres réagissent différemment lorsque la même rotation de teinte de 180 degrés est mesurée.
Questions fréquentes
Comment le complément est-il calculé ?
La source passe du sRGB au HSL, la teinte pivote de 180 degrés, la saturation et la luminosité restent fixes, puis le résultat revient en sRGB entier.
Que signifie Delta E 76 ?
Il s’agit de la distance directe entre la couleur d’origine et son complément dans CIELAB. Zéro indique l’absence d’écart Lab ; une valeur supérieure traduit une séparation perceptuelle modélisée accrue.
Comment la force de l’harmonie est-elle obtenue ?
Le calculateur divise Delta E 76 par deux et plafonne le résultat à 100. Cet indice comparatif cohérent ne constitue pas une appréciation esthétique objective.
Une note élevée garantit-elle un contraste accessible ?
Non. Distance perceptuelle et contraste de luminance répondent à des questions distinctes. Utilisez un calculateur de contraste WCAG pour les textes et l’accessibilité des interfaces.
Combien coûte un calcul par API ?
Chaque élément API traité avec succès coûte $0.002. Toute saisie incorrecte est clairement refusée au lieu d’être discrètement ramenée dans la plage.
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/complement-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#336699"}'const res = await fetch("https://api.kit.forhosting.com/color/complement-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#336699"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/complement-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#336699"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/complement-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#336699"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#336699"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/complement-distance", 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": "#336699"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.complement_distance",
"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. |