Valider une couleur hexadécimale
Le validateur de couleurs hexadécimales fournit une réponse directe et déterministe pour les codes employés dans CSS, les jetons de conception, les thèmes, les fichiers de configuration et le balisage généré.
Lancer gratuitement
Il accepte les formats standard à trois, quatre, six et huit chiffres, avec ou sans dièse initial, et contrôle chaque caractère sans deviner ni corriger la valeur. Son résultat booléen s’intègre facilement dans un formulaire, un test, un import ou un flux API. Les champs absents et les types incorrects déclenchent des erreurs claires afin de ne jamais confondre une requête défectueuse avec une couleur non valide.
Définition d’une couleur hexadécimale valide
Une couleur hexadécimale valide contient exactement trois, quatre, six ou huit chiffres hexadécimaux. Trois chiffres représentent le format RGB court, quatre le format RGBA court avec transparence, six le format RGB complet et huit le format RGBA complet. Le dièse initial reste facultatif, car CSS, les bases de données, les outils de conception et les configurations ne conservent pas toujours ce préfixe de la même manière. Après cet éventuel préfixe, chaque caractère doit être un chiffre ASCII de 0 à 9 ou une lettre de A à F, en majuscule ou en minuscule. Le contrôle refuse les espaces, signes, caractères de ponctuation, doubles dièses, noms de couleurs, fonctions CSS et toute autre longueur. Il ne supprime pas non plus les espaces. Cette rigueur révèle les caractères invisibles et empêche l’approbation silencieuse d’une valeur différente de la source. Le booléen <code>valid</code> décrit donc exactement la chaîne que vous transmettez.
L’intérêt d’une validation déterministe
La validation d’une couleur paraît élémentaire, mais des règles incohérentes créent des défauts durables. Un navigateur peut refuser un format, une bibliothèque en normaliser un autre et une expression régulière artisanale oublier le format alpha court ou accepter cinq chiffres par erreur. Cette capacité applique une règle explicite : retirer un seul dièse facultatif, vérifier que la longueur restante figure parmi les quatre longueurs autorisées, puis contrôler l’appartenance de chaque caractère à l’alphabet hexadécimal. Elle n’utilise ni réseau, ni hasard, ni date, ni règle régionale, ni conversion de casse, ni interprétation colorimétrique. Une même entrée produit donc le même booléen dans le widget et par l’API. Une couleur incorrecte renvoie normalement <code>false</code>. En revanche, un champ absent ou un nombre, une liste ou un objet à la place d’une chaîne provoque une erreur explicite. Votre application distingue ainsi une saisie invalide d’une intégration défectueuse.
Exploiter le résultat dans vos formulaires et traitements
Utilisez le validateur juste avant qu’une couleur franchisse une frontière de confiance. Dans un formulaire, lancez-le lors de la modification du champ ou avant l’envoi, puis affichez un message précis lorsque <code>valid</code> vaut faux. Lors de l’import de jetons de conception, contrôlez chaque valeur avant de générer CSS afin qu’un jeton mal formé ne rende pas une feuille de style inutilisable ou ne se propage dans un thème. Dans un traitement de données, conservez la chaîne d’origine avec le booléen si vous avez besoin d’une piste d’audit ; ne remplacez pas la source par une forme normalisée, car cette capacité valide sans transformer. Pour développer, convertir ou extraire des canaux, validez d’abord puis confiez les valeurs admises à la capacité appropriée. Le navigateur convient aux contrôles interactifs et l’API coûte $0.002 par requête. La réponse stable s’insère directement dans les conditions et les tests de limites, symboles, préfixes, vides et espaces.
Cas d’usage
Contrôler un champ de couleur
Confirmez un format RGB ou RGBA admis avant d’enregistrer une préférence de thème.
Valider des jetons de conception
Refusez les couleurs mal formées avant de convertir des jetons en variables CSS ou constantes.
Sécuriser les styles générés
Testez les couleurs externes avant leur insertion dans une feuille de style ou une configuration.
Questions fréquentes
Quelles longueurs sont valides ?
Exactement 3, 4, 6 ou 8 chiffres hexadécimaux, sans compter le dièse initial facultatif.
Le dièse initial est-il obligatoire ?
Non. #336699 et 336699 constituent tous deux des représentations valides pour ce contrôle.
Les lettres majuscules sont-elles acceptées ?
Oui. Les lettres hexadécimales de A à F sont admises en majuscules comme en minuscules.
Le validateur supprime-t-il les espaces ?
Non. Un espace initial ou final invalide la couleur et révèle un problème de formatage.
Quel est le tarif ?
L’API coûte $0.002 par requête et le même contrôle déterministe fonctionne dans votre navigateur.
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/is-valid-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"#336699cc"}'const res = await fetch("https://api.kit.forhosting.com/color/is-valid-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "#336699cc"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/is-valid-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "#336699cc"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/is-valid-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"#336699cc"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"#336699cc"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/is-valid-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": "#336699cc"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.is_valid_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. |