<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Design System on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/design-system/</link>
        <description>Recent content in Design System on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 12 Jul 2026 12:15:00 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/design-system/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cómo conectar frontends generados por IA a un sistema de diseño con Astryx: componentes React, temas y criterios de aceptación</title>
        <link>https://knightli.com/es/2026/07/12/astryx-ai-generated-frontend-react-design-system-theme-guide/</link>
        <pubDate>Sun, 12 Jul 2026 12:15:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/07/12/astryx-ai-generated-frontend-react-design-system-theme-guide/</guid>
        <description>&lt;p&gt;Generar una página con IA no es difícil; lograr que la segunda y tercera mantengan colores, espaciado, estados de componentes, accesibilidad y límites de interacción sí lo es. Astryx es el sistema de diseño React de código abierto de Meta. Su repositorio oficial lo describe como Beta y ofrece más de 150 componentes accesibles, temas, modo oscuro, plantillas y CLI, con sobrescritura de temas mediante propiedades personalizadas CSS. &lt;a class=&#34;link&#34; href=&#34;https://github.com/facebook/astryx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio oficial&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Conectar Astryx a un Agent no busca que el modelo diseñe libremente: busca que personas y Agent usen los mismos componentes y documentación.&lt;/p&gt;
&lt;h2 id=&#34;decide-primero-si-conviene-introducirlo&#34;&gt;Decide primero si conviene introducirlo
&lt;/h2&gt;&lt;p&gt;Suele encajar cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un proyecto React ya tiene varias páginas administrativas y la UI generada por IA empieza a desviarse.&lt;/li&gt;
&lt;li&gt;El equipo necesita unificar botones, formularios, diálogos, estados vacíos y modo oscuro.&lt;/li&gt;
&lt;li&gt;Se quiere que el Agent componga componentes existentes en vez de escribir CSS desde cero.&lt;/li&gt;
&lt;li&gt;Se puede validar y fijar una dependencia Beta de forma aislada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si no es React o ya existe una biblioteca interna madura, no refactorices por tendencia. Traslada prácticas de componentes primero, tokens primero y validación por capturas al sistema actual.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-tema-mínimo&#34;&gt;Instalación y tema mínimo
&lt;/h2&gt;&lt;p&gt;Los nombres de paquete del ejemplo oficial son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install @astryxdesign/core @astryxdesign/theme-neutral
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -D @astryxdesign/cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Primero valida build, carga de estilos y modo oscuro en una rama aislada o página pequeña, y después amplíalo al punto de entrada. No dejes que un Agent sustituya estilos globales, el shell de rutas o archivos token existentes.&lt;/p&gt;
&lt;p&gt;El tema debe expresar restricciones de marca, no permitir que cada página se sobrescriba libremente. Escribe en las reglas del proyecto qué colores, radios, tipografía y espaciado se pueden cambiar para que el Agent sepa qué reutilizar.&lt;/p&gt;
&lt;h3 id=&#34;empieza-con-una-página-pequeña-no-con-el-shell-de-la-aplicación&#34;&gt;Empieza con una página pequeña, no con el shell de la aplicación
&lt;/h3&gt;&lt;p&gt;Elige una sola ruta, por ejemplo ajustes, barra lateral de filtros o tarjeta de detalle. Enumera su tipografía, espaciado, tokens de color, estados y componentes, y pide al Agent reconstruir una zona con Astryx. Conserva rutas, solicitudes de datos, comprobaciones de permisos y entrada de estilos globales; el sistema de diseño se ocupa de componentes y temas, no de migrar negocio.&lt;/p&gt;
&lt;p&gt;Fija la validación local: instala dependencias e inicia el servidor, revisa modo claro y oscuro, recorre formularios, diálogos y botones con Tab, estrecha la ventana a ancho móvil y ejecuta pruebas o build existentes. Registra problemas en el cambio del componente para no descubrir conflictos de tokens, prioridad CSS o foco después de migrar muchas páginas.&lt;/p&gt;
&lt;p&gt;Cuando la página sea estable, úsala como referencia: documenta paquetes permitidos, entrada de tema, estilo de importación y archivos globales intocables. Las tareas posteriores deben apuntar a ella.&lt;/p&gt;
&lt;h2 id=&#34;restricciones-de-proyecto-para-un-agent&#34;&gt;Restricciones de proyecto para un Agent
&lt;/h2&gt;&lt;p&gt;Coloca reglas como estas en &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt; o un Skill:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 新页面优先使用 @astryxdesign 现有组件；新增自定义组件前先说明原因。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不新增全局 CSS reset，不修改既有主题 token。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 所有表单字段必须有可见 label、错误态和禁用态。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 完成后提供桌面和窄屏截图，并列出新增组件与交互状态。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- 不以截图相似为唯一验收；保留键盘操作和语义结构。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es más ejecutable que «haz un panel con el sistema de diseño»: da prohibiciones, una ruta de reutilización y entregables, y permite revisar si se evitó la biblioteca.&lt;/p&gt;
&lt;h3 id=&#34;escribe-entradas-salidas-y-prohibiciones-en-la-tarea&#34;&gt;Escribe entradas, salidas y prohibiciones en la tarea
&lt;/h3&gt;&lt;p&gt;Una tarea real debe indicar alcance de página, datos utilizables, archivos editables y capturas requeridas. Por ejemplo: modificar solo &lt;code&gt;src/features/orders/FilterPanel.tsx&lt;/code&gt;; reutilizar parámetros de consulta; no añadir dependencias ni cambiar rutas o &lt;code&gt;theme.ts&lt;/code&gt;; entregar capturas de escritorio y estrecha y enumerar estados de Button, Select y Dialog. Así el Agent no cambia reset global, gestión de estado o API solo para lograr una apariencia.&lt;/p&gt;
&lt;p&gt;En componentes complejos, pide primero un borrador estructural: secciones, componente Astryx correspondiente y estados loading/error/empty. Aprueba la estructura antes del código. Si el diseño excede la biblioteca, ajusta el diseño o asigna responsable al componente nuevo, no añadas CSS desechable.&lt;/p&gt;
&lt;h2 id=&#34;cuatro-capas-de-aceptación-para-reducir-deriva-de-ui&#34;&gt;Cuatro capas de aceptación para reducir deriva de UI
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Capa&lt;/th&gt;
          &lt;th&gt;Qué revisar&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Componentes&lt;/td&gt;
          &lt;td&gt;Si reutiliza Button, Input, Dialog y similares, con estados completos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Tema&lt;/td&gt;
          &lt;td&gt;Si los cambios visuales usan solo tokens o variables CSS permitidos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Interacción&lt;/td&gt;
          &lt;td&gt;Si foco de teclado, loading, error y vacío son utilizables&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Entrega&lt;/td&gt;
          &lt;td&gt;Si build pasa, capturas cubren páginas clave y existe lista de componentes&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La coherencia visual no es copiar píxeles. Deben mantenerse semántica accesible, máquinas de estado, origen del tema y límites de componentes mantenibles.&lt;/p&gt;
&lt;h2 id=&#34;un-proceso-de-aceptación-repetible&#34;&gt;Un proceso de aceptación repetible
&lt;/h2&gt;&lt;p&gt;Antes de fusionar, revisa el diff por estilos globales que eviten la biblioteca, colores de marca escritos fijos y archivos no relacionados. En el navegador prueba datos normales, carga, datos vacíos y fallo de API; en formularios prueba obligatorio, formato erróneo, deshabilitado y envío. Una captura del estado normal oculta la mayoría de regresiones.&lt;/p&gt;
&lt;p&gt;Por último, completa un flujo clave con teclado: el orden Tab debe tener sentido, el foco debe entrar y salir de Dialog, los mensajes de error deben asociarse al campo y el contraste de color debe ser suficiente. Inclúyelo en la plantilla de PR para que las páginas generadas por Agent reciban el mismo estándar.&lt;/p&gt;
&lt;h2 id=&#34;errores-comunes&#34;&gt;Errores comunes
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tomar Beta como motivo para rehacer todo el sitio&lt;/strong&gt;: fija versión y valida coste de actualización en un área primero.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dejar que el Agent edite internals de componentes&lt;/strong&gt;: prioriza composición y tema; toma el código solo si es necesario.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Escribir CSS temporal por página&lt;/strong&gt;: el sistema queda como un nombre de paquete y no condiciona a futuros Agent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validar solo capturas&lt;/strong&gt;: no muestran orden tab, feedback de error ni botones no pulsables.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Astryx ayuda a establecer un lenguaje de frontend compartido por personas y Agent. Valida componentes, tema y aceptación en pocas páginas, y después consolida las reglas en archivos del proyecto; no conviertas el nuevo sistema en otra abstracción sin mantenimiento.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
