Conversor HSL a HWB
Describa un color como un tono con algo de blanco y de negro: hsl(210, 80%, 45%) pasa a blancura 9 % y negrura 19 % sobre el mismo tono, escrito como hwb(210 9% 19%). Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- H
- 210
- S
- 80
- L
- 45
- W
- 9
- B
- 19
- Css
- hwb(210 9% 19%)
HSL describe un color por el matiz en la rueda, la saturación como lo vívido de la mezcla y la luminosidad como lo cerca que queda del negro o del blanco. HWB usa ese mismo matiz y nombra cuánto blanco y cuánto negro se mezclan con el matiz puro. Quienes ya eligen colores en HSL suelen necesitar HWB al escribir funciones hwb() del CSS Color Module, al hablar con herramientas de ilustración que exponen deslizadores de blancura y negrura, o al documentar una muestra como tinte más sombra. Este conversor toma el matiz en grados de cero a trescientos sesenta y la saturación y la luminosidad como porcentajes de cero a cien, y devuelve el triple HWB correspondiente con una cadena CSS hwb().
Cómo se proyecta HSL sobre matiz, blancura y negrura
El matiz es compartido por HSL y HWB: cero grados es rojo puro, ciento veinte es verde puro, doscientos cuarenta es azul puro y trescientos sesenta cierra el círculo de nuevo en rojo. HSL guarda entonces la saturación como hasta dónde se estira un gris de la luminosidad elegida hacia el color plenamente cromático en ese matiz, y la luminosidad como la mezcla entre negro al cero por ciento, un tono medio cerca del cincuenta por ciento y blanco al cien por ciento.
HWB nombra el mismo color como un matiz puro mezclado con una cantidad de blanco y una cantidad de negro. En el intervalo unitario el mapeo es de forma cerrada y no necesita un paso por RGB entero: el croma es uno menos el valor absoluto de dos veces la luminosidad menos uno, todo multiplicado por la saturación; la blancura es la luminosidad menos la mitad del croma; la negrura es uno menos la luminosidad menos la mitad del croma.
Eso equivale a tomar el canal RGB mínimo como blanco y uno menos el canal RGB máximo como negro, que es como el CSS Color Module Level Four define HWB. Cuando la saturación es cero el croma desaparece, así que blancura y negrura pasan a ser porcentajes complementarios que suman cien y describen un gris, un negro o un blanco.
Cuando la luminosidad es cincuenta por ciento y la saturación es cien por ciento, el croma vale uno y tanto el blanco como el negro se colapsan a cero, que es el matiz puro. El matiz debe estar en el intervalo cerrado de cero a trescientos sesenta; saturación y luminosidad deben estar cada una entre cero y cien por ciento inclusive.
Qué envía usted y qué recibe a cambio
Envíe tres números finitos en los campos h, s y l. El campo h es el matiz en grados y es obligatorio; debe situarse entre cero y trescientos sesenta inclusive porque HSL y HWB comparten ese ángulo y este conversor no inventará un envoltorio. Los campos s y l son saturación y luminosidad como porcentajes de cero a cien.
Cuando la saturación queda fuera de cero a cien, la respuesta explica que s debe ser un porcentaje en esa banda cerrada para que un cliente pueda acotar o corregir el token antes de reintentar; la misma regla aplica a la luminosidad.
En caso de éxito, la respuesta devuelve los valores h, s y l limpios, informa la blancura w y la negrura b como porcentajes, anida el objeto hsl de origen y el objeto hwb resultante, emite una cadena CSS imprimible de la forma hwb(H W% B%) e incluye una nota breve de fórmula que reexpresa las identidades de croma.
Comprobaciones clásicas incluyen el azul-cian de tono medio con matiz doscientos diez, saturación ochenta y luminosidad cuarenta y cinco, que mapea a nueve por ciento de blanco y diecinueve por ciento de negro; el rojo puro con matiz cero, saturación cien y luminosidad cincuenta, que mapea a cero de blanco y cero de negro; y cualquier matiz con saturación cero, que colapsa a una mezcla acromática cuya blancura más negrura suma cien.
Dónde aparece la conversión de HSL a HWB en el trabajo real
Los sistemas de diseño suelen redactar rampas de marca en HSL para que los equipos de producto puedan escalonar la luminosidad con contraste accesible manteniendo estables el matiz y una banda de saturación; sin embargo, las hojas de estilo modernas, las aplicaciones de ilustración y varios selectores nativos ya exponen HWB porque mezclar un matiz puro con blanco y negro coincide con cómo los pintores hablan de tintes y sombras.
Los ingenieros front-end que migran un token de propiedades personalizadas hsl() a hwb() necesitan un oráculo determinista que no dependa de la serialización del estilo calculado de un navegador concreto. Las herramientas de visualización de datos y de arte generativo que construyen paletas categóricas avanzando el matiz a saturación y luminosidad fijas aún deben volcar HWB cuando un renderizador o una canalización de impresión pide blancura y negrura en lugar de un tercer eje de luminosidad.
El currículo y las lecciones de bootcamp enseñan modelos cilíndricos en paralelo y necesitan una clave de confianza única para los deberes que coincida con las identidades del CSS Color Module y no con una captura de un selector de color. Si más adelante necesita HSL a RGB, HSL a HSV, conversión multi-formato HEX LAB CMYK o comprobaciones de contraste WCAG, trátelos como intenciones de búsqueda y aterrizajes separados en lugar de sobrecargar esta página dedicada al conversor de HSL a HWB.
Qué puede hacer con ella
Tokens de diseño de HSL a CSS hwb()
Convierta rampas de marca HSL en triples de matiz, blancura y negrura para hojas de estilo modernas, selectores de ilustración y tablas de documentación que hablan HWB.
Documentación de tintes y sombras
Exprese una muestra HSL como un matiz puro mezclado con blanco y negro para que las revisiones de diseño hablen de tintes y sombras sin un segundo modelo de color.
Preguntas frecuentes
¿Qué rangos aceptan el matiz, la saturación y la luminosidad?
El matiz h debe estar entre 0 y 360 grados inclusive. La saturación s y la luminosidad l son porcentajes de 0 a 100.
¿Cambia el matiz entre HSL y HWB?
No. El matiz es compartido por ambos modelos y se copia sin cambios. Solo se calculan la blancura y la negrura a partir de la saturación y la luminosidad.
¿Cómo se calculan la blancura y la negrura?
En el intervalo unitario, el croma C vale (1 − |2L − 1|) · S. La blancura es L − C/2 y la negrura es 1 − L − C/2. Los resultados se devuelven como porcentajes de 0 a 100.
¿Qué aspecto tiene una cadena CSS hwb()?
El campo css es una cadena del Color Module como hwb(210 9% 19%). El matiz es el ángulo compartido; los dos porcentajes son blancura y negrura.
¿Cuánto cuesta el conversor de HSL a HWB?
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/hsl-hwb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"h":210,"s":80,"l":45}'const res = await fetch("https://api.kit.forhosting.com/color/hsl-hwb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"h": 210,
"s": 80,
"l": 45
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hsl-hwb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"h": 210,
"s": 80,
"l": 45
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hsl-hwb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"h":210,"s":80,"l":45}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"h":210,"s":80,"l":45}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hsl-hwb", 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
{
"h": 210,
"s": 80,
"l": 45
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hsl_hwb",
"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
Saturación y luminosidad fuera de los rangos legales fallan con un error invalid_input claro para que los tokens erróneos nunca se recorten en silencio.
Cómo se proyecta HSL sobre matiz, blancura y negrura
El pipeline es aritmética de punto flotante pura, sin semillas aleatorias, sin marcas de reloj y sin llamadas de red, de modo que entradas HSL idénticas siempre producen el mismo JSON. Los valores fuera de esas bandas fallan con invalid_input en lugar de un envoltorio silencioso o un recorte sin aviso.
Qué envía usted y qué recibe a cambio
Campos ausentes, cadenas vacías, tokens no numéricos, NaN e Infinity fallan con invalid_input nombrando el campo y no se cobran. 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 aparece la conversión de HSL a HWB en el trabajo real
Los flujos de accesibilidad que ajustan la luminosidad percibida en HSL y luego entregan a un editor basado en HWB siguen necesitando un mapeo exacto de canales sin API exclusivas del navegador. Como esta capacidad es un motor de parseo 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
Fixtures masivos de tokens y currículo
Programe la conversión determinista de HSL a HWB para fixtures de regresión, claves de deberes y exportaciones de paleta con una sola API a $0.002 por elemento.