Skip to content

Convertidor de Color — HEX, RGB, HSL y OKLCH

Convierta HEX a RGB, HSL, OKLCH, OKLAB y CMYK en su navegador — copie cualquier formato con un clic. Gratis, sin registro, sus colores nunca salen de la página.

Sin rastreo Se ejecuta en el navegador Gratis
Toda la conversión de color sucede localmente en su navegador. No se envía ningún dato a ningún servidor.
Gama: sRGB Display P3 Rec2020
Contraste vs:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulación de daltonismo (8 tipos)
Protanopia (ciego al rojo)
Deuteranopia (ciego al verde)
Tritanopia (ciego al azul)
Acromatopsia (total)
Protanomalía (débil al rojo)
Deuteranomalía (débil al verde)
Tritanomalía (débil al azul)
Acromatomalía (parcial)
Tintes claros / Matices oscuros / Tonos / Armonías

Tintes claros

Matices oscuros

Tonos

Armonías

Copiar como código
Referencia de colores comunes
Revisado por conformidad con CSS Color 4, corrección de la matriz OKLAB, precisión de WCAG 2.x + APCA Lc, y paridad de simulación CVD de 8 tipos con los valores publicados de Brettel + Machado. — Equipo de Ingeniería de Go Tools · May 27, 2026

¿Qué es un convertidor de color?

Un convertidor de color es una pequeña utilidad que traduce un único valor de color entre los formatos que su cadena de herramientas, su sistema de diseño y su navegador realmente entienden — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, y los 148 colores CSS con nombre. Los convertidores en línea han sido un pilar de las herramientas web desde principios de los 2000, cuando la respuesta era casi siempre un sencillo cuadro de texto HEX a RGB construido para una hoja de estilos de la era Geocities. Lo que separa un convertidor moderno de esas herramientas heredadas son tres cosas: una UX de campos unificados donde cada formato es editable simultáneamente en lugar de un menú desplegable en una sola dirección, una fuente de verdad OKLCH que mantiene el valor canónico internamente para que los viajes de ida y vuelta sean bit-estables, y matemáticas perceptuales basadas en W3C CSS Color 4 en lugar de la aritmética HSL enredada en gamma que envió la generación de 2003.

Distintos espacios de color existen porque distintos problemas necesitan distintas representaciones, y ningún espacio único es bueno en todos ellos. RGB es nativo del hardware — se asigna directamente a los subpíxeles rojo, verde y azul de un LCD o a los fósforos de un CRT, con cada canal codificado como entero de 8 bits de 0 a 255. HEX es solo RGB en base 16, empaquetado en una cadena de seis caracteres para CSS escueto y copy-paste de Figma. HSL, HSV y HWB son espacios de cognición para diseñadores — reformas cilíndricas de RGB que le permiten rotar matiz, aclarar u oscurecer con deslizadores intuitivos. HSL fue publicado en 1978 junto con HSV por Alvy Ray Smith; HWB se añadió en 1996 como un modelo mental más limpio (matiz + cantidad de blanco + cantidad de negro). CMYK es una abstracción del proceso de imprenta — una pila de tintas sustractivas (Cyan, Magenta, Yellow, Key=negro) que modela cómo la tinta absorbe la luz sobre el papel en lugar de cómo una pantalla la emite. OKLCH y OKLAB son espacios perceptuales — están diseñados para que distancia numérica igual corresponda a distancia percibida igual, lo que los hace indispensables para rampas de sistemas de diseño y matemáticas de accesibilidad. Los colores con nombre son legado CSS: los 148 nombres SVG/CSS3 como `tomato`, `rebeccapurple` y `slategray` que vienen con todos los navegadores.

Durante más de veinte años sRGB fue "suficientemente bueno" — un estándar IEC de 1996 construido alrededor de los fósforos primarios de los monitores CRT de la época. Definió silenciosamente el límite superior de lo que un color web podía significar. Luego las pantallas de gama amplia rompieron la suposición. Display P3 de Apple cubre aproximadamente un 50% más del espectro visible que sRGB y ahora viene en todo iPhone, iPad y MacBook desde 2017. Rec2020 cubre aún más y es el estándar de difusión para TV HDR. HSL incorporó las peculiaridades de gamma de sRGB profundo en su definición, por lo que una rampa HSL se ve visualmente desigual en una pantalla de gama amplia — un verde a L=50% se ve más brillante que un azul a L=50%, porque la L de HSL es geométrica, no perceptual. En 2020 Björn Ottosson publicó OKLAB, un espacio de color perceptualmente uniforme derivado de CIE-LAB con respuesta de luminosidad corregida y comportamiento más limpio en alta saturación. OKLCH es su forma polar (luminosidad perceptual / chroma / matiz), la misma forma que HSL pero con las matemáticas perceptuales corregidas. CSS Color 4 añadió la sintaxis `oklch()` y `oklab()` en 2022; Chrome 111 lanzó soporte en marzo de 2023, Safari 15.4 ya lo tenía desde marzo de 2022, y Firefox 113 aterrizó en mayo de 2023. Tailwind v4, lanzado en 2025, hizo de OKLCH su formato de token de color por defecto; shadcn/ui siguió poco después. Esta herramienta refleja ese cambio haciendo de OKLCH la fuente de verdad interna — cada conversión se enruta a través de OKLCH, de modo que un viaje HEX → RGB → OKLAB → HEX nunca acumula deriva de coma flotante, y editar el canal L de OKLCH directamente actualiza todos los demás campos con exactitud.

Qué espacio elegir depende enteramente de qué esté haciendo. **HEX** es la elección correcta para incrustar en web, copy-paste entre herramientas de diseño y código, y cualquier lugar donde importen identificadores concisos — `#3b82f6` cabe cómodamente en una variable CSS y la mayoría de desarrolladores front-end pueden leerlo a simple vista. El convertidor hex a RGB dedicado maneja la dirección más común en un solo paso; el inverso convertidor RGB a hex cubre el caso donde tiene enteros de canal separados de un diseñador o de una canalización de matemáticas de píxeles de imagen. **RGB** es para direccionamiento directo de hardware — cualquier lugar donde necesite enteros 0-255 (APIs canvas, manipulación de imágenes, tiras LED de hardware, atributos de color OpenGL). **HSL** es el espacio heredado de cognición para diseñadores — rotar matiz, aclarar, oscurecer — y sigue siendo útil cuando necesita un ajuste rápido de color CSS en un proyecto que no ha migrado a OKLCH. El convertidor hex a HSL de una sola dirección es el atajo correcto cuando es todo lo que necesita. **HSV y HWB** son espacios de selector de color para diseñadores. HSV (Hue, Saturation, Value) coincide con el cuadrado de saturación-valor que dibujan la mayoría de selectores, así que es lo que Photoshop, Figma y Sketch reportan cuando hace clic con el cuentagotas. HWB es el modelo mental más limpio — elija un matiz puro, luego añada blanco para aclarar o negro para oscurecer — y CSS Color 4 añadió soporte nativo para `hwb()` en todos los navegadores evergreen. **CMYK** es para preparación de imprenta. Una advertencia rotunda: nuestra salida CMYK es una aproximación ingenua basada en sRGB usando la fórmula estándar `K = 1 - max(R,G,B); C = (1-R-K)/(1-K)`. La precisión real en imprenta requiere conversión con perfil ICC contra la prensa, tinta y papel específicos — típicamente US Web Coated SWOP v2 o Fogra39 — lo que puede desplazar canales en un 5-15%. Trate nuestra CMYK como estimación inicial, no como entregable. El convertidor hex a CMYK de una sola dirección aplica la misma fórmula con la misma advertencia. **OKLCH** es la elección por defecto para código nuevo en 2025 y posteriores — sistemas de diseño modernos, generación de paletas consciente de accesibilidad, cualquier lugar donde importe la uniformidad perceptual. El convertidor hex a OKLCH de una sola dirección existe para migración rápida de paletas heredadas. **OKLAB** es el primo rectangular usado para matemáticas de paletas: puntos medios entre dos colores, cálculos de distancia, matrices de simulación de daltonismo, y otras operaciones que necesitan aritmética de eje lineal. **Los colores con nombre** son para documentación, comentarios de código, mockups y prosa — los 148 colores CSS con nombre son un diccionario fijo, y la herramienta encuentra el color con nombre más cercano para cualquier entrada vía distancia ΔE en OKLAB.

El grafo de conversión en el corazón de todo esto está bien definido y es sorprendentemente limpio. sRGB y linear-sRGB se relacionan por una curva gamma a trozos especificada en W3C CSS Color 4 §11.2 (aproximadamente un exponente 2.4 con un pequeño segmento lineal cerca de cero). Linear-sRGB y CIE XYZ D65 se relacionan por una matriz 3×3 fija de CSS Color 4 §15.1. XYZ D65 y OKLAB se relacionan por dos matrices y un paso de raíz cúbica (la etapa de respuesta de conos LMS, por Ottosson 2020). OKLAB y OKLCH se relacionan por una transformación cartesiana a polar — `C = sqrt(a² + b²); H = atan2(b, a)`. HEX es solo sRGB serializado como `#RRGGBB` en base 16. RGB ↔ HSL, RGB ↔ HSV, RGB ↔ HWB son transformaciones geométricas directas dentro de sRGB, definidas en CSS Color 4 §5-7. CMYK es la fórmula ingenua basada en sRGB de arriba. Toda la canalización es un grafo dirigido enraizado en OKLCH internamente; todos los demás formatos se calculan a partir de él en cada pulsación de tecla.

Más allá de la conversión central, esta herramienta incluye características que la generación heredada no tenía. **Detección de gama Display P3 y Rec2020** — tres insignias señalan si el color actual cae dentro del rango reproducible de cada espacio, con un botón de un clic **Ajustar a sRGB** que usa reducción binaria de chroma (según el algoritmo informativo de CSS Color 4) para reducir el color hasta que quepa. **Insignias duales de contraste WCAG 2 + APCA Lc** — ambas métricas mostradas en una fila para que pueda pasar el estándar regulatorio hoy y comprobar con la métrica perceptual de futuro. **8 simulaciones de daltonismo** — protanopia, deuteranopia y tritanopia vía las matrices de dicromacia de Brettel-Viénot-Mollon 1997; protanomalía, deuteranomalía y tritanomalía vía las matrices de tricromacia anómala de Machado-Oliveira-Fernandes 2009 con severidad 0.66; acromatopsia y acromatomalía parcial vía pesos de luminancia rec601. **Generación de paletas uniformes en OKLCH** — tintes claros, matices oscuros, tonos y armonías construidos escalonando el canal L en incrementos iguales mientras se mantienen C y H fijos (la misma construcción que el generador de paleta por defecto de Tailwind v4). **Fragmentos de código CSS / Tailwind v4 / SwiftUI / Compose / Flutter** — salida lista para pegar para las cinco plataformas a las que apuntan la mayoría de equipos multi-disciplinares. **Integración de la EyeDropper API** en navegadores Chromium (Chrome, Edge, Brave, Opera) para elegir colores en cualquier lugar de la pantalla incluso fuera del navegador. **Estado en el hash de URL** — el color actual se codifica en la URL como `#hex=...` o `#oklch=...` para que pueda compartir un enlace en vivo al color exacto con una copia.

Todo en esta herramienta se ejecuta localmente en su navegador. Sus valores de color nunca se suben, nunca se registran, nunca se analizan, nunca se persisten en un servidor. Cero peticiones de red mientras escribe — abra las DevTools del navegador en la pestaña Red y observe: escribir en cualquier campo no dispara tráfico alguno. Esto hace que la herramienta sea segura para paletas de marca no anunciadas, sistemas de tokens de diseño internos, mockups borrador, y cualquier otro trabajo de color confidencial. Ninguna cookie registra lo que pega; ningún analytics se dispara con los cambios de color. La misma postura se extiende al hash de URL: el fragmento `#hex=...` vive solo en su barra de direcciones y nunca se transmite al servidor (los navegadores no incluyen el fragmento en las peticiones HTTP), así que ni siquiera un enlace compartido filtra el color a ningún tercero más allá del destinatario al que lo envió. Para equipos que manejan trabajo de marca pre-lanzamiento, campañas embargadas o paletas de cliente bajo NDA, esto importa más de lo que el titular de conveniencia sugiere. Para profundizar en por qué OKLCH se convirtió en el estándar de los sistemas de diseño en 2024–2026, consulte nuestra guía complementaria: El espacio de color OKLCH explicado — por qué Tailwind v4 lo adoptó.

// sRGB → linear → XYZ D65 → OKLAB → OKLCH
// References: W3C CSS Color 4 §11-15, Ottosson 2020 (https://bottosson.github.io/posts/oklab/)
// Worked example: #3b82f6 (Tailwind blue-500)

const srgb = [0x3b, 0x82, 0xf6].map(v => v / 255); // [0.231, 0.510, 0.965]

const toLinear = (v) => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
const lin = srgb.map(toLinear); // gamma-decoded linear-sRGB

// linear-sRGB → XYZ D65 (CSS Color 4 §15.1 matrix)
const [lr, lg, lb] = lin;
const x = 0.4124564 * lr + 0.3575761 * lg + 0.1804375 * lb;
const y = 0.2126729 * lr + 0.7151522 * lg + 0.0721750 * lb;
const z = 0.0193339 * lr + 0.1191920 * lg + 0.9503041 * lb;

// XYZ D65 → LMS (Ottosson 2020 matrix), cube-root, → OKLAB
const l_ = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
const m_ = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
const s_ = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.6338517070 * z);
const L = 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_;
const a = 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_;
const b = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_;

// OKLAB → OKLCH (Cartesian to polar)
const C = Math.sqrt(a * a + b * b);
const H = (Math.atan2(b, a) * 180 / Math.PI + 360) % 360;
console.log(`oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`);
// → oklch(0.629 0.193 263.4)

Características principales

9 espacios de color editables simultáneamente

Cada formato — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, y color CSS con nombre — es un campo directamente editable, no un menú desplegable en una sola dirección. Escriba un valor `oklch()` y HEX, RGB, HSL se actualizan; pegue un hex de Figma y OKLCH se actualiza con las coordenadas perceptuales correspondientes. El cursor en el campo que está editando se queda en su sitio — solo los otros ocho campos se vuelven a renderizar en cada pulsación de tecla, así que la edición fluye con naturalidad.

Fuente de verdad OKLCH — viajes de ida y vuelta bit-perfectos

La representación canónica interna es OKLCH, la forma polar perceptualmente uniforme de OKLAB (Ottosson 2020). Todos los demás formatos se derivan de ella en cada pulsación de tecla. Esto significa que HEX → RGB → HSL → OKLAB → HEX hace ida y vuelta sin deriva de coma flotante — el hex original vuelve sin cambios. Los convertidores heredados que enrutan conversiones a través de HSL o sRGB acumulan error de redondeo por paso; esta herramienta no.

Avisos de gama Display P3 + Rec2020

Tres insignias en vivo (sRGB, Display P3, Rec2020) muestran si el color actual cae dentro del rango reproducible de cada espacio. Útil cuando trabaja en OKLCH y quiere saber qué pantallas renderizarán el valor con precisión — muchos colores OKLCH de Tailwind v4 exceden sRGB pero caben en P3, que la mayoría de dispositivos Apple desde 2017 pueden renderizar. El botón Ajustar a sRGB usa el algoritmo de reducción binaria de chroma de CSS Color 4 para reducir el color hasta que quepa.

Contraste WCAG 2 + APCA en una fila

El contraste contra blanco y negro se muestra usando dos métricas lado a lado: la razón WCAG 2.1 (4.5:1 = AA texto del cuerpo, 7:1 = AAA) para cumplimiento regulatorio hoy, y la puntuación APCA Lc (el algoritmo de contraste perceptual de futuro para WCAG 3). APCA es sensible a la polaridad (luz-sobre-oscuro pesa diferente que oscuro-sobre-luz), algo que la fórmula simétrica de WCAG 2 se equivoca. Use ambas: WCAG para auditorías, APCA para legibilidad real.

Simulación de daltonismo en 8 tipos de deficiencia

Vistas previas en vivo para las tres dicromacias (protanopia, deuteranopia, tritanopia) vía matrices Brettel-Viénot-Mollon 1997, las tres tricromacias anómalas (protanomalía, deuteranomalía, tritanomalía) vía matrices Machado-Oliveira-Fernandes 2009 con severidad 0.66, más acromatopsia y acromatomalía vía pesos de luminancia rec601. Cubre aproximadamente el 8% de los hombres y el 0,5% de las mujeres — las poblaciones para las que su diseño necesita seguir siendo accesible.

Tintes claros, matices oscuros, tonos y armonías uniformes en OKLCH

Las rampas de paleta se generan escalonando el canal L en incrementos OKLCH iguales mientras se mantienen chroma y matiz fijos — la misma construcción que usa Tailwind v4. El resultado es perceptualmente uniforme: la distancia visual entre las paradas 400 y 500 se ve idéntica a la distancia entre 500 y 600, algo que una rampa HSL no puede garantizar. Las armonías (complemento, tríada, tétrada, complemento dividido) rotan el matiz en ángulos exactos y preservan L+C.

Copiar como CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Generación de código con un clic para las cinco plataformas a las que envían la mayoría de equipos multi-disciplinares: propiedad personalizada CSS (`--color-brand: oklch(0.629 0.193 263.4)`), token `@theme` de Tailwind v4, literal SwiftUI `Color(red:green:blue:)`, constante Jetpack Compose `Color(0xFF3B82F6)`, Flutter `Color(0xFF3B82F6)`. La sintaxis exacta que espera cada plataforma, lista para pegar en una hoja de estilos de marca, un catálogo de assets de iOS, o un tema de Android.

Selector OKLCH implementado a mano (cero dependencias)

El cuadrado SL + deslizador de matiz + deslizador de alfa están escritos en canvas plano + JavaScript sin biblioteca externa de selector. El gradiente OKLCH del deslizador de matiz se calcula a partir de matemáticas OKLCH reales, no aproximadas con HSL, así que arrastrar el deslizador produce rotación de matiz perceptualmente uniforme. El peso del bundle se mantiene por debajo de 10 KB para toda la capa interactiva; la primera pintura es rápida incluso en cargas en frío.

100% en el navegador — sin subida, sin rastreo

Todas las matemáticas de conversión, generación de paletas, puntuación de contraste y detección de gama se ejecutan localmente en su navegador. Sus valores de color nunca se transmiten, nunca se almacenan en un servidor, nunca se registran, nunca se analizan. Cero peticiones de red mientras escribe — verifique en DevTools. Seguro para paletas de marca no anunciadas, tokens de diseño internos, mockups borrador y cualquier otro trabajo de color confidencial.

Alternativas al convertidor de color comparadas

ColorHexa

herramienta de navegador

Un competidor de larga data con páginas de información profunda por color — genera una página SEO completa por hex con conversiones, paletas, armonías y gradientes. La interfaz está anticuada (estética de principios de los 2010), sin soporte para OKLCH, sin contraste APCA, sin manejo de gama amplia. Fuerte para descubrimiento SEO de un color específico ("#FF5733" como consulta de búsqueda); más débil para trabajo activo de diseño donde la UX de campos unificados importa.

RapidTables

herramienta de navegador

Amplia selección de convertidores de una sola dirección (HEX a RGB, RGB a HEX, HEX a HSL, etc.) más otras herramientas de unidades. Cada conversión es una página separada con un formulario de una sola vía — sin experiencia en vivo de campos unificados. Sin soporte OKLCH, sin avisos de gama, sin comprobación de contraste. Útil para conversiones rápidas puntuales cuando llega desde una búsqueda en Google; esta herramienta es más rápida para cualquier flujo con más de una conversión.

HTMLColorCodes

herramienta de navegador

Selector de color y generador de paletas sólido con una interfaz limpia. La UX del selector es buena para exploración visual. El lado de conversión es básico — solo HEX, RGB, HSL, HSV, CMYK; sin OKLCH, sin OKLAB, sin detección de gama. Lo mejor cuando necesita explorar variaciones de un color visualmente; esta herramienta gana cuando necesita espacios de color modernos o matemáticas de conversión precisas.

OKLCH.com

herramienta de navegador

Herramienta enfocada en OKLCH bellamente construida por Andrey Sitnik (autor del polyfill postcss-oklab-function). La mejor de su clase para exploración específica de OKLCH con un selector consciente de gama amplia y generación de paletas. No cubre la conversión HEX/RGB/HSL/CMYK como salidas primarias — enfocada solo en OKLCH. Recurra a OKLCH.com cuando esté haciendo trabajo de diseño puro de OKLCH; recurra a esta herramienta cuando necesite conversión entre espacios.

ConvertingColors

herramienta de navegador

Cubre muchos espacios de color (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB y varios más) con un modelo de página SEO por color similar a ColorHexa. Carece de soporte OKLCH moderno, sin contraste APCA, sin manejo de gama amplia, y las páginas de contenido auto-generadas se sienten estilo granja de contenido. Bueno para explorar metadatos individuales de color; esta herramienta es más rápida para trabajo activo de diseño y accesibilidad.

IT-Tools

herramienta de navegador de código abierto

Colección Vue 3 limpia y auto-alojable de herramientas de desarrollo, con un convertidor de color entre muchas otras utilidades. La UX es consistente a través de toda la suite. El convertidor de color cubre HEX, RGB, HSL, HSV, CMYK; sin OKLCH, sin avisos de gama, sin comprobación de contraste, sin simulación de daltonismo. Vale la pena ejecutarlo localmente si quiere una colección multi-herramienta auto-alojada; esta herramienta es la opción dedicada y más profunda solo para color.

W3Schools Color Converter

herramienta de navegador

Conmutador básico HEX/RGB/HSL en una página amigable para principiantes, omnipresente en los resultados de búsqueda para consultas de convertidor de color. Sin OKLCH, sin características avanzadas. Útil como referencia de enseñanza junto al contenido explicativo de W3Schools. Esta herramienta gana en todos los demás ejes: más espacios, matemáticas perceptuales, características de gama + contraste + CVD, exportación moderna de código Tailwind v4 / SwiftUI / Compose / Flutter.

Ejemplos de conversión de color

Color de marca de Tailwind v4 → OKLCH

#3b82f6

Salida OKLCH: `oklch(0.629 0.193 263.4)`. Péguelo directamente en un bloque `@theme` de Tailwind v4 como `--color-brand-500: oklch(0.629 0.193 263.4);` y el resto de su rampa se alinea perceptualmente. Tailwind v4 estandarizó OKLCH para su paleta por defecto en 2024 precisamente porque el canal L mantiene la luminosidad perceptual consistente entre matices — green-500 y blue-500 se ven igual de brillantes, algo que las rampas HSL/RGB no pueden garantizar. El hex se conserva textualmente si además necesita un fallback para navegadores antiguos.

Hex web → literal de SwiftUI Color

#FF5733

Salida SwiftUI (en Copiar como código → SwiftUI): `Color(red: 255/255, green: 87/255, blue: 51/255)`. El flujo clásico de iOS / macOS: un diseñador suelta un hex en el panel de marca de Figma, usted lo pega aquí y copia el literal SwiftUI dentro de una `View`. La forma de expresión (con las divisiones `/255` explícitas) es intencionada — sobrevive mejor a una revisión de código que el opaco `Color(red: 1.0, green: 0.341, blue: 0.2)` porque el hex de marca original sigue visible en el código fuente.

Muestra de paleta de diseñador → aproximación CMYK para imprenta

#FF6347

Salida CMYK: aproximadamente `cmyk(0%, 61%, 72%, 0%)`. Esta es una conversión sRGB → CMYK ingenua usando la fórmula estándar `K = 1 − max(R,G,B); C = (1−R−K)/(1−K)` — útil como estimación rápida para un presupuesto de imprenta, pero no sustituye la conversión real. Una imprenta procesará el archivo con un perfil ICC (típicamente US Web Coated SWOP v2 o Fogra39) ajustado al prensado, tinta y papel exactos, lo que puede desplazar canales en un 5-15%. Trate este número como una verificación de cordura, no como un entregable.

Color OKLCH de gama amplia → fallback sRGB

oklch(0.7 0.25 30)

La fila de gama marca inmediatamente este color como **fuera de sRGB** (Display P3 lo cubre, Rec2020 lo cubre). En un monitor estándar se renderiza como una aproximación desaturada; en una pantalla con capacidad P3 (la mayoría de portátiles enviados después de 2017) se renderiza saturado. Haga clic en **Ajustar a sRGB** para reducir el chroma hasta que el color quepa dentro del cubo sRGB, luego copie el hex resultante (alrededor de `#ef6b50`) como fallback. La fuente de verdad OKLCH le permite mantener el valor de gama amplia en su token de diseño y entregar el hex ajustado como el fallback de `@supports not (color: oklch(...))`.

Verificar el contraste WCAG para texto del cuerpo

#767676

Contra blanco (`#ffffff`) la razón de contraste WCAG 2.1 da aproximadamente **4.54:1** — apenas por encima del umbral AA de 4.5:1 para texto del cuerpo normal. Reste un dígito a `#777777` y la razón cae a 4.48:1, que falla AA. El valor APCA Lc aparece junto a él como métrica de futuro (borrador de WCAG 3) — APCA puntúa este par en alrededor de `Lc 60`, ligeramente por debajo del `Lc 75` recomendado por APCA para texto del cuerpo. Use ambos: WCAG para superar auditorías hoy, APCA para asegurarse de que el resultado realmente se lee bien.

Descubrir el color CSS con nombre más cercano a un hex de marca

#FF6347

El campo **Named** devuelve `tomato (exact)` porque la especificación CSS define `tomato` literalmente como `#FF6347` — uno de los 148 colores con nombre que vienen con todos los navegadores. Pruebe con un casi-acierto como `#FF6348` y el campo devuelve `tomato (nearest, ΔE 0.02)`, indicándole el color con nombre más cercano y a qué distancia está usando CIE ΔE (Delta-E en espacio OKLAB). Útil cuando escribe textos o comentarios y desea un nombre de color legible en lugar de un código hex.

Convertir un valor HSL antiguo a OKLCH moderno

hsl(220 70% 50%)

Salida OKLCH: aproximadamente `oklch(0.5 0.187 263)`. El L=50% de HSL **no** es perceptualmente 50% — el azul a L=50% se ve mucho más oscuro que el amarillo a L=50% porque HSL es una reforma cilíndrica de sRGB, no un espacio uniforme. El L=0.5 de OKLCH sí corresponde a la luminancia del gris medio que percibe su ojo. Cuando migra un sistema de diseño HSL a OKLCH, espere que los valores L se desplacen (los azules suben, los amarillos bajan) — eso es el sistema corrigiéndose, no un fallo.

Encontrar una paleta de 5 tintes y 5 matices oscuros de un color de marca

#3b82f6

La sección **Tintes / Matices oscuros / Tonos / Armonías** genera 5 variantes más claras y 5 más oscuras escalonando el canal L de OKLCH en incrementos iguales mientras mantiene C y H fijos. El resultado es una rampa perceptualmente uniforme — la distancia entre `500` y `600` se ve igual que la distancia entre `600` y `700`, que es lo que un sistema de diseño necesita. Haga clic en cualquier muestra para cargarla como color activo, luego copie su hex/OKLCH. Misma construcción que el generador de paleta por defecto de Tailwind v4.

Cómo usar el convertidor de color

  1. 1

    Pegue o escriba cualquier color en cualquier formato

    Cada uno de los 9 campos de formato (HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, Named) es directamente editable — no hay botón "Convertir" que pulsar. Pegue un hex de Figma, escriba un valor `oklch()` de una config de Tailwind, suelte un `hsl()` de una hoja de estilos antigua, o incluso escriba un color CSS con nombre como `tomato`. La herramienta analiza incrementalmente mientras escribe, así que un valor a medio escribir no destruye los demás hasta que confirme un formato válido. La entrada inválida obtiene un error discreto en línea; la entrada válida actualiza toda la cuadrícula.

  2. 2

    Los 9 formatos se actualizan al instante

    La fuente de verdad interna es OKLCH (perceptualmente uniforme, sin límites de gama), y todos los demás formatos se derivan de ella en cada pulsación de tecla. El campo en el que está escribiendo mantiene su posición de cursor intacta — solo los *otros* ocho campos se vuelven a renderizar. Esto significa que puede editar el canal L de OKLCH directamente y ver hex, RGB, HSL y CMYK desplazarse en tiempo real sin perder su cursor. La matemática de conversión se ejecuta enteramente en JavaScript usando las mismas primitivas OKLAB que vienen en los navegadores modernos.

  3. 3

    Use el selector para exploración visual

    Debajo de la cuadrícula de formatos hay un cuadrado de saturación-luminosidad (arrastre en cualquier punto para fijar S+L para el matiz actual), un deslizador de matiz (arrastre para rotar alrededor de la rueda de color), y un deslizador de alfa (arrastre para fijar la transparencia). En navegadores basados en Chromium (Chrome, Edge, Brave) el botón **EyeDropper** activa la API nativa `EyeDropper` — haga clic en cualquier punto de la pantalla, incluso fuera de la ventana del navegador, para muestrear el color de ese píxel. Safari y Firefox aún no incluyen la API, así que el botón se oculta en esos navegadores y el cuadrado SL + deslizador de matiz siguen siendo el selector principal.

  4. 4

    Compruebe gama y contraste de un vistazo

    Tres insignias de gama (**sRGB**, **Display P3**, **Rec2020**) muestran si el color actual cae dentro del rango reproducible de cada espacio — útil cuando trabaja en OKLCH y desea saber qué pantallas renderizarán el valor con precisión. La fila de contraste muestra la razón WCAG 2.1 contra blanco y negro, más la puntuación APCA Lc (métrica de futuro para WCAG 3). Insignias de aprobado / fallido (AA, AAA) aparecen en línea. Si un color está fuera de la gama sRGB, un botón **Ajustar a sRGB** reduce el chroma hasta que quepa.

  5. 5

    Copie en la sintaxis nativa de su plataforma

    Cada uno de los 9 campos de formato tiene su propio botón **Copiar** — un clic, el valor aterriza en su portapapeles, la etiqueta cambia brevemente a "¡Copiado!" para que lo sepa. Debajo del selector la sección **Copiar como código** genera fragmentos listos para pegar para cinco plataformas: propiedad personalizada CSS, token `@theme` de Tailwind v4, literal SwiftUI `Color(red:green:blue:)`, constante Jetpack Compose `Color(0xFF...)`, y Flutter `Color(0xFF...)`. El hash de URL (`#hex=...` o `#oklch=...`) también se actualiza para que pueda compartir un enlace en vivo al color exacto.

Errores comunes en la conversión de color

Confundir HSL con OKLCH

Ambos espacios comparten la misma forma cilíndrica matiz / luminosidad / (saturación o chroma), lo que los hace parecer intercambiables sobre el papel. No lo son. La L de HSL es geométrica — derivada de RGB promediando los valores máximo y mínimo de canal — e incorpora la curva gamma de sRGB. La L de OKLCH es perceptual, anclada al modelo OKLAB. Una rampa HSL con L uniforme se ve visiblemente desigual entre matices; una rampa OKLCH con L uniforme se mantiene uniforme. No sustituya uno por el otro en una migración de sistema de diseño sin re-ajustar.

✗ Incorrecto
Asumir que una paleta HSL es perceptualmente uniforme:
hsl(220 50% 30%) → hsl(220 50% 60%) → hsl(220 50% 90%)
En pantalla se ven con espaciado desigual.
✓ Correcto
Use OKLCH para rampas perceptualmente uniformes:
oklch(0.30 0.10 220) → oklch(0.60 0.10 220) → oklch(0.90 0.10 220)
En pantalla se ven con espaciado uniforme.

Confiar en CMYK ingenuo para imprenta

La salida CMYK aquí viene de la fórmula estándar de manual `K = 1 - max(R,G,B)` aplicada a sRGB. Es un punto de partida útil pero no sustituye la conversión real. Las imprentas procesan archivos a través de un perfil ICC (US Web Coated SWOP v2, Fogra39, Japan Color 2011, etc.) ajustado a la prensa, tinta y papel específicos. El CMYK convertido por ICC puede diferir de la fórmula ingenua en un 5-15% por canal. Envíe el hex sRGB original a la imprenta y deje que ellos hagan la conversión apropiada.

✗ Incorrecto
Enviar nuestra salida CMYK directamente a una prensa:
hex #FF6347 → cmyk(0%, 61%, 72%, 0%)
El resultado impreso puede verse sucio o sobre-saturado.
✓ Correcto
Enviar el hex original al proveedor de imprenta:
hex #FF6347 → dejar que la imprenta haga conversión ICC contra su prensa
El resultado impreso coincide mucho mejor con el color en pantalla.

Leer APCA Lc como un número compatible con WCAG 2

APCA Lc y las razones WCAG 2 son escalas distintas que miden cosas distintas. WCAG 2 da una razón de 1:1 (sin contraste) a 21:1 (contraste máximo), con 4.5:1 como piso legal AA para texto del cuerpo. APCA da Lc de 0 a ±108 con signo indicando polaridad (positivo para texto oscuro sobre fondo claro, negativo para texto claro sobre fondo oscuro). Lc 60 no se mapea a WCAG 4.5:1; la relación es no lineal y dependiente de la dirección. Use ambas métricas, lado a lado, no una como traducción de la otra.

✗ Incorrecto
Fingir que Lc 60 = WCAG 4.5:1:
APCA Lc 60 → "esto pasa AA"
La razón WCAG 2 para el mismo par podría ser 3.8:1 (falla AA).
✓ Correcto
Compruebe ambas métricas independientemente:
razón WCAG 2 ≥ 4.5:1 para cumplimiento AA de texto del cuerpo, Y
APCA |Lc| ≥ 75 para legibilidad real.
Ambas deben pasar, no una sustituyendo a la otra.

Usar HSL para matices oscuros de un sistema de diseño

Generar una rampa 50/100/200/.../900 escalonando el canal L de HSL produce una rampa visualmente desigual porque la L de HSL no es perceptual. Las paradas oscuras se ven demasiado oscuras, las paradas claras se ven demasiado claras, y las paradas del medio se comprimen. Los diseñadores arreglan esto ajustando a mano cada parada, un ejercicio de varias horas por color de marca. OKLCH resuelve el problema por construcción — pasos L iguales se ven iguales — así que la rampa es uniforme al primer intento.

✗ Incorrecto
Escalonar L de HSL para matices oscuros:
hsl(220 50% 30%) / hsl(220 50% 60%) / hsl(220 50% 90%)
90% se ve lavado; 30% se ve mucho más oscuro que la distancia a 60%.
✓ Correcto
Escalonar L de OKLCH para matices oscuros:
oklch(0.30 0.10 220) / oklch(0.60 0.10 220) / oklch(0.90 0.10 220)
Cada paso se ve como la misma distancia visual.

Olvidar el alfa al copiar HEX

El hex de 8 dígitos (`#RRGGBBAA`) y la abreviación de 4 dígitos (`#RGBA`) codifican transparencia alfa en el último par. CSS soporta ambos; los parsers más antiguos (incluyendo algunos preprocesadores CSS heredados y herramientas de diseño pre-2018) solo entienden hex de 6 dígitos y silenciosamente truncan el alfa. El resultado: un color que esperaba que fuera 50% transparente se renderiza totalmente opaco. Verifique siempre que la sintaxis objetivo acepte hex de 8 dígitos antes de copiar valores con alfa; para objetivos heredados, use `rgba()` como fallback.

✗ Incorrecto
Copiar hex de 8 dígitos en un parser heredado:
#FF573380 → el parser trunca → #FF5733 (sin alfa)
La transparencia del 50% se pierde silenciosamente.
✓ Correcto
Verifique que el objetivo soporte hex de 8 dígitos, o use rgba():
para CSS moderno: #FF573380 (hex de 8 dígitos)
para soporte heredado: rgba(255, 87, 51, 0.5) (siempre soportado)
La sintaxis alfa explícita evita el truncamiento silencioso.

Ajustar a sRGB sin considerar Display P3

Ajustar a sRGB es una red de seguridad útil para contextos heredados, pero aplicarlo indiscriminadamente derrota la pantalla de gama amplia para la que puede estar diseñando. La mayoría de dispositivos Apple desde 2017 en adelante renderizan Display P3 de forma nativa; muchos dispositivos Android modernos y pantallas de portátiles también. Un color OKLCH de gama amplia que excede sRGB pero cabe en P3 se ve dramáticamente más saturado en hardware P3 que la aproximación sRGB ajustada. Compruebe primero la insignia de gama P3; solo ajuste cuando apunte a contextos heredados solo sRGB.

✗ Incorrecto
Ajustar cada color OKLCH a sRGB por defecto:
oklch(0.7 0.25 30) → ajustar → oklch(0.7 0.18 30)
Las pantallas P3 pierden 30%+ de saturación sin razón.
✓ Correcto
Compruebe primero la insignia Display P3:
si cabe-en-P3: mantenga el valor de gama amplia, añada fallback sRGB vía @supports
si excede P3: entonces ajuste a sRGB
Deje que el hardware de gama amplia haga su trabajo.

Quién usa esta herramienta

Desarrolladores frontend migrando a tokens OKLCH de Tailwind v4
Tailwind v4 estandarizó OKLCH para su paleta por defecto en 2024. Migrar un sistema de diseño antiguo basado en HSL o hex significa convertir cientos de colores de marca a OKLCH. Pegue cada hex, copie la salida OKLCH, suéltelo en el bloque `@theme`. Las insignias de gama en vivo señalan cualquier color que exceda sRGB para que pueda decidir si mantener el valor de gama más amplia para pantallas Display P3.
Diseñadores traduciendo colores de Figma a iOS / Android
Figma exporta hex por defecto, pero iOS quiere literales SwiftUI `Color(red:green:blue:)` y Android quiere constantes Jetpack Compose `Color(0xFF...)`. Pegue el hex de Figma una vez, copie el fragmento SwiftUI para el ingeniero de iOS y el fragmento Compose para el ingeniero de Android — ambos ya en la sintaxis exacta que espera cada plataforma, con el hex original preservado en un comentario para trazabilidad.
Diseñadores preparando pruebas de imprenta (aproximación CMYK)
Cuando un color de marca tiene que aparecer en una tarjeta de visita impresa, la aproximación CMYK da una estimación rápida para compartir con la imprenta antes de la conversión ICC propia. Pegue el hex de marca, copie los porcentajes CMYK, envíelos a la imprenta para una cotización rápida — luego deje en manos de la conversión ICC-aware de la imprenta la coincidencia de color final contra la prensa específica.
Ingenieros de accesibilidad verificando WCAG y APCA
WCAG 2.1 es el estándar regulatorio (ADA, EAA, Sección 508) hoy; APCA Lc es el sucesor propuesto para WCAG 3. Ambas métricas mostradas lado a lado significa que un diseñador puede verificar que un color de texto del cuerpo alcance 4.5:1 WCAG contra blanco, luego comprobar que también supera APCA Lc 75, en una sola pantalla — sin rebotar entre dos calculadoras separadas.
Educadores enseñando conceptos de espacio de color
La vista simultánea de nueve campos hace visibles las relaciones entre espacios de color. Escriba un valor OKLCH, observe cómo HSL se desplaza porque L significa cosas distintas en cada espacio. Arrastre el deslizador de matiz y vea hex, RGB y CMYK actualizarse todos. Muestre las insignias de gama poniéndose en rojo cuando empuja el chroma más allá de sRGB. La herramienta es su propio demo de aula para un curso universitario de gráficos o HCI.
Brand managers encontrando el color CSS con nombre más cercano
Cuando el copy de marketing dice "un acento color tomate" pero el hex de marca real es `#FF6347`, el campo Named devuelve `tomato (exact)` porque eso es literalmente a lo que se resuelve `tomato` en la especificación CSS. Para hexes casi-acertados, el campo devuelve el color con nombre más cercano con la distancia ΔE en OKLAB — útil para documentación, prosa y nombrado casual de colores.
Desarrolladores web convirtiendo paletas HEX heredadas a OKLCH
Un sitio más antiguo puede tener una paleta de marca de 50 colores definida en propiedades personalizadas CSS como códigos hex. Modernizar a OKLCH permite al equipo de marca expresar las mismas rampas en un espacio perceptualmente uniforme. Pegue cada hex, copie la salida OKLCH, intercámbielo en las definiciones de variable. El panel de Tintes claros / Matices oscuros debajo verifica que la rampa resultante sea visualmente uniforme antes de enviarla.
Mantenedores de código abierto documentando tokens de diseño
La documentación de tokens de diseño usualmente necesita mostrar el mismo color en múltiples sintaxis — hex para el bloque de código CSS, OKLCH para la tabla de especificación, el color con nombre para menciones en prosa. La vista de campos simultáneos permite a un mantenedor copiar cada uno en una sola pasada en lugar de volver a ejecutar tres conversiones separadas. El hash de URL compartible también permite a los colaboradores enlazar al color exacto en discusión en una issue de GitHub.

Matemáticas y algoritmos de conversión de color

OKLCH como fuente de verdad interna
La herramienta mantiene el valor de color canónico como un triple OKLCH internamente. Cada campo editable deriva su valor de visualización de ese triple en cada pulsación de tecla; cada edición del usuario actualiza primero el triple, luego dispara el re-renderizado de los otros ocho campos. Esto elimina la deriva de coma flotante por paso que afecta a los convertidores que enrutan a través de HSL o sRGB como su pivote. La elección de OKLCH sobre OKLAB es deliberada — la forma polar preserva el matiz como un eje estable, así que arrastrar el deslizador de matiz no cruza accidentalmente por gris. Según el artículo de Björn Ottosson de 2020, la uniformidad perceptual de OKLAB es el argumento más fuerte para tratarlo como la lingua franca de las matemáticas de color modernas.
Fuentes de las matrices (W3C CSS Color 4 + Ottosson 2020)
Cada matriz de conversión en el código está citada a su fuente primaria. La función de gamma a trozos sRGB ↔ linear-sRGB es W3C CSS Color 4 §11.2 (`v <= 0.04045 ? v/12.92 : ((v+0.055)/1.055)^2.4`). La matriz 3×3 linear-sRGB ↔ CIE XYZ D65 es CSS Color 4 §15.1. La matriz XYZ D65 ↔ LMS y el paso de raíz cúbica de OKLAB son de la implementación de referencia de Ottosson en `https://bottosson.github.io/posts/oklab/`, exactamente como se publicaron. Ninguna matriz se recomputa o se re-deriva — copiarlas verbatim mantiene la salida idéntica a los vectores de referencia de la especificación.
Fórmula CMYK ingenua y la advertencia ICC
Nuestra salida CMYK usa la fórmula estándar de manual: `K = 1 - max(R, G, B); C = (1-R-K)/(1-K); M = (1-G-K)/(1-K); Y = (1-B-K)/(1-K)` operando sobre valores sRGB normalizados. Esta es una aproximación deliberada. La precisión real en imprenta requiere una conversión con perfil ICC contra la prensa, tinta (p. ej., US Web Coated SWOP v2, Fogra39, Japan Color 2011) y papel específicos, lo que puede desplazar canales en un 5-15%. Mostramos el campo CMYK con una advertencia visible para que los usuarios no envíen nuestros valores directamente a una prensa. Trate la salida como una verificación de cordura para cotizaciones, no como un entregable.
Detección de gama vía comprobación de rango de canal
Un color se considera dentro de la gama de un espacio objetivo (sRGB, Display P3, Rec2020) si cada canal cae dentro de `[-ε, 1 + ε]` después de la conversión a las primarias de ese espacio, donde `ε = 1e-7` absorbe el ruido de precisión de coma flotante alrededor de los límites. La insignia de gama para cada espacio se pone en rojo cuando cualquier canal excede el rango. Esto captura el caso común — un color OKLCH de gama amplia como `oklch(0.7 0.4 30)` reporta fuera-de-sRGB pero dentro-de-P3, indicándole qué pantallas lo renderizarán con precisión. La comprobación se ejecuta en cada pulsación de tecla.
Algoritmo de ajuste por reducción de chroma
Ajustar a sRGB usa búsqueda binaria en el eje chroma: mantiene L y H fijos en los valores actuales, busca C ∈ [0, chromaActual] el mayor C cuya conversión sRGB se mantenga dentro de gama. La búsqueda corre como mucho 30 iteraciones (precisión ~10⁻⁹), más que suficiente para precisión visual. Esto coincide con el algoritmo informativo de mapeo de gama descrito en CSS Color 4 §13 — preservar luminosidad y matiz mientras se reduce solo el chroma mantiene el color ajustado reconociblemente en la misma familia de matiz. No recortamos canales RGB directamente porque eso distorsiona el matiz notoriamente (especialmente en azules).
Matrices CVD de Brettel + Machado
La simulación de daltonismo usa dos familias de matrices publicadas. Las tres dicromacias — protanopia, deuteranopia, tritanopia — usan matrices Brettel-Viénot-Mollon 1997 operando en linear-RGB (descodificar gamma primero, aplicar matriz, recodificar gamma). Las tres tricromacias anómalas — protanomalía, deuteranomalía, tritanomalía — usan matrices Machado-Oliveira-Fernandes 2009 con severidad 0.66, que corresponde a un paciente típico de tricromacia anómala. La acromatopsia y la acromatomalía parcial usan pesos de luminancia rec601 (`0.299R + 0.587G + 0.114B`) para una proyección a escala de grises. Las ocho simulaciones se renderizan en cada cambio de color.
WCAG 2 vs APCA: cuál usar y cuándo
WCAG 2.x (estándar actual) computa una razón de contraste simétrica a partir de la luminancia relativa: `(L1 + 0.05) / (L2 + 0.05)`, objetivo 4.5:1 para texto del cuerpo normal y 7:1 para AAA. Es el piso legal de cumplimiento para auditorías de accesibilidad en 2026. APCA (Accessible Perceptual Contrast Algorithm) es el sucesor propuesto para WCAG 3 — sensible a polaridad (luz-sobre-oscuro puntúa diferente de oscuro-sobre-luz), mejor correlacionado con la legibilidad percibida por humanos, objetivo `|Lc| ≥ 75` para texto del cuerpo. Ambas métricas mostradas en una sola fila permite a un diseñador alcanzar WCAG 2 para cumplimiento y APCA para legibilidad real sin rebotar entre dos calculadoras separadas.

Buenas prácticas para la conversión de color

Prefiera OKLCH para tokens de sistema de diseño; HEX para legado
Para cualquier sistema de diseño nuevo que se envíe en 2025 o posteriores, defina los colores de marca y las rampas de paleta en OKLCH. El eje L da rampas perceptualmente uniformes automáticamente; el eje chroma puede direccionar colores de gama amplia que hex no puede codificar. Mantenga un fallback hex para navegadores antiguos vía `@supports not (color: oklch(0 0 0))` o PostCSS en tiempo de compilación, pero haga de OKLCH el valor canónico en su almacén de tokens. Los sistemas heredados con miles de variables hex existentes pueden quedarse en hex hasta una migración planificada — no haga churn por sí mismo.
Trate la salida CMYK como aproximación; confirme con el proveedor de imprenta
Los números CMYK que esta herramienta muestra son una fórmula ingenua basada en sRGB, no una conversión con perfil ICC. Úselos para cotizaciones aproximadas y comps internos. Antes de cualquier tirada de imprenta real, envíe el hex original (no la aproximación CMYK) al proveedor de imprenta y deje que ellos hagan su propia conversión ICC contra la prensa, tinta y papel específicos. El desplazamiento del 5-15% por canal de una conversión apropiada puede fácilmente convertir un rojo nítido en un naranja sucio si la aproximación se envía directamente.
Use APCA Lc para accesibilidad de futuro
WCAG 2.x seguirá siendo el piso regulatorio durante varios años más, pero APCA es la dirección hacia donde se mueve el estándar. Para nuevos diseños, alcance `|Lc| ≥ 75` para texto del cuerpo y `|Lc| ≥ 60` para texto grande junto con los pisos de WCAG 2.1. APCA atrapa problemas de legibilidad que la razón simétrica de WCAG 2 pasa por alto — particularmente texto de trazo fino sobre fondos brillantes, donde la razón WCAG se ve bien pero el texto realmente desaparece a distancia de lectura normal.
Pase los colores de gama amplia por la comprobación de gama Display P3
Si está apuntando a hardware Apple moderno (iPhone, iPad, MacBook desde 2017+) o enviando contenido HDR-aware, defina los colores de marca en OKLCH y use la insignia Display P3 para verificar que caben en P3 incluso si exceden sRGB. Los colores de gama más amplia se ven notablemente más saturados en pantallas P3 y degradan elegantemente vía compresión de chroma aplicada por el navegador en pantallas solo sRGB. No pre-ajuste a sRGB a menos que sepa que toda su audiencia está en pantallas heredadas.
Elija matices oscuros perceptualmente uniformes vía tonos OKLCH
Al generar una rampa 50/100/200/.../900 para un color de marca, use el panel de Tonos: escalona L en incrementos iguales mientras mantiene C y H fijos. El resultado es una rampa perceptualmente uniforme donde la distancia visual entre 400 y 500 se ve idéntica a la distancia entre 500 y 600. Ajustar a mano rampas HSL para la misma uniformidad es un ejercicio de varias horas por color; OKLCH lo da gratis.
Use el cuentagotas con moderación para casar colores entre pestañas
La EyeDropper API (solo Chromium hasta 2026) le permite hacer clic en cualquier punto de la pantalla — incluso fuera del navegador — para muestrear el color de ese píxel. Útil para casar un color de una captura de pantalla, un fotograma de vídeo, o la UI de otra app. Trate el resultado como punto de partida, no como el valor final — el renderizado en pantalla aplica gestión de color que puede diferir del archivo fuente. Para colores de marca canónicos, obtenga siempre el hex de la fuente de diseño (Figma, Sketch, el PDF de directrices de marca) en lugar de usar el cuentagotas sobre una captura.
Marque URLs con `#hex=...` para decisiones de paleta compartibles
El color actual se codifica automáticamente en el hash de URL como `#hex=...` o `#oklch=...`. Copie la URL, péguela en un hilo de Slack o en una issue de GitHub, y cualquiera que la abra aterriza en exactamente el mismo color. Útil para hilos de revisión de diseño donde "el azul de marca" necesita significar un triple OKLCH específico. El hash se actualiza con cada cambio, así que la URL en su barra de direcciones siempre es el color actual en vivo — márquela para volver a una paleta específica más tarde.

Preguntas frecuentes

¿Cómo convierto un código hex a RGB?
Divida el hex de 6 dígitos en tres pares de 2 dígitos, luego lea cada par como un número en base 16 de 0-255. `#FF5733` se vuelve R=`FF`=255, G=`57`=87, B=`33`=51, dando `rgb(255, 87, 51)`. La abreviación de 3 dígitos (`#F73`) se expande duplicando cada dígito: `#F73` → `#FF7733`. Esta herramienta hace la conversión en vivo mientras escribe — pegue cualquier hex (con o sin el `#`, de 3 o 6 dígitos, de 4 u 8 dígitos con alfa) y el campo RGB se actualiza al instante.
¿Es hex lo mismo que RGB?
Codifican la misma información en notación diferente. Ambos describen un color como tres canales (rojo, verde, azul) en la escala 0-255, anclados al espacio de color sRGB. Hex empaqueta los tres canales en una cadena de 6 caracteres en base 16 (`#FF5733`); la función `rgb()` los deletrea en decimal (`rgb(255, 87, 51)`). Hacen ida y vuelta sin pérdida. Las diferencias son prácticas: hex es más corto y cabe cómodamente en una variable CSS, `rgb()` acepta un canal alfa separado vía `rgba()` y soporta la sintaxis de porcentaje de CSS Color 4.
¿Cómo se lee un código de color hex?
Un color hex tiene 6 dígitos hexadecimales después del `#`, agrupados como **RR GG BB**. Cada par codifica un canal de `00` (ninguno) a `FF` (lleno, 255 en decimal). `#FF0000` es rojo puro, `#00FF00` es verde puro, `#0000FF` es azul puro. Un hex de 8 dígitos (`#FF5733CC`) añade un par alfa al final — `CC` = 204/255 ≈ 80% de opacidad. La abreviación de 3 dígitos (`#F73`) expande cada dígito duplicándolo: `#F73` es idéntico a `#FF7733`.
¿Cuál es la fórmula de hex a RGB?
Para cada par hex de 2 dígitos, multiplique el primer dígito por 16 y sume el segundo: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. En JavaScript: `parseInt('FF', 16)` devuelve 255. En CSS la dirección inversa está integrada en el parser — `rgb(255 87 51)` y `#FF5733` son intercambiables en cualquier lugar donde se acepte un ``. No hay pérdida por redondeo: 16² = 256, coincidiendo exactamente con el rango de bytes 0-255 que ocupa cada canal.
¿Por qué usar hex en lugar de RGB?
Tres razones: es más corto (`#FF5733` vs `rgb(255, 87, 51)`), es el formato que cada herramienta de diseño (Figma, Sketch, Photoshop) exporta por defecto, y es el formato que su ojo aprende a reconocer con el tiempo — la mayoría de desarrolladores front-end pueden identificar `#3b82f6` como el blue-500 de Tailwind a simple vista. Use `rgb()` (o la moderna sintaxis con espacios `rgb(R G B / A)` de CSS Color 4) cuando necesite alfa, cuando esté calculando un color desde JavaScript, o cuando quiera la sintaxis de porcentaje explícita por legibilidad.
¿Pueden los códigos hex tener alfa / transparencia?
Sí — use hex de 8 dígitos (`#RRGGBBAA`) o abreviación de 4 dígitos (`#RGBA`). El par alfa sigue la misma escala 0-`FF`: `#FF573300` es totalmente transparente, `#FF5733FF` es totalmente opaco, `#FF573380` es aproximadamente 50%. El hex CSS de 4 dígitos con alfa llegó a todos los navegadores evergreen en 2018. Safari, Chrome, Firefox y Edge todos lo soportan. Si necesita apuntar a navegadores muy antiguos, use `rgba()` como fallback, soportado desde IE 9.
¿Cuántos colores puede representar hex?
Hex de 6 dígitos representa exactamente **16 777 216** colores — 256 valores por canal al cubo (256³). Con hex de 8 dígitos incluyendo alfa, el espacio direccionable es 256⁴ ≈ 4300 millones, pero el contenido de color sigue siendo 16,7 M; la dimensión extra es opacidad. El ojo humano puede distinguir alrededor de 10 millones de colores, por lo que sRGB de 24 bits se ha llamado "truecolor" desde los años 90. Las pantallas modernas de gama amplia (Display P3, Rec2020) cubren más del espectro visible, pero el hex en sí está limitado a sRGB — use OKLCH o `color(display-p3 ...)` para direccionar valores de gama amplia.
¿Qué es el color OKLCH?
OKLCH es un espacio de color perceptualmente uniforme derivado de OKLAB convirtiendo los ejes a/b de chroma a coordenadas polares. Los canales son **luminosidad perceptual** (0-1), **chroma** (0 hasta aproximadamente 0.4 dependiendo del matiz), **matiz** (0-360°). A diferencia de HSL, valores L iguales se ven igual de brillantes entre todos los matices, por lo que las rampas de color de un sistema de diseño se mantienen perceptualmente consistentes. CSS Color 4 añadió la función `oklch()` en 2022; Chrome 111, Safari 15.4 y Firefox 113 todos tienen soporte nativo. Tailwind v4 y shadcn usan OKLCH para sus paletas por defecto.
¿Es OKLCH mejor que HSL?
Para sistemas de diseño, sí — y la diferencia es medible. La L (lightness) de HSL es geométrica, no perceptual: `hsl(60, 100%, 50%)` (amarillo) se ve visiblemente más brillante que `hsl(240, 100%, 50%)` (azul) aunque ambos reportan L=50%. La L de OKLCH está anclada al modelo perceptual OKLAB de Björn Ottosson (2020), por lo que L iguales significan brillo percibido igual. La consecuencia práctica: una rampa OKLCH produce pasos visualmente uniformes automáticamente; una rampa HSL requiere ajuste manual de luminosidad por matiz para verse bien.
¿Qué navegadores soportan oklch()?
Todos los navegadores evergreen desde mediados de 2023: **Chrome/Edge 111** (marzo 2023), **Safari 15.4** (marzo 2022, el más temprano), **Firefox 113** (mayo 2023). La cobertura combinada en caniuse supera el 94%. Para la cola larga de IE 11 / Safari antiguo, use la consulta `@supports (color: oklch(0 0 0))` para proporcionar un fallback hex, o utilice una herramienta en tiempo de compilación como `postcss-oklab-function` de PostCSS para insertar una aproximación sRGB junto al valor OKLCH.
¿Por qué usar OKLCH en Tailwind v4?
Tailwind v4 movió su paleta por defecto de generación basada en HSL a basada en OKLCH porque OKLCH da rampas perceptualmente uniformes automáticamente. Las muestras `blue-500` y `red-500` ahora se ven realmente igual de brillantes — bajo el sistema HSL de v3 no lo hacían, lo que forzaba a los diseñadores a ajustar manualmente los pasos individuales. OKLCH también desbloquea gamas más amplias en pantallas modernas: un token de Tailwind v4 como `oklch(0.65 0.25 30)` puede direccionar rojos de Display P3 a los que ningún código hex puede llegar. La compilación sigue emitiendo fallbacks hex para navegadores antiguos.
¿Es OKLCH perceptualmente uniforme?
Sí — ese es todo el sentido. OKLCH hereda la uniformidad perceptual de OKLAB, el espacio de color de Björn Ottosson de 2020 diseñado específicamente para corregir las no-uniformidades de CIELAB (el mejor espacio perceptualmente uniforme anterior). Un paso fijo en el canal L corresponde a un paso fijo de brillo percibido. Un paso fijo en C corresponde a un paso fijo de chroma percibido. Por eso las rampas OKLCH se ven suaves — las matemáticas coinciden con la visión humana. Las aproximaciones de CIELAB se rompen alrededor de colores muy saturados; OKLAB/OKLCH se mantienen precisos a través de toda la gama cromática.
¿Cómo se lee un valor OKLCH?
`oklch(L C H)` — tres números, opcionalmente con `/ A` para alfa. **L** es luminosidad perceptual de 0 (negro) a 1 (blanco); escrita como número o porcentaje (`0.6` y `60%` son equivalentes). **C** es chroma de 0 (gris) hasta aproximadamente 0.4 para los colores sRGB más saturados; no hay límite superior, los colores de gama amplia pueden excederlo. **H** es matiz en grados de 0-360, igual que HSL (0/360 = rojo, 120 = verde, 240 = azul). Ejemplo: `oklch(0.629 0.193 263.4)` es el blue-500 de Tailwind.
¿Cuál es la diferencia entre gama cromática y espacio de color?
Un **espacio de color** es un sistema de coordenadas que da a cada color una dirección única — sRGB, Display P3, Rec2020, OKLCH son todos espacios de color. Una **gama cromática** es el subconjunto de colores visibles que un espacio (o dispositivo) particular puede reproducir realmente. sRGB y Display P3 usan sistemas de coordenadas similares pero P3 cubre ~50% más del espectro visible. OKLCH no tiene límites — su sistema de coordenadas puede direccionar cualquier color, pero si su pantalla puede mostrarlo depende de la gama cromática de la pantalla. Las insignias de gama en esta herramienta le dicen qué familias de dispositivos renderizarán el color con precisión.
¿Por qué mi color OKLCH está fuera de la gama sRGB?
OKLCH no tiene límites de gama — puede escribir `oklch(0.7 0.4 30)` y es un color válido, pero su chroma excede lo que el espacio de bytes de 256 por canal de sRGB puede codificar. En un monitor sRGB ese color se recorta a la aproximación dentro de gama más cercana (generalmente una versión desaturada). En un monitor Display P3 (la mayoría de portátiles modernos, iPhones, MacBooks) se renderiza correctamente. Haga clic en **Ajustar a sRGB** para reducir el chroma hasta que el color quepa, luego entregue el hex ajustado como fallback junto con el OKLCH original para pantallas de gama amplia.
¿Debería usar WCAG 2 o APCA para el contraste?
Use **WCAG 2.1** hoy — es el estándar regulatorio (ADA, EAA, Sección 508) y lo que comprueban las herramientas de auditoría. La proporción 4.5:1 para texto del cuerpo y 3:1 para texto grande son los pisos legales. **APCA** (Accessible Perceptual Contrast Algorithm) es el sucesor propuesto para WCAG 3, diseñado para coincidir mejor con la percepción — pesa la luz-sobre-oscuro de forma distinta a oscuro-sobre-luz, algo que la fórmula simétrica de WCAG 2 se equivoca. APCA todavía es borrador. Buena práctica: pase WCAG 2 para satisfacer el cumplimiento, luego compruebe con APCA (objetivo `Lc 75`+ para texto del cuerpo) para asegurarse de que el resultado realmente se lee bien.
¿Cuál es la diferencia entre HSV y HWB?
Ambos son reformas cilíndricas de RGB que comparten el mismo canal de matiz. **HSV** (Hue, Saturation, Value) fue publicado por Smith en 1978 — Saturation es la colorfulness, Value es el brillo. El rojo puro es `hsv(0, 100%, 100%)`. **HWB** (Hue, Whiteness, Blackness) fue publicado de nuevo por Smith en 1996 como una alternativa más intuitiva para artistas — eliges un matiz puro, luego añades blanco para aclarar o negro para oscurecer. CSS Color 4 añadió la sintaxis `hwb()`; está disponible en todos los navegadores evergreen. HWB es más fácil de enseñar ("añadir blanco") pero HSV sigue siendo más común en software gráfico como Photoshop y Figma.

Herramientas relacionadas

Ver todas las herramientas →