Cambiar un color a más cálido o frío
Esta herramienta desplaza la temperatura visual de un color hexadecimal mediante un ajuste RGB sencillo y reproducible.
Ejecutar — gratis
Un desplazamiento positivo aumenta el rojo y reduce el azul; uno negativo hace lo contrario. El verde permanece intacto y cada resultado se limita al intervalo válido de 0 a 255. Este método directo resulta útil para crear variantes de paleta previsibles, modificar tokens de diseño de forma reproducible o aplicar una transformación fácil de auditar, sin recurrir a un modelo subjetivo ni a una conversión aproximada desde kelvin.
Elija un color y un desplazamiento con signo
Comience con un color hexadecimal de tres o seis dígitos, con almohadilla inicial o sin ella. La notación abreviada se amplía antes de calcular, por lo que #69C se trata exactamente igual que #6699CC. Después, indique un desplazamiento entero entre -255 y 255. Un valor positivo produce un resultado más cálido: esa cantidad se suma al rojo y se resta del azul. Un valor negativo produce un resultado más frío, pues reduce el rojo y eleva el azul. Con cero se devuelve el color original normalizado y la dirección se marca como sin cambios. El canal verde se conserva deliberadamente. Esta regla limitada hace que la operación sea fácil de explicar, probar y repetir en un sistema de diseño. No pretende simular una fuente de luz física ni convertir valores kelvin. Ofrece un ajuste de canales controlado, cuyo efecto puede verse y cuya aritmética coincide en el navegador y en la API. Use magnitudes pequeñas para variantes sutiles y valores absolutos mayores para obtener un matiz cálido o frío más marcado.
Comprenda los límites y la salida determinista
Los canales RGB no pueden bajar de 0 ni superar 255, de modo que la herramienta limita cada valor rojo o azul ajustado a ese intervalo válido. Por ejemplo, al calentar un color cuyo rojo ya está cerca de 255, el resultado puede quedar en 255 en lugar de generar un valor imposible, mientras el azul sigue disminuyendo hasta llegar a 0. Al enfriar se aplica la regla inversa. Esta limitación es importante porque una aritmética sin control puede desbordarse o generar cadenas de color inválidas. Aquí forma parte del comportamiento publicado y vuelve seguros y previsibles los casos extremos. La respuesta contiene el color hexadecimal original normalizado, el resultado hexadecimal de seis dígitos en mayúsculas, el desplazamiento con signo, una dirección y los canales RGB finales. Ninguna red, aleatoriedad, hora actual, conversión de perfil ni estado oculto interviene en el cálculo. Por ello, entradas idénticas siempre producen salidas idénticas. El desplazamiento debe ser un entero finito; se rechazan decimales, cadenas numéricas, infinitos, valores ausentes y cantidades fuera del intervalo declarado.
Aplique el cambio de temperatura en trabajos de color
Un desplazamiento determinista resulta especialmente práctico cuando un equipo necesita colores relacionados sin introducir un paso de edición opaco. Puede calentar un color principal para una campaña otoñal, enfriar un neutro para un estado de interfaz o generar variantes emparejadas para previsualizar un tema. Como la operación conserva el verde y modifica rojo y azul de forma simétrica hasta que se alcanza un límite, cualquier revisor puede reconstruir el resultado mediante una regla breve. Esto aporta valor en scripts, canales de tokens, pruebas de instantáneas y sistemas de generación de contenido donde los ajustes manuales con un selector serían difíciles de reproducir. También permite comparar intensidades: envíe el mismo color base con distintos enteros y conserve junto a cada resultado el desplazamiento devuelto. Tenga presente que se trata de una transformación estilística RGB, no de adaptación cromática ni de un ajuste perceptualmente uniforme. Dos colores sometidos al mismo valor pueden parecer distintos, sobre todo si un canal alcanza un límite. Para ciencia del color precisa, utilice un flujo con gestión de espacios cromáticos. Para calentar o enfriar colores hexadecimales de forma rápida, transparente y repetible, este cálculo limitado es la opción adecuada.
Qué puede hacer con ella
Crear variantes cálidas y frías de un tema
Aplique desplazamientos con signo a tokens compartidos para que ambas variantes sigan una regla verificable.
Ajustar los acentos de una campaña
Caliente un acento existente para una pieza estacional o enfríelo para lograr un tratamiento visual más sereno.
Automatizar cambios de color reproducibles
Use el mismo entero en scripts de compilación, pruebas y metadatos de recursos sin editar manualmente un selector.
Preguntas frecuentes
¿Qué hace un desplazamiento positivo?
Suma el valor al rojo, lo resta del azul, mantiene el verde y etiqueta el resultado como más cálido.
¿Cómo se obtiene un color más frío?
Use un desplazamiento negativo. Reducirá el rojo y elevará el azul según el valor absoluto indicado.
¿Qué ocurre si un canal rebasa su intervalo?
Los valores rojo y azul ajustados se limitan a 0–255, por lo que el resultado siempre es un color RGB válido.
¿Convierte una temperatura de color en kelvin?
No. Aplica un desplazamiento determinista de canales RGB a un color hexadecimal existente; no modela una fuente de luz física.
¿Puede contener decimales el desplazamiento?
No. Debe ser un entero finito entre -255 y 255, ambos incluidos. Los valores inválidos se rechazan.
¿Cuánto cuesta usar la API?
Cada solicitud a la API cuesta $0.002. La herramienta del navegador ejecuta localmente el mismo cálculo determinista.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"color": "#6699CC",
"shift": 32
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.temperature_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |