Rendere un colore più caldo o freddo
Questo strumento modifica la temperatura visiva di un colore esadecimale con una semplice regolazione RGB ripetibile.
Esegui gratis nel browser
Uno spostamento positivo aumenta il rosso e riduce il blu; un valore negativo esegue l’operazione opposta. Il verde rimane invariato e ogni risultato viene limitato all’intervallo valido da 0 a 255. Il metodo diretto è utile per varianti di palette prevedibili, modifiche riproducibili dei token di design e trasformazioni facili da verificare, senza ricorrere a un modello soggettivo o a una conversione approssimativa dai kelvin.
Scelga un colore e uno spostamento con segno
Inizi con un colore esadecimale di tre o sei cifre, con o senza cancelletto iniziale. La notazione breve viene estesa prima del calcolo, quindi #69C viene trattato esattamente come #6699CC. Scelga poi un numero intero compreso tra -255 e 255. Un valore positivo produce un risultato più caldo: viene sommato al rosso e sottratto dal blu. Un valore negativo produce un risultato più freddo, perché riduce il rosso e aumenta il blu. Con zero viene restituito il colore originale normalizzato e la direzione risulta invariata. Il canale verde viene mantenuto intenzionalmente. Questa regola circoscritta rende l’operazione facile da spiegare, verificare e ripetere in un sistema di design. Non simula una sorgente luminosa fisica e non converte valori kelvin. Offre invece una regolazione controllata dei canali, con un effetto visibile e un calcolo identico nel browser e nell’API. Usi valori assoluti piccoli per variazioni delicate e valori maggiori quando desidera una dominante calda o fredda più evidente.
Comprenda i limiti e l’output deterministico
I canali RGB non possono scendere sotto 0 né superare 255, quindi lo strumento limita ogni valore rosso o blu modificato a questo intervallo valido. Se si riscalda un colore con il rosso già vicino a 255, per esempio, il risultato può fermarsi a 255 anziché generare un valore impossibile, mentre il blu continua a diminuire fino a 0. Il raffreddamento applica la regola speculare. Questa limitazione è importante perché un’aritmetica senza vincoli può causare overflow o creare codici colore non validi. Qui fa parte del comportamento dichiarato e rende sicuri e prevedibili i casi estremi. La risposta comprende il colore esadecimale originale normalizzato, il nuovo valore esadecimale a sei cifre maiuscole, lo spostamento con segno, una direzione e i canali RGB finali. Nessuna rete, casualità, ora corrente, conversione di profilo o stato nascosto influenza il calcolo. A parità di input si ottiene sempre lo stesso output. Lo spostamento deve essere un intero finito: decimali, stringhe numeriche, infiniti, valori mancanti e quantità esterne all’intervallo vengono rifiutati senza arrotondamenti impliciti.
Applichi la temperatura ai flussi di lavoro sul colore
Uno spostamento deterministico è particolarmente utile quando un gruppo di lavoro ha bisogno di colori correlati senza introdurre un passaggio di modifica poco trasparente. Può riscaldare un accento per una campagna autunnale, raffreddare un tono neutro per uno stato dell’interfaccia o generare varianti abbinate per l’anteprima di un tema. Poiché l’operazione conserva il verde e modifica simmetricamente rosso e blu fino al raggiungimento di un limite, chi esegue la revisione può ricondurre ogni risultato a una regola breve. Questa caratteristica è preziosa in script, pipeline di token, test snapshot e sistemi di generazione dei contenuti, dove le modifiche manuali con un selettore sarebbero difficili da riprodurre. Può anche confrontare intensità diverse: invii lo stesso colore di base con interi differenti e conservi lo spostamento restituito insieme a ciascun risultato. Ricordi che si tratta di una trasformazione stilistica RGB, non di adattamento cromatico né di una regolazione percettivamente uniforme. Due colori sottoposti allo stesso valore possono sembrare modificati in misura diversa, soprattutto quando un canale raggiunge il limite. Per la colorimetria precisa utilizzi un flusso con gestione dello spazio cromatico. Per rendere rapidamente più caldi o freddi i comuni colori esadecimali, questo calcolo trasparente e ripetibile è adatto allo scopo.
Casi d'uso
Creare varianti calde e fredde di un tema
Applichi spostamenti con segno ai token condivisi, così entrambe le varianti seguono una regola verificabile.
Regolare gli accenti di una campagna
Riscaldi un accento per una grafica stagionale o lo raffreddi per un trattamento visivo più tranquillo.
Automatizzare modifiche cromatiche riproducibili
Usi lo stesso intero in script, test e metadati senza interventi manuali nel selettore del colore.
Domande frequenti
Che cosa fa uno spostamento positivo?
Somma il valore al rosso, lo sottrae dal blu, mantiene il verde e indica il risultato come più caldo.
Come si rende un colore più freddo?
Usi uno spostamento negativo. Riduce il rosso e aumenta il blu del valore assoluto indicato.
Che cosa accade se un canale supera l’intervallo?
I valori modificati di rosso e blu vengono limitati a 0–255, quindi il risultato è sempre un colore RGB valido.
Lo strumento converte una temperatura espressa in kelvin?
No. Applica uno spostamento deterministico ai canali RGB di un colore esadecimale esistente; non modella una sorgente luminosa fisica.
Lo spostamento può contenere decimali?
No. Deve essere un intero finito compreso tra -255 e 255 inclusi. I valori non validi vengono rifiutati.
Quanto costa utilizzare l’API?
Ogni richiesta API costa $0.002. Lo strumento nel browser esegue localmente lo stesso calcolo deterministico.
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/temperature-shift \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#6699CC","shift":32}'const res = await fetch("https://api.kit.forhosting.com/color/temperature-shift", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#6699CC",
"shift": 32
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/temperature-shift",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#6699CC",
"shift": 32
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/temperature-shift", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#6699CC","shift":32}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#6699CC","shift":32}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/temperature-shift", 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": "#6699CC",
"shift": 32
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.temperature_shift",
"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. |