Video Summary and Transcription
Seungho Park discute la escalabilidad de la UI de React utilizando design tokens y Figma para abordar los desafíos de consistencia de UI en LG Electronics. Los design tokens se gestionan en Figma y se sincronizan a través de plataformas utilizando GitHub Actions. La automatización de las actualizaciones de design tokens se demuestra con Figma Sync y GitHub Actions. Los tokens compartidos permiten la consistencia del tema en toda la aplicación y agilizan el estilo visual con CodeConnect. CodeConnect conecta el diseño de Figma con el código de React, transformando diseños con IA y asegurando un mapeo preciso. Se comparten ideas prácticas sobre la implementación de design tokens para el desarrollo escalable de UI de React.
1. Scaling React UI with Design Tokens
Seungho Park de LG Electronics comparte ideas sobre cómo escalar una UI de React usando design tokens y Figma. Explica la necesidad de los design tokens, su estructura, la pipeline de CI CD y demostraciones. Discute el desafío de la inconsistencia de la UI en los productos de LG y la introducción de design tokens para una mejor gobernanza y consistencia.
Hola a todos. Soy Seungho Park de LG Electronics. Hoy, compartiré cómo escalamos una UI de React en muchas plataformas usando design tokens y Figma. Nuestro objetivo era simple, diseñar una vez y escalar en todas partes. Permítanme presentarme brevemente. Estoy liderando el motor web y el framework web para dispositivos LG. Soy el propietario del framework Enact, que se envía en decenas de millones de televisores cada año. También es de código abierto. En mi charla anterior en React Summit, compartí ideas de producción y estudios de caso del desarrollo de UI para TV.
Esto es lo que cubriremos hoy. Primero, por qué necesitamos design tokens en primer lugar. Luego, qué son los design tokens y cómo estructuramos nuestra arquitectura. Después de eso, mostraré nuestra pipeline de CI CD y cómo la IA se integra en el flujo de trabajo. A lo largo del camino, les mostraré algunas demostraciones. Comencemos. LG envía una amplia gama de productos. Electrodomésticos, televisores, aplicaciones móviles, web y mucho más. Cada equipo construyó su propia UI a su manera. El mayor problema era la inconsistencia sin una gobernanza central para la marca.
El equipo de diseño introdujo un sistema de diseño, y mi trabajo era convertir esos tokens en una biblioteca de código real. ¿Qué son los design tokens? Los design tokens son valores nombrados para decisiones de diseño, colores, espaciado, tipografía y más. En lugar de valores codificados en todas partes, usamos un nombre compartido en todas las plataformas. Así es como se ve en la práctica. A la izquierda, el color está codificado. Tienes que encontrar cada código hexadecimal en cada archivo solo para cambiar un tono de gris. A la derecha, usamos un token nombrado en su lugar. Cambia el valor una vez, y todo se actualiza en todas partes. Nuestros design tokens tienen tres capas, primitiva, semántica y de componente. Los tokens primitivos contienen los valores en bruto como un array específico. Los tokens semánticos dan a esos valores un rol como el color de la superficie de un botón.
2. Managing Design Tokens Synchronization
Los tokens de componente describen elementos específicos de UI con paletas primitivas compartidas en todas las plataformas. Los diseñadores gestionan los tokens en Figma. GitHub Actions automatiza la sincronización de tokens. La API de Figma obtiene design tokens para actualizaciones simplificadas.
Los tokens de componente describen un elemento de UI específico como el contenedor de un botón primario. Cada capa apunta a la que está por encima de ella. Usamos una paleta primitiva compartida en toda la empresa. Los tokens semánticos y de componente se definen por plataforma. Móvil, web y webOS tienen cada uno los suyos. Esto nos da una única fuente de verdad para los colores de la marca, y al mismo tiempo, cada plataforma mantiene la flexibilidad que necesita.
Así que con esta estructura, obtenemos una única fuente de verdad. En Figma, el diseñador gestiona todos los tokens en un solo lugar. Cada plataforma elige el tema que necesita a través de la función de modo de Figma. Esto es lo que hizo que nuestro sistema de diseño fuera realmente escalable. Teníamos los design tokens, pero el siguiente problema era mantenerlos sincronizados. Resolvimos esto con tres roles trabajando juntos.
Primero, el equipo de diseño. Actualizan los tokens en Figma y etiquetan o lanzan cuando están listos. Ese es su único trabajo en esta pipeline. Luego, GitHub Actions toma el control. Obtiene las últimas variables de Figma, las compara con los tokens actuales y las convierte en el formato que necesitamos. Luego abre una solicitud de extracción automáticamente. Finalmente, el equipo de desarrollo solo revisa la solicitud de extracción y publica la versión. Sin copiar y pegar manualmente, y sin esperar días. Entonces, ¿cómo extrae realmente la pipeline los datos de Figma? Figma proporciona una API rest oficial de variables. Te permite leer todos los design tokens directamente desde un archivo de Figma. Usamos el endpoint get local variables para obtener cada token en el archivo.
3. Automating Design Token Updates with Figma Sync
Demostración de GitHub Action para actualizaciones automáticas de design tokens. Figma Sync automatiza la transformación de variables. Los PRs resumen los tokens añadidos o modificados. Archivos JSON y CSS actualizados con nuevos valores de diseño.
Veamos cómo lo llamamos. Esta es la llamada real que usamos. El código fuente completo está en GitHub, enlazado al final. Durante la acción, genera un diff de cada cambio añadido, modificado y eliminado. Este diff es de donde se construye la pull request.
Veamos esto en acción. En esta demo, verás la ejecución de GitHub Action de principio a fin. Obtiene los tokens, abre una pull request, y verás el diff justo dentro del PR. Primero, automatizamos las actualizaciones de design tokens con Figma Sync. Al vincular la API de variables de Figma a GitHub Actions, cualquier cambio de diseño desencadena un flujo de trabajo para obtener y transformar esas variables automáticamente. Por supuesto, puedes ejecutar el flujo de trabajo manualmente.
Ahora está comprobando las variables de Figma usando la API de variables de Figma. Una vez que el flujo de trabajo se completa, genera una nueva pull request para que el equipo la revise. Al mirar la descripción del PR, el bot ha resumido automáticamente exactamente qué tokens fueron añadidos o modificados, facilitando a los desarrolladores el seguimiento de los cambios. Y en la pestaña de Cambios de Archivo, puedes ver las actualizaciones reales. Nuestros archivos JSON y CSS están actualizados con nuevos valores de diseño, manteniendo todo sincronizado. Aquí hay otro beneficio de usar design tokens. Aplicar un tema constante en la aplicación se vuelve realmente simple.
4. App-wide Theme Consistency with Shared Tokens
Cada componente utiliza tokens semánticos para facilitar cambios en toda la aplicación. Demostración del cambio de tema entre diferentes plataformas con tokens compartidos. Los design tokens automatizan el estilo visual; CodeConnect vincula el diseño de Figma al código de la aplicación.
Porque cada componente proviene de tokens semánticos, cambiar un archivo en la raíz cambia la apariencia de toda la aplicación. No se necesitan cambios en los componentes. Veamos esto en funcionamiento. En esta demo, verás dos pantallas una al lado de la otra. El monitor de la izquierda es el sitio web lge.com. El monitor de la derecha es la aplicación Home Hub de WebStv. Ambos usan los design tokens de los que acabamos de hablar. Observa lo que sucede cuando cambio el tema. Tema claro, ahora tema oscuro, y finalmente un tema navideño. Ambas pantallas el mismo tema cada vez. Dos plataformas completamente diferentes, pero una apariencia consistente. Ese es el poder de un sistema de tokens compartidos.
Diseña una vez y escala en todas partes. Hasta ahora, los design tokens han automatizado todo el estilo visual. Colores, espaciado, tipografía, todo manejado. Pero aún queda una pieza. Convertir un diseño de Figma en código de aplicación real con tu componente. En un producto real, usas bibliotecas externas como ShedCN, MUI o Inet. O construyes tus propios componentes cuando lo necesitas. Así que para que la salida sea realmente utilizable, tiene que ser generada usando el componente que tu aplicación ya utiliza. Ese es el verdadero cuello de botella. Y eso es exactamente lo que CodeConnect resuelve.
Para resolver este cuello de botella, usamos dos piezas juntas. Primero, Figma MCP. Es una interfaz que permite a una IA leer tu archivo de Figma directamente. El diseño, la disposición, los tokens, todo. Segundo, CodeConnect. Aquí es donde le dices a Figma que este componente en el diseño se mapea a este archivo en nuestra base de código. Cuando juntas estas dos cosas, la IA no solo ve el diseño. Sabe exactamente qué componentes usar para construirlo.
5. Bridge Between Figma and React with CodeConnect
Flujo de trabajo desde el diseño en Figma hasta la generación de código React con CodeConnect. CodeConnect conecta la base de código y Figma, vinculando componentes. La interfaz de CodeConnect integra diseños de Figma a componentes de la base de código.
Aquí está el flujo de trabajo de principio a fin. Comienza con un diseño en Figma. Luego, Figma MCP extrae el contexto, la disposición, los componentes, los tokens. Todo en una forma estructurada que una IA puede entender. A continuación, CodeConnect mapea cada componente de Figma al archivo real en nuestra biblioteca de React. Y finalmente, la IA genera el código usando tus componentes.
La entrega que solía ser manual ahora es un flujo continuo. Esta es la propia definición de Figma de CodeConnect. En resumen, es un puente entre tu base de código y el modo de desarrollo de Figma. Le dice a la IA exactamente a qué archivo en tu repositorio cada componente de Figma se mapea. La documentación completa está enlazada al final.
Esta es la interfaz de CodeConnect dentro de Figma. Lo que estás viendo es uno de nuestros diseños de aplicaciones reales en Figma ya conectado a CodeConnect. Aquí puedes ver cómo cada parte de esta pantalla está conectada. Esta pantalla es una vista de estilo emergente, así que la mapeé a un componente de panel emergente fijo inactivo. Y dentro del emergente, también conecté las piezas más pequeñas, el encabezado, el deslizador, y los botones. Puedes apuntar CodeConnect a un archivo local en tu repositorio, o a un archivo en GitHub. Ambos funcionan. Usa el que se ajuste a la configuración de tu equipo.
6. Transforming Figma Design with AI and CodeConnect
El agente de IA transforma el diseño de Figma a código React usando CodeConnect y design tokens. Analizando el proyecto, vinculando Figma con la biblioteca de componentes Sandstone. El agente asegura un mapeo preciso de las props y definiciones completas de componentes. Configuración del entorno, implementación de código, verificación y revisión exitosa del resumen.
Ahora, veamos cómo todo esto se une. En esta demostración, un agente de IA utilizó Figma MCP y CodeConnect para convertir un diseño de Figma en código React real, con los componentes reales de nuestra base de código. Vamos a verlo. Comenzaré pegando el enlace del diseño y la instrucción principal de Figma. Para guiar al agente, he añadido tres directrices específicas. Construir con nuestro esqueleto de aplicación, usar CodeConnect y aplicar nuestros design tokens.
El agente comienza analizando el proyecto, vinculando los datos de Figma con CodeConnect para identificar el componente Sandstone correspondiente. Sandstone es nuestra biblioteca de componentes para WebSTV construida sobre Inet. El agente se sumerge profundamente en las APIs de Sandstone. No solo busca nombres de componentes, está analizando las definiciones completas de los componentes. El objetivo es encontrar las props exactas que coincidan con el estado del diseño en Figma. Esto incluye todo, desde tamaños de botones hasta diseños de paneles, asegurando que cada atributo esté mapeado con precisión a la capacidad de nuestro framework.
Ahora, el agente verifica si los paquetes requeridos están disponibles para instalar. Dado que faltan en el entorno, inicia automáticamente la instalación a través del terminal. Una vez que el entorno está listo, avanza para implementar el diseño, generar los archivos module.js y main.panel.js. Con el código escrito, el agente ejecuta InetPack para verificar la compilación y buscar errores en tiempo real. Una vez que la tarea está completa, proporciona un resumen de todos los componentes y estilos que acaba de implementar, confirmando una implementación exitosa. Revisemos los resultados.
7. Implementing Design Tokens for Scalable React UIs
Componentes reales y tokens aplicados correctamente en el código de la aplicación generada. Estructura tokens para escalar, automatiza la pipeline, aprovecha MCP para el código de diseño. Las referencias incluyen el repositorio de tokens en GitHub. Perspectiva práctica sobre la construcción de UIs de React con design tokens.
Al pasar el cursor sobre el código, puedes ver el componente real de panel emergente fijo aquí y los componentes de botón aquí. En el último archivo, puedes ver que los design tokens están importados y aplicados correctamente a nuestra variable de color semántico. Ahora ejecutemos la aplicación que el agente acaba de generar. El icono de encendido se aplica en el botón. El número de brillo se actualiza a medida que muevo el deslizador. Y la tecla de flecha del control remoto también funciona directamente. Aquí está el código que el agente realmente generó. A la izquierda, puedes ver que el código de la aplicación generada utiliza nuestros componentes correctamente. Utiliza paneles emergentes fijos, botón, encabezado y deslizador, y cada componente tiene las props correctas aplicadas. A la derecha está el archivo de estilos. El agente importó los design tokens de los que hablamos antes, y en lugar de valores codificados, utilizó la variable de token. Así que, todo está conectado.
Los componentes son reales. Los tokens son reales. Esto es lo que debes llevarte de hoy. Primero, estructura tus tokens para escalar. Componente semántico primitivo, tres capas, cada una con un rol claro. Con esta estructura, un sistema de diseño puede servir a muchas plataformas. Segundo, automatiza la pipeline. No copies y pegues los tokens de Figma en el código. Conéctalos con un flujo de trabajo CI, para que los cambios de diseño se conviertan en una pull request por sí mismos. Tercero, aprovecha MCP para un diseño de código sin transferencia. Empareja Figma MCP con Code Connect para que la IA no solo vea el diseño, sino que genere código usando los componentes reales de tu base de código. Tokens, automatización y MCP. Así es como nos acercamos al diseño-una-vez, escalar-en-todas-partes.
Estas son todas las referencias que utilicé hoy. La más importante está en la parte superior. Nuestro repositorio de tokens en GitHub. Siéntete libre de echar un vistazo o usarlo como punto de partida para el tuyo propio. Espero que esta sesión te haya dado una visión práctica sobre cómo construir UIs de React que escalen en muchas plataformas con design tokens. Si tienes alguna pregunta, por favor contáctame a través del enlace aquí. ¡Gracias por acompañarme hoy. ¡Adiós!
Comments