Expandir color hex abreviado
Convierta la forma abreviada en la larga que usan los navegadores: #f0a pasa a #ff00aa porque cada dígito se duplica, y además obtiene #FF00AA en mayúsculas y los canales 255, 0 y 170. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Hex
- #f0a
- Hex
- #ff00aa
- Hex sin #
- ff00aa
- Mayúsculas
- #FF00AA
- Forma abreviada
- #f0a
CSS y las herramientas de diseño suelen escribir colores en forma abreviada de tres dígitos, por ejemplo #f0a, en lugar de la forma completa de seis dígitos #ff00aa. Los navegadores expanden esa abreviatura duplicando cada dígito hexadecimal para que cada canal sea un byte completo. Esta herramienta de expansión de color hex abreviado acepta un código de tres dígitos con o sin almohadilla inicial, comprueba que cada carácter sea un dígito hexadecimal y devuelve la expansión determinista de seis dígitos más los enteros de canal rojo, verde y azul correspondientes. Los desarrolladores front-end la usan cuando los tokens de diseño llegan en códigos cortos y las hojas de estilo, capturas o sistemas de diseño exigen la forma larga. Estudiantes y scripts de QA la usan para verificar que una paleta escrita a mano coincide byte a byte con la regla del CSS Color Module.
Qué significa la abreviatura de 3 dígitos y cómo funciona la expansión
En CSS, un color hexadecimal puede escribirse con tres dígitos tras una almohadilla opcional: un nibble para el rojo, uno para el verde y uno para el azul. La regla oficial de expansión es simple y absoluta: cada dígito se repite una vez de modo que tres caracteres se convierten en seis. Por ejemplo, #abc se expande a #aabbcc, #f0a a #ff00aa y #000 a seis ceros.
Esa regla no es una heurística ni una aproximación perceptual; es el mismo mapeo que aplican los navegadores al analizar una hoja de estilo. Esta calculadora codifica exactamente ese mapeo.
Usted proporciona una abreviatura de tres dígitos, el motor pasa los dígitos a minúsculas para una forma canónica estable, duplica cada nibble y devuelve la cadena completa con almohadilla, los seis dígitos sin almohadilla, una forma en mayúsculas para guías de estilo que prefieren A–F en mayúscula, la abreviatura normalizada de tres dígitos con y sin almohadilla, un booleano que indica si la entrada llevaba almohadilla inicial, y los canales enteros r, g y b de 0 a 255 para que pueda alimentar el mismo color a herramientas RGB sin una segunda conversión.
No hay ruta que invente un cuarto canal, preserve alfa o trate prefijos 0x como colores CSS válidos. Use un convertidor dedicado de hex a RGB o multiformato cuando ya tenga seis dígitos y solo necesite números de canal; use esta página cuando la entrada es deliberadamente corta y la tarea es materializar la forma larga con un contrato de validación claro.
Dónde resulta útil expandir el hex abreviado
Los sistemas de diseño suelen recibir muestras de marca como códigos de tres dígitos de guías de estilo antiguas, plugins de Figma o notas manuscritas, mientras que las tuberías de tokens modernas y las propiedades personalizadas CSS prefieren hashes de seis dígitos para búsquedas, diferencias de capturas y mapeo canal a canal. Expandir la abreviatura una sola vez en el límite mantiene a todos los consumidores posteriores en la forma larga sin que cada equipo reimplemente la regla de doblado de forma ligeramente distinta.
Los materiales didácticos de desarrollo web introducen colores de tres dígitos pronto porque son fáciles de escribir y luego piden a los estudiantes explicar la expansión; una herramienta determinista permite mostrar que #fff es blanco y que #f0a no es lo mismo que inventar dígitos faltantes. Las tuberías de QA y accesibilidad a veces almacenan colores en formatos mezclados; normalizar códigos cortos a seis dígitos antes de las comprobaciones de contraste evita falsos desajustes cuando un lado usó abreviatura y el otro la forma larga.
Combine este expansor con convertidores RGB o HSL cuando necesite otros espacios, y mantenga esta página centrada cuando la única tarea sea de tres dígitos a seis bajo un contrato de validación estricto que rechaza códigos ya largos y caracteres ilegales en lugar de adivinar.
Qué puede hacer con ella
Tokens de diseño y normalización CSS
Convierta la abreviatura de marca #RGB en cadenas #RRGGBB para archivos de tema, propiedades personalizadas y tuberías de tokens del sistema de diseño.
Enseñanza y comprobación de ejercicios
Muestre a los estudiantes la regla CSS de doblar el nibble y verifique colores expandidos a mano sin calculadoras opacas.
Preguntas frecuentes
¿Cómo se expande #RGB a #RRGGBB?
Cada uno de los tres dígitos hex se duplica: #abc se convierte en #aabbcc y #f0a en #ff00aa. Es la misma regla que usan los navegadores CSS para colores abreviados.
¿Acepta la herramienta hex de 6 dígitos como entrada?
No. Esta herramienta solo expande la abreviatura de 3 dígitos.
¿Qué caracteres están permitidos?
Exactamente tres dígitos hexadecimales 0–9 y A–F/a-f, con una almohadilla opcional. Se rechazan espacios, prefijos 0x, cadenas vacías y caracteres no hex.
¿Cómo queda #f0a con seis dígitos?
Queda #ff00aa. Cada uno de los tres dígitos se escribe dos veces: la f pasa a ff, el 0 a 00 y la a se convierte en aa, lo que da rojo 255, verde 0 y azul 170.
¿Tengo que escribir la almohadilla inicial?
No. Puede introducir #f0a o solo f0a y el resultado es el mismo. La respuesta indica además si lo que usted escribió llevaba almohadilla.
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/hex3-hex6 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hex":"#f0a"}'const res = await fetch("https://api.kit.forhosting.com/color/hex3-hex6", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hex": "#f0a"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/hex3-hex6",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hex": "#f0a"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/hex3-hex6", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hex":"#f0a"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hex":"#f0a"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/hex3-hex6", 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
{
"hex": "#f0a"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.hex3_hex6",
"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 motor no llama a la red, no usa aleatoriedad y no depende del reloj, de modo que las ejecuciones gratuitas en el navegador y las llamadas API a $0.002 por solicitud correcta siempre coinciden en la misma cadena #RRGGBB.
Qué significa la abreviatura de 3 dígitos y cómo funciona la expansión
Una longitud incorrecta, incluido un código de seis dígitos ya expandido, se rechaza con invalid_input en lugar de pasarse en silencio, porque la intención de búsqueda de esta página es el paso de expansión en sí, no una conversión multiformato de color.
Contrato de entrada, validación y forma de salida reproducible
Se recortan los espacios exteriores. Tras la almohadilla opcional, el cuerpo debe contener exactamente tres caracteres de 0 a 9 y de A a F en cualquier mayúscula o minúscula. Espacios dentro del cuerpo, cuerpos vacíos, formas de cuatro u ocho dígitos y cualquier carácter no hexadecimal fallan la validación. El nombre de campo preferido es hex, pero se aceptan los alias color, value, text, input, code y shorthand para que formularios, cadenas de consulta y hojas de cálculo reutilicen el mismo contrato sin renombrar columnas. El valor debe ser una cadena: se rechazan números sueltos porque los ceros a la izquierda y la longitud de dígitos importan en los códigos de color y un número JSON no puede conservar esos detalles. Se permite una única almohadilla inicial opcional y se registra en had_hash; un prefijo 0x o 0X no es abreviatura CSS y falla con un mensaje claro. En caso de éxito la respuesta incluye siempre el hex en minúsculas con almohadilla como valor expandido principal, hex_no_hash para archivos de tokens que guardan dígitos sin almohadilla, uppercase para convenciones en mayúsculas, shorthand y shorthand_no_hash como la entrada de tres dígitos normalizada, los enteros de canal r, g y b derivados de los pares expandidos, la etiqueta de método hex3_to_hex6 y una cadena de fórmula breve que recuerda que cada nibble d se convierte en d d. La validación fallida no se factura; las llamadas API correctas cuestan el precio base publicado.
Dónde resulta útil expandir el hex abreviado
Como la implementación es parse puro de nivel A, cada llamada correcta cuesta $0.002 sin tokens de modelo ni red de salida, la entrada inválida no consume saldo y no se almacena nada tras devolver la respuesta.
Casos de integración
Fixtures deterministas de CI
Fije resultados hex expandidos en pruebas unitarias y líneas base de capturas para que los códigos cortos de paleta no deriven entre entornos.
Preguntas técnicas
¿Es obligatoria la almohadilla inicial?
No. Se aceptan tanto #f0a como f0a. La respuesta incluye had_hash para ver si la entrada usó almohadilla, y hex siempre devuelve una cadena de seis dígitos con almohadilla.
¿Cuánto cuesta expandir un color hex abreviado?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada correcta; la entrada inválida no se factura.