Générez des teintes
Générez une palette de teintes fiable à partir d’une seule couleur de base, sans deviner les valeurs intermédiaires ni régler des curseurs à l’œil.
Lancer gratuitement
Cet outil mélange la couleur hexadécimale fournie avec du blanc par paliers de pourcentage égaux et renvoie des valeurs HEX et RGB précises pour chaque teinte. Le calcul est déterministe : une même couleur et un même nombre d’étapes produisent toujours la même palette. Utilisez-la pour préparer des états d’interface, des arrière-plans, des graphiques, des illustrations ou des jetons de conception exigeant une progression nette de la couleur d’origine au blanc.
Choisissez une couleur de base et un nombre d’étapes adapté
Commencez par une couleur de base hexadécimale à trois ou six chiffres, comme #36c ou #3366cc. La forme courte est développée avant le calcul : ces deux exemples représentent donc exactement la même couleur et donnent des résultats identiques. Choisissez ensuite entre une et vingt étapes. Ce nombre correspond aux teintes générées, sans compter la couleur de base d’origine, mais en incluant le blanc pur comme dernier résultat. Quatre étapes mélangent ainsi la base avec 25%, 50%, 75% et 100% de blanc. Un petit nombre convient à une hiérarchie d’interface compacte, tandis qu’un nombre supérieur offre des choix plus fins pour la visualisation de données, l’illustration ou l’exploration de jetons. Le résultat présente séparément la base normalisée et chaque teinte calculée, afin de distinguer clairement la valeur fournie des valeurs produites. Puisque la progression se termine toujours au blanc, les échantillons adjacents ont des écarts de mélange égaux, même si leur différence visuelle dépend de la couleur de base et de l’écran.
Comprenez la formule de mélange déterministe
Chaque canal rouge, vert et bleu est mélangé séparément vers 255, la valeur de canal du blanc. Pour la teinte numéro k d’une palette de n étapes, l’outil calcule base + (255 − base) × k/n, puis arrondit le canal à l’entier le plus proche. La même proportion appliquée aux trois canaux préserve le lien avec la couleur d’origine tout en réduisant progressivement sa distance au blanc. La réponse contient un indice commençant à un, le pourcentage exact de blanc, le code HEX normalisé en minuscules, les valeurs de chaque canal et une chaîne RGB. Il s’agit d’une interpolation sRGB directe : elle ne modifie pas la luminosité HSL, n’effectue pas de mélange optique corrigé par gamma et ne recherche pas une égalisation perceptuelle. Cette distinction compte lorsque vous comparez le résultat à un logiciel graphique proposant plusieurs espaces de mélange. La formule est volontairement simple, documentée et stable, ce qui la rend adaptée aux scripts de build, instantanés, générations automatiques de jetons et systèmes où la reproductibilité prime sur le réglage visuel subjectif.
Utilisez la palette avec prudence dans un système de conception
Considérez les valeurs générées comme une échelle de départ cohérente, puis testez-les dans leur contexte réel. Les teintes claires conviennent aux lignes sélectionnées, fonds de notification, bordures discrètes, remplissages de graphiques, surfaces au survol et zones décoratives, mais une palette mathématiquement régulière ne garantit pas automatiquement un contraste accessible. Vérifiez le texte et les icônes placés sur chaque teinte selon les exigences de contraste applicables à votre produit. Conservez la couleur de base dans un jeton distinct et nommez les valeurs générées selon leur rôle ou leur pourcentage de mélange, par exemple brand-tint-25 ou info-background, plutôt que de dépendre uniquement de leur position. Les noms en pourcentage restent compréhensibles si une future palette utilise un autre nombre d’étapes. Dans un flux automatisé, stockez directement les valeurs HEX renvoyées ainsi que la couleur d’entrée et le nombre d’étapes pour pouvoir reproduire la palette. Les couleurs invalides, formats hexadécimaux alpha, nombres fractionnaires et valeurs hors limites sont refusés afin que les modifications accidentelles de jetons ne passent pas inaperçues.
Cas d’usage
Créez des jetons de surface d’interface
Produisez des fonds clairs, bordures et états sélectionnés reproductibles depuis une couleur de marque ou sémantique établie.
Préparez des variantes pour vos graphiques
Générez des remplissages clairs prévisibles qui restent visiblement liés à la couleur principale de la série.
Automatisez la documentation des palettes
Produisez des valeurs HEX et RGB stables pour les pages de systèmes de conception, la génération de code, les tests et la livraison.
Questions fréquentes
Quel est le prix d’une requête ?
Chaque requête API coûte $0.002. Le résultat contient l’intégralité de la palette de teintes demandée.
La palette comprend-elle la couleur de base ?
La réponse présente séparément la base normalisée. La liste contient uniquement les mélanges de plus en plus clairs et se termine au blanc.
Pourquoi la dernière teinte est-elle toujours blanche ?
Les étapes divisent en intervalles égaux tout le trajet entre la couleur de base et un mélange à 100% de blanc.
Quels formats de couleur sont acceptés ?
Utilisez trois ou six chiffres hexadécimaux, avec ou sans dièse initial. Les canaux alpha et les autres syntaxes CSS sont refusés.
Ces teintes garantissent-elles un contraste accessible ?
Non. Le contraste dépend du premier plan, de la taille, de la graisse et de la norme applicable ; testez chaque teinte dans son contexte prévu.
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/tints-palette \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3366cc","steps":4}'const res = await fetch("https://api.kit.forhosting.com/color/tints-palette", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3366cc",
"steps": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/tints-palette",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3366cc",
"steps": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/tints-palette", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3366cc","steps":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3366cc","steps":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/tints-palette", 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",
"steps": 4
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.tints_palette",
"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. |