CodeForge

Maquetación Web Dinámica / CSS3 fundamentos: la piel

Colores: hex, rgb, hsl, oklch y color-mix()

Teoría20 min20 XP

Hay cuatro formas principales de escribir un color en CSS. No son equivalentes: cada una es un modelo mental distinto, y elegir el correcto cambia cómo DISEÑAS. Hoy pasas de copiar códigos de color a entenderlos — y conoces oklch, el formato con el que la industria está migrando.

hex y rgb: el color como lo ve la máquina

#7C3AED y rgb(124 58 237) son el mismo color escrito en dos bases: tres pares hexadecimales o tres números 0-255 para rojo, verde y azul. Son los formatos que verás en Figma, en los picker y en el 90% del código existente. Su limitación: son ilegibles para humanos. ¿Qué color es #B45309? Nadie lo sabe sin probarlo.

hsl: el color como lo piensa un diseñador

hsl(258 88% 58%) describe el color por tono (0-360, la rueda de color), saturación (qué tan vivo) y luminosidad (qué tan claro). De pronto los colores se pueden RAZONAR: ¿más oscuro? baja la luminosidad. ¿Más apagado? baja la saturación. ¿El color complementario? suma 180 al tono.

oklch: hsl corregido por la ciencia

hsl tiene un defecto oculto: su luminosidad MIENTE. Un amarillo y un azul con el mismo l% se perciben clarísimo y oscurísimo respectivamente — el ojo humano no procesa todos los tonos igual. oklch usa luminosidad perceptual: mismo número = misma claridad percibida, en cualquier tono.

oklch.css

Ese es el motivo por el que los sistemas de diseño modernos (incluido Tailwind v4, que usarás más adelante) migraron a oklch: generas 10 tonos de una paleta cambiando un solo número y todos armonizan.

Opacidad y mezclas

opacidad-mezclas.css

¿Qué problema de hsl corrige oklch?

Mini-reto

Toma el color principal de tu periódico y crea tres variantes con color-mix(): un hover 20% más oscuro, un fondo al 10% sobre blanco y un borde al 40%. Aplícalas al nav. Un solo color de origen, un sistema completo.

Qué sigue

Colores listos. La próxima lección responde una pregunta que llevas semanas acumulando sin saberlo: ¿por qué algunos elementos se apilan (p, h1, div) y otros conviven en la misma línea (a, strong, img)? Display: el interruptor del comportamiento.