Validar color hexadecimal
El validador de colores hexadecimales ofrece una respuesta directa y determinista para códigos usados en CSS, tokens de diseño, temas, archivos de configuración y marcado generado.
Ejecutar — gratis
Acepta los formatos estándar de tres, cuatro, seis y ocho dígitos, con o sin almohadilla inicial, y comprueba cada carácter sin adivinar ni corregir el valor. El resultado es un booleano sencillo para formularios, pruebas, importaciones o flujos con API. Los campos ausentes y los tipos incorrectos generan errores claros, de modo que un problema de solicitud nunca se confunde con un color no válido.
Qué se considera un color hexadecimal válido
Un color hexadecimal válido contiene exactamente tres, cuatro, seis u ocho dígitos hexadecimales. El formato de tres dígitos representa RGB abreviado; cuatro representa RGBA abreviado con alfa; seis corresponde a RGB completo y ocho a RGBA completo. La almohadilla inicial es opcional, porque CSS, bases de datos, herramientas de diseño y archivos de configuración no siempre guardan el prefijo del mismo modo. Después de ese prefijo opcional, cada carácter debe ser un dígito ASCII del 0 al 9 o una letra de A a F, en mayúscula o minúscula. El comprobador no acepta espacios, signos, puntuación, almohadillas repetidas, nombres de colores, funciones CSS ni otras longitudes. Tampoco recorta la entrada. Esta rigurosidad revela espacios invisibles e impide aprobar silenciosamente un valor distinto del original. Por ello, el booleano <code>valid</code> describe exactamente la cadena que usted proporciona.
Por qué conviene una validación determinista
Validar un color parece una operación menor, pero unas reglas incoherentes producen defectos persistentes. Un navegador puede rechazar un formato, una biblioteca normalizar otro y una expresión regular artesanal olvidar el alfa abreviado o admitir cinco dígitos por accidente. Esta capacidad aplica una regla explícita: quita una sola almohadilla opcional, confirma que la longitud restante sea una de las cuatro permitidas y comprueba que todos los caracteres pertenezcan al alfabeto hexadecimal. No intervienen red, azar, fecha, configuración regional, conversión de mayúsculas ni interpretación del espacio de color. La misma entrada produce así el mismo booleano en el widget y en la API. Una cadena de color incorrecta devuelve <code>false</code> como resultado normal; en cambio, omitir el campo o enviar un número, lista u objeto donde debe haber una cadena produce un error de entrada claro. Su aplicación puede informar de un color incorrecto y, a la vez, detectar integraciones rotas.
Cómo usar el resultado en formularios y procesos
Use el validador justo antes de que un color cruce un límite de confianza. En un formulario, ejecútelo al cambiar el campo o antes del envío y muestre un mensaje específico cuando <code>valid</code> sea falso. En una importación de tokens, compruebe cada valor antes de generar CSS para evitar que un token defectuoso invalide una hoja de estilos o se propague por un tema. En un proceso de datos, conserve la cadena original junto al booleano si necesita auditoría; no sustituya el origen por un valor normalizado, pues esta capacidad valida y no transforma. Si necesita expansión, conversión o extracción de canales, valide primero y envíe después los valores aprobados a la capacidad correspondiente. La ejecución en el navegador sirve para comprobaciones interactivas, y la API cuesta $0.002 por solicitud. La respuesta estable encaja directamente en condiciones y pruebas de límites, símbolos inválidos, prefijos sobrantes, vacíos y espacios.
Qué puede hacer con ella
Comprobar un campo de color
Confirme que una persona ha indicado un formato RGB o RGBA admitido antes de guardar su preferencia de tema.
Validar tokens de diseño
Rechace colores defectuosos antes de convertir una colección de tokens en variables CSS o constantes de aplicación.
Proteger estilos generados
Compruebe colores de fuentes externas antes de insertarlos en una hoja de estilos o configuración de componentes.
Preguntas frecuentes
¿Qué longitudes son válidas?
Exactamente 3, 4, 6 u 8 dígitos hexadecimales, sin contar la almohadilla inicial opcional.
¿Es obligatoria la almohadilla inicial?
No. Tanto #336699 como 336699 son representaciones válidas para este comprobador.
¿Se aceptan letras mayúsculas?
Sí. Se admiten las letras hexadecimales de A a F en mayúscula o minúscula.
¿El validador elimina los espacios?
No. Los espacios iniciales o finales invalidan el color y permiten descubrir problemas de formato.
¿Cuánto cuesta?
La API cuesta $0.002 por solicitud y la misma comprobación determinista puede ejecutarse en su navegador.
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/is-valid-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"#336699cc"}'const res = await fetch("https://api.kit.forhosting.com/color/is-valid-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "#336699cc"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/is-valid-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "#336699cc"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/is-valid-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"#336699cc"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"#336699cc"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/is-valid-hex", 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
{
"text": "#336699cc"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.is_valid_hex",
"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. |