Generi un colore complementare da un valore hex o RGB
Un colore complementare si trova esattamente di fronte al colore base sulla ruota cromatica.
Esegui gratis nel browser
Questo generatore accetta un comune valore hex o RGB, ne conserva saturazione e luminosità, ruota la tonalità di 180 gradi e restituisce la base normalizzata insieme al complemento generato. Lei può usarlo per creare un forte rapporto a due colori in interfacce, illustrazioni, grafici, studi di marca o token di design. Il calcolo è deterministico: lo stesso input valido produce sempre lo stesso risultato, mentre i formati errati vengono rifiutati con un messaggio chiaro.
Inserisca un colore base preciso
Parta dal colore che conosce già. Il generatore accetta un hex di tre cifre come #369, uno di sei cifre come #336699, le stesse sei cifre senza cancelletto oppure una funzione RGB come rgb(51, 102, 153). Le lettere hex non distinguono maiuscole e minuscole e il valore restituito viene normalizzato in sei cifre maiuscole. I canali RGB devono essere numeri interi da zero a 255. I formati ambigui, compresi nomi CSS, canali alfa, percentuali, stringhe hex incomplete e canali fuori intervallo, vengono rifiutati invece di essere interpretati. Invii il valore nel campo color; è accettato anche l’alias value. La risposta ripete il colore base normalizzato, così Lei può verificare esattamente ciò che il servizio ha interpretato prima di utilizzare il risultato generato.
Comprenda la rotazione di 180 gradi
Il calcolo converte il colore base da RGB al modello HSL, aggiunge 180 gradi alla tonalità, riporta il risultato nella ruota di 360 gradi e lo riconverte in RGB. Saturazione e luminosità restano invariate. È un complemento sulla ruota cromatica, non una semplice inversione dei singoli canali RGB. Il rosso si sposta verso il ciano, il verde verso il magenta e il blu verso il giallo. L’arrotondamento avviene solo nel ritorno ai canali RGB interi. I grigi neutri hanno saturazione zero e nessuna tonalità visibile; la rotazione non ne modifica quindi l’aspetto. La risposta include sia il formato hex sia i canali rosso, verde e blu separati per la base e il complemento. Questa struttura supporta l’uso visivo e i flussi automatici senza richiedere l’analisi di una stringa formattata.
Usi il risultato come relazione iniziale
I colori complementari creano una separazione decisa, ma la coppia grezza è un punto di partenza, non una garanzia di accessibilità o buona composizione. Due complementi molto saturi in quantità uguali possono vibrare visivamente; molte interfacce usano quindi una tonalità come superficie dominante e riservano il complemento a un accento, uno stato, una serie di dati o un invito all’azione. Lei può anche ricavare tinte chiare e scure da entrambi. Per testi e controlli verifichi il contrasto sullo sfondo reale, perché posizioni opposte non implicano la stessa luminanza. L’output deterministico aiuta un processo di build a derivare sempre lo stesso accento da un colore di marca. È utile anche in prototipi, grafici, temi e pipeline di risorse. Le richieste API applicano il prezzo base pubblicato di $0.002, mentre il browser può eseguire localmente lo stesso calcolo puro.
Casi d'uso
Crei un accento per l’interfaccia
Generi una tonalità opposta per pulsanti, badge, evidenziazioni o elementi di focus partendo da un colore del tema.
Prepari una palette per due serie
Derivi una seconda tonalità ben distinta dal colore della prima serie e verifichi il contrasto nel grafico finale.
Automatizzi i token di design
Trasformi un valore hex di marca memorizzato in un token complementare deterministico durante il build o la creazione di temi.
Domande frequenti
Quali formati di colore sono accettati?
Usi hex di tre o sei cifre, hex di sei cifre senza cancelletto oppure rgb(r, g, b) con canali interi da 0 a 255.
Come viene calcolato il colore complementare?
Il valore RGB base viene convertito in HSL, la tonalità ruota di 180 gradi e il risultato viene riconvertito in RGB.
È uguale all’inversione dei canali RGB?
No. Il generatore ruota la tonalità conservando saturazione e luminosità HSL; l’inversione RGB diretta è un’altra operazione.
Cosa accade a grigio, bianco o nero?
I colori neutri non hanno tonalità visibile, quindi una rotazione della tonalità non ne cambia l’aspetto.
Quanto costa una richiesta API?
Ogni richiesta usa il prezzo base pubblicato di $0.002. Lo stesso calcolo deterministico è disponibile nell’esperienza browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/color/complementary-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#336699"}'const res = await fetch("https://api.kit.forhosting.com/color/complementary-generate", {
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/complementary-generate",
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/complementary-generate", 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/complementary-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"color": "#336699"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.complementary_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |