Convertisseur OKLCH vers HEX
Ce convertisseur OKLCH vers HEX transforme une couleur écrite selon la syntaxe CSS en valeur hexadécimale sRGB à six chiffres.
Lancer gratuitement
Il suit un calcul explicite des coordonnées cylindriques OKLCH vers OKLab puis RGB linéaire, avant d’écrêter les canaux hors du gamut sRGB affichable. Le résultat est déterministe, automatisable et accompagné des valeurs RGB et OKLab afin que vous puissiez contrôler précisément la conversion plutôt que de considérer le code HEX final comme une boîte noire.
Saisissez une couleur OKLCH valide
Indiquez la couleur avec la notation fonctionnelle CSS, par exemple oklch(62.8% 0.258 29.23). La luminosité peut être un pourcentage compris entre 0% et 100%, ou une valeur sans unité comprise entre 0 et 1. La chroma doit être positive ou nulle. La teinte est interprétée en degrés sans suffixe, mais les unités deg, grad, rad et turn sont également admises. Elle peut dépasser l’intervalle de 0 à 360, car elle est ramenée à l’angle équivalent. Le convertisseur exige les trois coordonnées et refuse l’alpha, le mot CSS none, les virgules, une entrée HEX ou toute autre fonction colorimétrique. Ce contrat ciblé garantit une couleur opaque à six chiffres et signale clairement une donnée incorrecte au lieu d’en deviner le sens. Chaque composante numérique doit être finie ; Infinity et NaN sont rejetés avant tout calcul. Cette validation stricte convient particulièrement aux outils de build et aux chaînes de données, où un format inattendu pourrait diffuser une mauvaise couleur de marque dans de nombreuses ressources générées.
Comprenez les étapes du calcul
OKLCH décrit une couleur par sa luminosité perceptuelle, sa chroma et sa teinte. Le convertisseur normalise d’abord la teinte, puis projette les coordonnées cylindriques sur les axes a et b d’OKLab grâce au cosinus et au sinus. Il applique ensuite la transformation OKLab publiée afin d’obtenir les canaux sRGB linéaires. Ces canaux passent par la courbe de transfert sRGB standard, puis sont quantifiés en entiers rouge, vert et bleu de 0 à 255. Chaque octet devient exactement deux caractères hexadécimaux : le résultat principal respecte donc toujours la forme #RRGGBB. La réponse fournit aussi les coordonnées OKLab calculées et les canaux RGB entiers, utiles pour analyser un désaccord entre logiciel de création et chaîne de code. Seul l’objet OKLab affiché arrondit les valeurs intermédiaires ; le calcul conserve toute la précision numérique de JavaScript jusqu’aux octets RGB finaux. Sans réseau, hasard, heure, format régional ni état modifiable, l’algorithme produit le même JSON dans l’API et le navigateur pour une entrée identique.
Gérez les couleurs hors du gamut sRGB
OKLCH peut exprimer des couleurs qu’un écran sRGB ordinaire et un code HEX à six chiffres ne savent pas représenter. Si un canal RGB linéaire calculé est inférieur à zéro ou supérieur à un, il est ramené à la limite la plus proche avant l’application de la courbe sRGB. La réponse fixe clamped à true dans ce cas. Cet écrêtage est rapide et prévisible, mais il ne constitue pas un mappage perceptuel du gamut : une couleur très vive peut perdre des nuances, sembler changer de teinte ou aboutir à un canal totalement saturé. Considérez cet indicateur comme une invitation à contrôler la couleur, notamment pour les palettes de marque, les jetons d’accessibilité et les dégradés dont les rapports entre couleurs voisines comptent. Avec clamped à false, tous les canaux étaient déjà dans sRGB. S’il vaut true et que la fidélité visuelle importe, réduisez la chroma de la source OKLCH et recommencez jusqu’à ce qu’elle tienne dans le gamut. Ce comportement explicite garantit une sortie exploitable sans masquer le compromis. L’alpha n’est pas conservé, car le HEX à six chiffres est opaque.
Cas d’usage
Exporter des jetons de design
Transformez une palette perceptuelle OKLCH en codes HEX stables pour les systèmes limités au sRGB à six chiffres.
Contrôler une chaîne colorimétrique
Examinez RGB, OKLab et l’indicateur d’écrêtage lorsque vous comparez des outils de design et de développement.
Produire un CSS compatible
Créez un repli HEX déterministe pour une couleur OKLCH employée dans des styles, e-mails, modèles ou anciens clients.
Questions fréquentes
Quel est le prix de la conversion ?
Vous pouvez l’exécuter gratuitement dans le navigateur de cette page, ou payer $0.002 pour chaque requête API.
Pourquoi le résultat indique-t-il clamped ?
Au moins un canal sRGB linéaire calculé sortait de la plage affichable et a été ramené à zéro ou un avant l’encodage.
La transparence alpha est-elle acceptée ?
Non. La cible est un code HEX opaque à six chiffres ; toute entrée OKLCH comportant un alpha est donc refusée.
Quelles unités de teinte puis-je employer ?
Vous pouvez omettre l’unité pour les degrés, ou préciser deg, grad, rad ou turn. Les angles sont normalisés entre zéro et 360 degrés.
Pourquoi un autre outil donne-t-il un HEX différent ?
Les matrices, arrondis ou méthodes de gamut peuvent varier. Ici, la transformation, l’écrêtage, la courbe sRGB et l’arrondi à l’octet sont fixes.
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/oklch-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"oklch(62.8% 0.258 29.23)"}'const res = await fetch("https://api.kit.forhosting.com/color/oklch-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "oklch(62.8% 0.258 29.23)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/oklch-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "oklch(62.8% 0.258 29.23)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/oklch-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"oklch(62.8% 0.258 29.23)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"oklch(62.8% 0.258 29.23)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/oklch-hex", 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
{
"text": "oklch(62.8% 0.258 29.23)"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.oklch_hex",
"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. |