Lo que un escáner lee de verdad es el contraste — diseña pensando en eso y casi cualquier paleta de marca sobrevive.
Un escáner no ve rojo ni azul. Reduce la imagen a escala de grises y busca una diferencia de claro-oscuro entre los módulos y el fondo. Cualquier par de colores funciona si la distancia de luminancia es suficiente, y cualquier par falla si no lo es — incluidos pares que a tu ojo le parecen radicalmente distintos.
La medida útil es la relación de contraste, la misma que se usa en accesibilidad web. Negro sobre blanco es 21:1. Para impresión, busca 7:1 o mejor y trata todo lo que baje de 4:1 como un código que fallará en algún sitio: una sala con poca luz, una cámara barata, una etiqueta desgastada, un teléfono inclinado.
Dos colores pueden ser muy distintos en tono y casi idénticos en brillo. El tono es lo que ves tú; el brillo es lo que ve el escáner.
Módulos oscuros sobre fondo claro es lo que espera cualquier decodificador. Es lo que describe la especificación y lo que dan por hecho los escáneres de hardware, los teléfonos antiguos y los lectores integrados en apps antes de intentar nada más ingenioso.
Los códigos invertidos — módulos claros sobre fondo oscuro — sí funcionan en muchos teléfonos modernos. La cámara de iOS y Google Lens suelen resolverlos. Pero muchos escáneres dentro de apps, bastantes teléfonos Android antiguos y casi todos los lectores láser o de imagen no invierten, así que un código invertido te hace perder en silencio una parte de tu público, sin mensaje de error y sin forma de enterarte.
Si el diseño necesita de verdad una superficie oscura, no inviertas. Imprime una placa clara detrás del código — un panel blanco o crema con toda la zona de silencio dentro — y deja los módulos oscuros. Parece intencionado y se escanea en todas partes.
Las relaciones de contraste siguientes son aproximadas y están calculadas al modo WCAG, color del código frente a color de fondo. Todo lo que está en la banda segura conserva margen para la mala luz y las cámaras baratas.
| Código sobre fondo | Contraste aprox. | Veredicto |
|---|---|---|
| Negro sobre blanco | 21:1 | Seguro — la referencia |
| Casi negro #111827 sobre blanco | 17:1 | Seguro, y más suave que el negro puro |
| Azul marino #0B1F3B sobre blanco | 16:1 | Seguro |
| Verde oscuro #14532D sobre blanco | 9:1 | Seguro |
| Código oscuro sobre crema claro #FAF5EC | 15:1+ | Seguro — los fondos cálidos van bien |
| Verde azulado #0F766E sobre blanco | 5,5:1 | Al límite — usable en impresión, pruébalo |
| Gris medio #808080 sobre blanco | 4:1 | Arriesgado — falla con poca luz |
| Naranja #F97316 sobre blanco | 2,8:1 | Falla |
| Rojo oscuro #8B0000 sobre negro | 2,1:1 | Falla |
| Azul pastel #A7D8F0 sobre blanco | 1,5:1 | Falla |
| Amarillo #FFD700 sobre blanco | 1,4:1 | Falla estrepitosamente |
| Blanco sobre casi negro #111827 | 17:1 | Mucho contraste pero invertido — evítalo en impresión |
El rojo aporta muy poca luminancia para lo llamativo que resulta. El rojo puro sobre negro mide alrededor de 5:1 sobre el papel, pero se derrumba en la práctica, porque el canal rojo de la cámara es el más ruidoso y la luz cálida de interiores desplaza aún más el balance de blancos en su contra. El rojo oscuro sobre negro se queda cerca de 2:1 y sencillamente no se decodifica.
La misma trampa atrapa al amarillo y al naranja por el otro extremo. Al ojo le parecen brillantes, así que se combinan con blanco, donde la distancia de luminancia es casi nula. El amarillo sobre blanco ronda 1,4:1 — un código que tú ves perfectamente y que un escáner no puede leer en absoluto.
Los tres cuadrados grandes de las esquinas son los patrones de localización, y en todos los códigos salvo los más pequeños hay además un cuadrado de alineación cerca de la esquina inferior derecha. El escáner los usa para localizar el código, deducir su orientación y corregir el ángulo antes de leer un solo módulo de datos.
Tienen que seguir siendo la parte más oscura y con más contraste de la imagen. Teñirlos con un color de acento más claro, rellenarlos con un degradado, perfilarlos con un trazo fino o dejar que un logo o una fotografía los tape son formas infalibles de crear un código que se ve genial y se escanea a ratos.
Cambiar su forma es otra cosa y no hay problema. Unos patrones de localización redondeados o circulares conservan la misma relación claro-oscuro y solo cambian el contorno; por eso existen las opciones de estilo. Lo que hay que evitar es alterar su contraste.
Un degradado sobre los módulos solo es seguro si cada parada supera tu mínimo de contraste frente al fondo. Un degradado que va de azul marino profundo a azul cielo pálido se escaneará en un extremo del código y fallará en el otro, algo peor que fallar del todo, porque supera tu primera prueba.
Casi todas las paletas tienen algo lo bastante oscuro para funcionar. Coge el color más oscuro de la marca, compruébalo contra blanco y, si supera 7:1, puedes construir todo el código con él y seguir siendo fiel a la marca.
Si el color de marca es claro o de tono medio, gástalo en algo que no sean los módulos: como fondo detrás de un código casi negro, como marco o panel alrededor, como texto de llamada a la acción debajo o como logo en el centro. El código en sí se queda oscuro y todo lo que lo rodea lleva la marca.
Un logo central añade su propia limitación. Mantenlo por debajo de un 20 a 25 por ciento del área del código y sube la corrección de errores a Q (unos 25 por ciento de recuperación) o H (alrededor del 30 por ciento) para que los módulos tapados se puedan reconstruir.
Tres comprobaciones detectan casi todo, y todas juntas llevan menos tiempo que una reimpresión.
Los colores cambian entre la pantalla y la imprenta. Un azul marino RGB que mide 16:1 en tu monitor puede imprimirse bastante más claro en CMYK sobre papel sin estucar, así que la prueba en papel es la que cuenta.
Gratis, sin registro y tu código nunca caduca.
¿Ya tienes tu código? ☕ Invítame a un café — así esta herramienta sigue siendo gratis para todos.