Proceso
Un proceso en tres fases que avanzan en orden: qué se quiere y con qué método, UX y diseño en Figma, y desarrollo con Claude Code. No se escribió código hasta tener cerradas las dos primeras. Cada paso sigue el mismo ciclo: medir con un script, proponer, decidir y registrar la decisión con fecha; en desarrollo, encargo a Claude Code, pruebas, build y lint, revisores de código, accesibilidad y seguridad, y pull request.
- Medir antes de decidir
- Sin código hasta cerrar el diseño
- Decisiones documentadas
- Revisión en cada encargo
- Diseñadores de sistemas de diseño que crean las escalas de color de una marca y las llevan a variables de Figma
- Diseñadores UI/UX que necesitan saber qué pasos de una paleta cumplen el contraste WCAG con texto sobre blanco o negro
- Desarrolladores front-end que trabajan con Tailwind CSS 4 o variables CSS y quieren paletas propias con los nombres de su sistema
El flujo más crítico era leer el resultado: ver, al escribir un color, qué pasos se pueden usar para texto. Ahí la app podía perder al usuario, porque el método no es el habitual. El nombre del paso es su nivel de contraste, la marca cae en el paso de contraste más cercano y no se puede mover, y ese paso conserva su propio contraste. La solución fue que el resultado lo dijera sin abrir ninguna tabla. Todo se calcula al momento, sin botón, con los ajustes al lado en escritorio. Encima de las tiras, una frase da la regla para el número de pasos elegido, por ejemplo texto sobre blanco del 700 en adelante. Dos filas, White AA y Black AA, la marcan paso a paso en todas las escalas. Un ✓ señala el color de marca, con su contraste aparte. En móvil, donde esas filas no caben, el nombre de cada paso va dentro de su muestra, en negro o en blanco, el que cumpla AA. El usuario sabe qué puede usar antes de exportar.
La primera alternativa fue seguir las curvas de Tailwind CSS tal cual, como la herramienta del curso: la luminosidad de cada paso venía de la paleta y la marca caía en el paso más parecido. La descarté al comprobar qué es lo actual en escalas para sistemas de diseño: el criterio ya no es solo trabajar en OKLCH, sino que el número del paso signifique lo mismo en todas las paletas. Con las curvas de Tailwind, el 500 iba de 1,88 a 4,22 de contraste con blanco según el color. La segunda alternativa fue dejar que el usuario eligiera en qué paso cae su color, como hacen Scale y ColorScale. La descarté porque, con el nuevo método, el nombre del paso es su contraste: mover la marca rompía la promesa. La tercera fue exportar a Figma en OKLCH. La descarté al probarla: Figma no importó esas variables, y en sRGB con hex sí importó las 44. La solución fue que cada paso sea un nivel de contraste, igual en la marca, los neutros y las paletas semánticas, aceptando el coste: los colores muy saturados pierden más croma al ajustarse a sRGB, y la app lo avisa.