Tutoriales

Cómo Funcionan los Códigos de Color Hex: La Guía Completa

8 min de lectura

Si alguna vez has visto un archivo CSS, una herramienta de diseño o una guía de estilo de marca, has visto códigos de color hex: cadenas de seis caracteres como #3B82F6 o #FF5733 que de alguna manera codifican cada color que puede mostrar una pantalla. Parecen una secuencia aleatoria de letras y números, pero hay un sistema preciso detrás de ellos — y una vez que lo entiendes, puedes leer cualquier código hex de un vistazo.

Esta guía cubre todo, desde la estructura básica de un código hex hasta la notación abreviada, la transparencia alfa y las técnicas prácticas de conversión.

¿Qué Significa "Hex"?

La palabra "hex" es la abreviación de hexadecimal — un sistema numérico que usa base 16 en lugar de la base 10 que usamos en la vida cotidiana. En base 10, los dígitos van del 0 al 9. En base 16, los dígitos van del 0 al 9 y continúan con las letras de la A a la F, dando dieciséis valores posibles por dígito.

Hexadecimal Decimal
0 0
9 9
A 10
B 11
C 12
D 13
E 14
F 15
10 16
FF 255

¿Por qué base 16? Porque se ajusta perfectamente a la memoria de la computadora. Un solo byte de datos — 8 bits binarios — puede contener valores del 0 al 255. En hexadecimal, ese mismo rango cabe en exactamente dos dígitos: 00 a FF. Esta compacidad es la razón por la que el hex se convirtió en el estándar para especificar colores en contextos web y de diseño.

La Estructura de un Código de Color Hex

Un código de color hex estándar tiene esta estructura:

# R R G G B B

El símbolo de almohadilla (#) es un prefijo que indica "esto es un color". Después vienen tres pares de dígitos hexadecimales — un par cada uno para los canales Rojo, Verde y Azul del modelo de color RGB. Cada par codifica un valor del 0 (00) al 255 (FF), controlando la intensidad de ese canal.

Por ejemplo, toma #3B82F6 — un azul medio vívido:

Parte Valor Decimal Significado
3B Rojo 59 Rojo bajo — poca calidez
82 Verde 130 Verde moderado
F6 Azul 246 Azul muy alto — canal dominante

El canal de azul alto es lo que hace que este color parezca azul. El verde moderado lo empuja ligeramente hacia el cian en lugar del azul marino puro. El rojo bajo lo mantiene frío.

Compara eso con #FF5733, un rojo coral:

Parte Valor Decimal Significado
FF Rojo 255 Rojo máximo
57 Verde 87 Algo de verde — agrega la cualidad naranja
33 Azul 51 Azul bajo — cálido

El rojo máximo con verde moderado produce rojo-naranja. El azul bajo mantiene el tono cálido.

Cómo Leer un Código Hex de un Vistazo

No necesitas convertir a decimal para tener una lectura rápida de un color hex. Algunas reglas generales:

00 = intensidad cero (nada de este canal) FF = intensidad máxima (máximo de este canal) 80 ≈ media intensidad (128 de 255)

Esto te permite decodificar los códigos hex aproximadamente de un vistazo:

  • #FF0000 — rojo completo, sin verde, sin azul → rojo puro
  • #00FF00 — sin rojo, verde completo, sin azul → verde puro
  • #0000FF — sin rojo, sin verde, azul completo → azul puro
  • #FFFF00 — rojo y verde completos, sin azul → amarillo (rojo + verde = amarillo en luz)
  • #FF00FF — rojo y azul completos, sin verde → magenta
  • #00FFFF — verde y azul completos, sin rojo → cian
  • #FFFFFF — todos los canales al máximo → blanco
  • #000000 — todos los canales en cero → negro
  • #808080 — todos los canales a la mitad → gris medio

Cuando los dos primeros dígitos son altos y los demás son más bajos, el color tiende al rojo. Los dígitos centrales altos empujan hacia el verde. Los últimos dos dígitos altos empujan hacia el azul o el morado.

Detectar Claro vs Oscuro

Si los tres pares tienen valores hexadecimales altos (C, D, E, F), el color será claro. Si los tres son bajos (0, 1, 2, 3), será oscuro. Los valores iguales en los tres canales siempre producen un gris neutro (o negro o blanco en los extremos).

  • #F0E6D3 — todos los valores altos → beige cálido claro
  • #1A1A2E — todos los valores bajos → azul marino muy oscuro
  • #A0A0A0 — valores medios iguales → gris medio

Notación Hex Abreviada

CSS permite una abreviación de tres caracteres cuando cada par de dígitos hexadecimales es un carácter repetido. Por ejemplo, #AABBCC puede escribirse como #ABC. Cada dígito en la abreviación simplemente se duplica para producir la versión completa de seis caracteres.

Abreviación Equivalente completo
#F00 #FF0000 (rojo puro)
#0F0 #00FF00 (verde puro)
#00F #0000FF (azul puro)
#FFF #FFFFFF (blanco)
#000 #000000 (negro)
#369 #336699 (azul acero)

Esta abreviación solo funciona cuando cada par es un carácter repetido. #3B82F6 no puede abreviarse porque 3B, 82 y F6 no son pares repetidos. Pero #336699 puede abreviarse a #369.

Cuándo Usar la Abreviación

El hex abreviado es una función CSS válida y se representará de forma idéntica a la versión completa. Úsalo libremente cuando el código lo admita. Sin embargo, muchas herramientas de diseño y guías de estilo de marca usan el formato de seis caracteres completo para mayor claridad y consistencia — es inmediatamente obvio cuál es el valor de cada canal sin ninguna expansión mental.

Hex con Alfa: Códigos Hex de Ocho Caracteres

El código hex estándar de seis caracteres no incluye información de transparencia. Para agregar un canal alfa (opacidad), CSS admite un formato hex de ocho caracteres donde los dos últimos caracteres especifican la transparencia.

El canal alfa sigue el mismo rango de 0 a 255, codificado como un par hex:

Hex alfa Decimal alfa Opacidad
FF 255 100% (completamente opaco)
CC 204 80%
99 153 60%
80 128 ~50%
66 102 40%
33 51 20%
00 0 0% (completamente transparente)

Por ejemplo, para usar el azul #3B82F6 al 50% de opacidad: #3B82F680.

Para usar una superposición oscura #000000 al 70% de opacidad: #000000B3.

Abreviación de Cuatro Caracteres con Alfa

Así como #RGB es la abreviación de #RRGGBB, existe una abreviación #RGBA para #RRGGBBAA. Cada dígito se duplica:

  • #F00F = #FF0000FF (rojo puro, completamente opaco)
  • #0008 = #00000088 (negro al ~53% de opacidad)
  • #FFF0 = #FFFFFF00 (blanco completamente transparente)

Alternativas al Alfa Hex

Antes de que el hex de ocho caracteres tuviera amplio soporte, la forma estándar de agregar transparencia era rgba():

/* Estos son equivalentes */
background-color: #3B82F680;
background-color: rgba(59, 130, 246, 0.5);

Ambos tienen buen soporte en los navegadores modernos. La forma rgba() suele ser más legible porque la opacidad se expresa como un decimal legible por humanos (de 0 a 1) en lugar de un par hex que requiere conversión mental.

Conversión de Hex a Otros Formatos

Los códigos hex describen los mismos colores RGB que la notación rgb() — son solo una representación más compacta. Convertir entre ellos es sencillo.

Hex a RGB

Para cada par de dígitos hex, convierte de hexadecimal a decimal:

  • #FF5733 → Rojo: FF = 255, Verde: 57 = 87, Azul: 33 = 51
  • CSS: rgb(255, 87, 51)

Hex a HSL

Esta conversión es más elaborada. HSL (Matiz, Saturación, Luminosidad) es un formato perceptualmente intuitivo donde el matiz se expresa en grados en el círculo cromático y la saturación y luminosidad como porcentajes. El Conversor de Color maneja esto al instante — ingresa cualquier código hex y genera los equivalentes RGB, HSL, CMYK y OKLCH simultáneamente.

Hex a OKLCH

OKLCH es el formato de color CSS más moderno, diseñado para ser perceptualmente uniforme. Es excelente para la manipulación programática del color — pasos numéricos iguales en OKLCH corresponden a diferencias percibidas iguales. El Conversor de Color incluye salida OKLCH para cualquier código hex que ingreses.

Ejemplos de Conversión Comunes

Color HEX RGB HSL
Azul cielo #87CEEB rgb(135, 206, 235) hsl(197, 71%, 73%)
Tomate #FF6347 rgb(255, 99, 71) hsl(9, 100%, 64%)
Verde oliva #6B8E23 rgb(107, 142, 35) hsl(80, 60%, 35%)
Gris pizarra #708090 rgb(112, 128, 144) hsl(210, 13%, 50%)

Hex en CSS: Uso Práctico

Los códigos hex funcionan en cualquier lugar de CSS que acepte un valor de color:

/* Color de texto */
color: #1A1A2E;

/* Fondo */
background-color: #F0E6D3;

/* Borde */
border: 2px solid #3B82F6;

/* Sombra de caja */
box-shadow: 0 4px 12px #0000001A; /* negro al ~10% de opacidad */

/* Con propiedades personalizadas CSS */
:root {
  --brand-primary: #3B82F6;
  --brand-dark: #1D4ED8;
}

Sensibilidad a Mayúsculas/Minúsculas

Los códigos de color hex no distinguen entre mayúsculas y minúsculas en CSS. #3B82F6, #3b82f6 y #3B82f6 hacen referencia al mismo color. La mayoría de las guías de estilo estandarizan en todo mayúsculas o todo minúsculas para mantener la consistencia. Las mayúsculas son la norma tradicional; las minúsculas son populares en bases de código modernas y muchos linters las prefieren.

Cómo Encontrar Códigos Hex

Herramientas de diseño. Figma, Sketch y Adobe XD muestran todos los códigos hex en sus paneles de selector de color. Cualquier muestra de color en estas herramientas se puede copiar como hex.

DevTools del navegador. Haz clic derecho en cualquier elemento de una página web e inspecciónalo. El panel CSS muestra los valores de color calculados, en los que puedes hacer clic para alternar entre formatos incluyendo hex.

Páginas de color de ColorFYI. Cada página de detalle de color en ColorFYI — como /color/3B82F6/ — muestra el código hex completo junto con los valores RGB, HSL, CMYK y OKLCH, más el nombre del color si tiene uno.

El Conversor de Color. Si tienes un color en RGB o HSL y necesitas el equivalente hex, pégalo en el Conversor de Color para una traducción instantánea.

Conclusiones Clave

  • Un código de color hex es un número hexadecimal de seis caracteres donde los primeros dos codifican el canal Rojo, los dos del medio codifican el Verde y los dos últimos codifican el Azul.
  • Cada par de canal va de 00 (intensidad 0) a FF (intensidad 255), coincidiendo con el rango completo de 0 a 255 del modelo RGB.
  • Los dígitos hexadecimales altos indican alta intensidad del canal; los dígitos bajos indican baja intensidad. Los valores iguales en los tres canales producen neutros (negro, gris, blanco).
  • La abreviación de tres caracteres (#RGB) es válida cuando cada par repite el mismo dígito — #336699 se convierte en #369.
  • El hex de ocho caracteres (#RRGGBBAA) agrega un canal de transparencia alfa; los dos últimos dígitos van de 00 (transparente) a FF (opaco).
  • Usa el Conversor de Color para traducir cualquier código hex a RGB, HSL, CMYK u OKLCH al instante.
  • Los códigos hex no distinguen mayúsculas de minúsculas en CSS. Estandariza en una convención (todo mayúsculas o todo minúsculas) para mantener la consistencia.

Colores relacionados

Marcas relacionadas

Herramientas relacionadas