Generador de sombras de color
Cree una escala completa de oscuro a claro a partir de un color de marca: #3366cc con tres pasos da siete muestras, de #000000 pasando por #224488 y la base hasta #bbccee y #ffffff. Solo cambia la luminosidad; tono y saturación se mantienen. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Color hex
- #3366cc
- Cantidad
- 7
- Luminosidad base
- 50
Un generador de sombras de color toma un hex CSS base y un número de pasos, y devuelve una escalera completa de sombras más oscuras y claros más luminosos moviendo solo el canal de luminosidad en el espacio HSL. El matiz y la saturación permanecen fijos, de modo que los azules de marca siguen siendo azules y los rojos de marca siguen siendo rojos mientras las superficies avanzan con suavidad desde casi negro, pasando por la base, hasta casi blanco. Las cadenas hex inválidas y los recuentos de pasos fuera del rango entero permitido se rechazan con un error de validación claro en lugar de recortar en silencio.
Cómo los claros y las sombras escalonan la luminosidad
Parta de un color hex CSS como hash tres tres seis seis c c o la forma corta hash tres seis c. El analizador expande códigos de tres dígitos, pasa los dígitos a minúsculas y convierte cada par en enteros de rojo, verde y azul de cero a doscientos cincuenta y cinco.
Esos canales se mapean a matiz, saturación y luminosidad con las fórmulas estándar CSS y W3C: la luminosidad es la media de las fracciones máxima y mínima del canal, la saturación depende de esa luminosidad y el matiz se mide en grados alrededor de la rueda de color, con grises acromáticos que reportan matiz cero. Las sombras no mezclan hacia el negro en RGB; solo bajan el porcentaje de luminosidad mientras el matiz y la saturación permanecen fijos.
Para el índice de paso k de uno al recuento de pasos elegido, cada sombra usa luminosidad igual a la luminosidad base multiplicada por uno menos k entre pasos, de modo que la sombra más lejana cae en negro puro con luminosidad cero y la más cercana queda justo por debajo de la base.
Los claros elevan la luminosidad hacia el blanco del mismo modo: la luminosidad pasa a ser la luminosidad base más la distancia restante hasta cien, escalada por k entre pasos, de modo que el claro más lejano es blanco puro. Tras conocer cada nueva luminosidad, la misma ruta CSS de matiz a RGB convierte HSL de nuevo a canales enteros y un código hex de seis dígitos en minúsculas.
No hay semillas aleatorias, marcas de tiempo de reloj ni llamadas de red, de modo que las mismas entradas siempre producen la misma escala ordenada. Las formas hex con alfa de cuatro u ocho dígitos se rechazan porque este contrato es solo RGB opaco. Los pasos no enteros o los valores fuera de uno a veinte fallan la validación para que los clientes no superen en silencio el rango permitido.
Qué envía y qué recibe de vuelta
Envíe dos campos: color como cadena hex y steps como entero entre uno y veinte inclusive. Cada muestra incluye role, index, step, hex, enteros r g b, números de matiz saturación luminosidad y cadenas imprimibles rgb y hsl. Role es shade para pasos más oscuros, base para el original y tint para pasos más claros; step es negativo para sombras, cero para la base y positivo para claros, de modo que los clientes pueden ordenar o filtrar sin rederivar la luminosidad.
Una cadena formula corta documenta las reglas de escalonado de L para documentación y soporte. Comprobaciones típicas: tres pasos sobre hash tres tres seis seis c c, cinco pasos sobre rojo puro y confirmar que un hex inválido falla la validación. Use el formulario gratuito del navegador para revisiones de diseño y rampas rápidas; invoque el mismo contrato desde scripts cuando necesite generación masiva de escalas de tokens.
Mantenga steps en el rango documentado en lugar de confiar en recortes silenciosos: esta herramienta falla de forma explícita para que los sistemas de diseño sigan siendo predecibles.
Dónde aparecen las escalas de sombra en el trabajo real
Los diseñadores de producto construyen rampas completas de IU generando estados active más oscuros y fondos hover más claros a partir de un primario de marca sin desplazar el matiz, de modo que una escalera de CTA azul marino se mantiene azul marino desde el estado pulsado hasta la superficie suave. Los revisores de accesibilidad exploran compañeros de colores de texto o iconos a lo largo de una escalera de luminosidad y entregan candidatos a un verificador de contraste en lugar de adivinar tonos medios a ojo.
Los equipos de marketing producen pasteles de campaña y acentos profundos a partir de logotipos saturados para banners sociales y cabeceras de correo preservando la identidad de matiz de la marca. Los ingenieros frontend programan rampas de sombra en integración continua para que un solo color de marca rinda una escalera documentada para gráficos, chips, insignias y botones secundarios.
Si más adelante necesita solo un paso de aclarado, convertir HSL a RGB, construir una paleta análoga o comprobar contraste WCAG, trátelos como intenciones de búsqueda y aterrizajes separados en lugar de sobrecargar esta página de sombras.
Qué puede hacer con ella
Estados hover y pulsado de la IU
Derive sombras pulsadas más oscuras y claros hover más luminosos a partir de un color primario manteniendo estables el matiz y la saturación.
Pasteles de marketing y acentos profundos
Produzca muestras más claras y más oscuras listas para campaña a partir de colores de logo saturados para banners, diapositivas y creatividades sociales.
Preguntas frecuentes
¿Cómo construye este generador de sombras de color la escala?
Convierte hex a HSL, escala la luminosidad hacia el negro para sombras (L = L×(1−k/steps)) y hacia el blanco para claros (L = L+(100−L)×(k/steps)), mantiene fijos matiz y saturación, y vuelve a convertir cada paso a hex y RGB.
¿Qué significa el parámetro steps?
Steps es el número de escalones de luminosidad a cada lado del color base (entero 1–20). El total de muestras es 2×steps+1 incluyendo la base, ordenadas de la más oscura a la más clara.
¿Cuál es la diferencia entre una sombra y un claro?
Una sombra baja la luminosidad HSL hacia el negro; un claro la eleva hacia el blanco. Ambos mantienen el matiz y la saturación originales para que la identidad de marca se mantenga estable.
¿Qué formatos hex se aceptan?
Hex CSS de tres y seis dígitos, con o sin almohadilla inicial.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
Herramientas relacionadas
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/shades \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3366cc","steps":3}'const res = await fetch("https://api.kit.forhosting.com/color/shades", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3366cc",
"steps": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/shades",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3366cc",
"steps": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/shades", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3366cc","steps":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3366cc","steps":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/shades", 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": "#3366cc",
"steps": 3
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.shades",
"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. |
Notas técnicas
El recuento de pasos es el número de escalones a cada lado de la base: tres pasos producen tres sombras más oscuras, el color original y tres claros más luminosos, en total siete muestras ordenadas de la más oscura a la más clara. Sin llamadas de red, sin semillas aleatorias ni deriva de modelo: el mismo color y los mismos pasos producen siempre el mismo JSON.
Qué envía y qué recibe de vuelta
Color también acepta los alias hex y base; steps acepta count y n. Campos ausentes, caracteres no hex, longitudes incorrectas, NaN, Infinity, no enteros y steps fuera del intervalo cerrado fallan con invalid_input y no se cobran. En caso de éxito la respuesta repite el color normalizado de seis dígitos y el entero steps, y luego ofrece count igual a dos veces steps más uno, lightness_base del HSL original, una muestra base, arrays separados de shades y tints, un array completo swatches ordenado de la más oscura a la más clara, y una lista de conveniencia hexes. El precio de las llamadas API exitosas es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepago.
Dónde aparecen las escalas de sombra en el trabajo real
Los pipelines de tokens de diseño emiten variables CSS o escalas de tema JSON desde un único hex base y almacenan cada muestra derivada para superficies en modo claro y modo oscuro. Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento exitoso y la validación fallida no consume saldo.
Casos de integración
Rampas de sombra con tokens de diseño
Genere una escalera completa de la más oscura a la más clara desde un hex de marca para variables CSS, JSON de tema y sistemas multi-marca.