Atenúe un color reduciendo su valor HSV
Atenúe un color sin desviar su matiz: quitar el 25 % del valor HSV convierte #40A0FF en #3078BF, con el mismo matiz y la misma saturación, y con los números RGB y HSV a la vista. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Color
- #40A0FF
- Cantidad
- 25
- Original
- #40A0FF
- Hex
- #3078BF
Este atenuador de color HSV crea una versión más oscura de un color hexadecimal al reducir el componente de valor y conservar el tono y la saturación. Introduzca un color de tres o seis dígitos y el porcentaje de su valor actual que desea eliminar. La herramienta devuelve el origen normalizado, el hexadecimal atenuado, los canales RGB enteros y los componentes HSV resultantes. Como el cálculo usa aritmética fija y redondeo explícito, una misma entrada siempre genera el mismo resultado. Los colores no válidos y los porcentajes fuera del intervalo de cero a cien producen un error claro en vez de un valor supuesto o corregido sin aviso.
Cómo cambia un color al atenuar su valor HSV
HSV describe un color mediante tono, saturación y valor. El tono indica su posición en la rueda cromática, la saturación expresa cuánto se aleja del gris neutro y el valor representa el canal RGB más brillante como porcentaje. Esta herramienta modifica únicamente el último componente.
Primero convierte el código hexadecimal en canales rojo, verde y azul; después los transforma a HSV y multiplica el valor actual por uno menos la cantidad solicitada dividida entre cien. Por tanto, una cantidad del veinticinco por ciento conserva el setenta y cinco por ciento del valor original; no resta veinticinco puntos fijos. Esta diferencia es importante con colores ya oscuros, porque la reducción relativa escala de forma natural y no puede producir un valor negativo.
Además, se aplica un límite explícito de cero. El tono y la saturación se mantienen, por lo que un azul vivo sigue siendo el mismo azul, pero más oscuro. Con cero por ciento solo se normaliza el formato.
Con cien por ciento, el valor llega a cero y el resultado es negro. Esta operación no equivale a reducir la luminosidad HSL: el valor HSV sigue el canal RGB máximo y resulta adecuado para selectores y flujos que ya trabajan con HSV.
Cómo proporcionar colores y porcentajes válidos
Proporcione color como una cadena hexadecimal CSS de tres o seis dígitos, con o sin almohadilla inicial. Una forma corta como #3AF se expande canal por canal a #33AAFF antes de la conversión. Se aceptan letras mayúsculas y minúsculas, y el origen normalizado se devuelve con seis dígitos en mayúsculas.
Las variantes con alfa de cuatro u ocho dígitos se rechazan porque esta capacidad transforma un color opaco y no compone transparencias sobre un fondo. Se ignoran los espacios alrededor de toda la cadena, pero no los espacios ni signos dentro del código. El campo amount obligatorio indica qué porcentaje del valor HSV actual se elimina.
Debe ser un número finito entre cero y cien, incluidos ambos límites, y puede contener decimales. El solucionador acepta cadenas numéricas para formularios, pero rechaza cadenas vacías, texto no numérico, infinito, valores negativos o superiores a cien. La validación nunca inventa un color ni limita silenciosamente un porcentaje inválido.
Así, los flujos automatizados detectan configuraciones erróneas antes de publicar un tono inesperado. La salida incluye el color original, el hexadecimal atenuado, la cantidad aplicada, los enteros RGB y los valores HSV en grados y porcentajes.
Uso de resultados deterministas en flujos de diseño
Utilice la herramienta del navegador para derivar el estado pulsado de un botón, revisar una muestra más oscura de un gráfico o comparar niveles de brillo sin instalar software gráfico. Los canales RGB se redondean al entero más cercano solo después de volver desde HSV; los campos HSV se redondean a seis decimales. Esta política evita colas flotantes largas y mantiene precisión suficiente para auditar la operación.
Para crear una escala, aplique varias cantidades explícitas al mismo origen; calcular cada paso desde la base evita acumular redondeos. Elija esta capacidad cuando la regla sea reducir específicamente el valor HSV. Si necesita luminosidad HSL u OKLCH, mezcla alfa o un contraste objetivo, use la transformación correspondiente, ya que esos modelos resuelven problemas diferentes.
Qué puede hacer con ella
Generar estados de interacción
Cree colores repetibles para estados hover, activo y pulsado desde un token base mediante reducciones documentadas del valor HSV.
Construir una escala HSV
Aplique varios porcentajes a un color de origen y exporte hexadecimales estables sin acumular errores de redondeo.
Normalizar una canalización gráfica
Use el mismo ajuste determinista en vistas del navegador, compilaciones del servidor, pruebas y documentación generada.
Preguntas frecuentes
¿Qué reduce exactamente el porcentaje?
Elimina ese porcentaje del valor HSV actual. Por ejemplo, un 20 por ciento conserva el 80 por ciento del valor original.
¿El valor HSV equivale a la luminosidad HSL?
No. El valor HSV se basa en el canal RGB máximo, mientras que la luminosidad HSL usa el punto medio de los canales máximo y mínimo. Los resultados pueden diferir.
¿Qué formatos de color se aceptan?
Use cadenas hexadecimales de tres o seis dígitos, con o sin almohadilla inicial. Se rechazan las formas con alfa y los nombres de colores.
¿Qué ocurre con cero y cien por ciento?
Cero conserva el color y normaliza su formato hexadecimal. Cien fija el valor HSV en cero y devuelve negro.
¿Cómo oscurezco #40A0FF un 25 por ciento?
Escriba #40A0FF como color y 25 como cantidad. La herramienta conserva el 75 % del valor actual y devuelve #3078BF, es decir, RGB 48, 120, 191, con el mismo matiz y la misma saturación.
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/dim-hsv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#40A0FF","amount":25}'const res = await fetch("https://api.kit.forhosting.com/color/dim-hsv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#40A0FF",
"amount": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/dim-hsv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#40A0FF",
"amount": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/dim-hsv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#40A0FF","amount":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#40A0FF","amount":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/dim-hsv", 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": "#40A0FF",
"amount": 25
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.dim_hsv",
"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
Cómo proporcionar colores y porcentajes válidos
Puede usar hex como alias de color y percent o percentage como alias de amount.
Uso de resultados deterministas en flujos de diseño
Recurra a la API cuando un compilador de temas, una canalización de tokens, una generación de documentación o un servicio de recursos necesite repetir exactamente la transformación. Cada elemento correcto de la API parte de $0.002. El hexadecimal siempre tiene seis dígitos en mayúsculas y puede copiarse a variables CSS, tokens JSON o rellenos de canvas.
Preguntas técnicas
¿Se limita un porcentaje no válido?
No. Los porcentajes ausentes, no finitos, negativos o superiores a cien devuelven invalid_input para que el error sea visible.
¿Cuánto cuesta la API?
Cada elemento correcto de la API parte de $0.002; el mismo solucionador determinista puede ejecutarse gratis en el navegador.