Install
openclaw skills install frontend-ui-systemDiseña e implementa interfaces modernas, limpias y coherentes con design system, jerarquía clara, componentes reutilizables y enfoque mobile-first para apps...
openclaw skills install frontend-ui-systemEsta skill existe para que el agente diseñe e implemente interfaces de usuario con un nivel visual y estructural mucho más alto que una UI genérica.
El objetivo no es solo producir código funcional. El objetivo es producir una interfaz:
La referencia mental es trabajar más cerca del nivel de criterio de un product designer + frontend engineer, y no como un simple generador de JSX o HTML.
No escribir código hasta tener claridad visual suficiente.
El diseño no es decoración.
El diseño es estructura, jerarquía, intención, claridad y sistema.
Cada decisión visual debe tener una razón funcional.
Cuando el usuario pida una app, una web, una landing, un dashboard, una pantalla o una mejora visual, esta skill debe ayudar a producir un resultado que:
Usa esta skill cuando el usuario pida cosas como:
También úsala cuando el usuario diga frases vagas como:
Esta skill debe hacer que el agente:
Antes de diseñar o implementar, responder internamente estas preguntas:
No pasar a implementación sin haber aclarado mentalmente estas cinco cosas.
Siempre que no exista una dirección visual completamente definida, proponer 2 o 3 estilos visuales distintos antes de implementar.
Para cada estilo, documentar:
Estilo [Letra]: "[Nombre conceptual]"
Estilo A: "Corporate Trust"
Estilo B: "Modern Minimal" ⭐ RECOMENDADO
Estilo C: "Friendly Product"
Marcar uno como RECOMENDADO y justificar por qué encaja mejor con el producto, el usuario y la acción principal.
Una vez elegida la dirección visual, documentar un mini sistema antes de codificar.
Definir mínimo estos tokens:
| Token | Uso |
|---|---|
primary | marca, CTA principal, foco |
primary-foreground | texto sobre primary |
background | fondo principal |
foreground | texto principal |
card | fondo de superficies |
card-foreground | texto en cards |
muted | fondos secundarios |
muted-foreground | texto secundario |
accent | badges, highlights, estados activos |
accent-foreground | texto sobre accent |
border | separadores y bordes |
destructive | errores y acciones destructivas |
success | confirmaciones si aplica |
warning | alertas si aplica |
Definir:
No hace falta usar todos. Solo los necesarios.
Definir una unidad base y una escala consistente.
Unidad base: 4px
Escala común:
Si todo está muy junto, la UI se percibe barata o improvisada.
Definir radios por nivel.
Sugerencia:
Usar radios consistentes según tipo de componente.
No mezclar demasiados radios diferentes sin motivo.
Las sombras deben ser suaves y escasas.
Preferir una interfaz limpia con elevación moderada antes que una interfaz recargada.
Antes de codificar, documentar la estructura general.
| Pantalla | Estructura | CTA principal | Componentes clave |
|---|---|---|---|
| Home | hero / resumen / accesos rápidos | acción principal | cards, hero, quick actions |
| Lista | filtros + listado | click/tap en item | filter bar, item card |
| Detalle | header + contenido + acción | CTA fija o visible | gallery, info, summary |
| Formulario | pasos + campos + submit | confirmar | field, summary, stepper |
| Perfil | datos + acciones + historial | editar/continuar | profile sections |
No tratar pantallas como piezas aisladas.
Pensar el flujo completo del producto.
Estas reglas buscan evitar resultados genéricos o visualmente flojos.
Debe quedar claro:
Reducir ruido.
Si hay duda entre agregar o quitar, normalmente conviene quitar.
Mismo componente = mismo comportamiento visual y estructural.
Esta skill no solo diseña. También debe ayudar a implementar bien.
Construir primero una base sólida de componentes y layout.
No escribir una pantalla gigante llena de JSX repetido sin estructura.
Separar cuando sea razonable en:
components/uicomponents/sharedfeatures/...pages o screenshookslibtypesNo es obligatorio usar exactamente esos nombres, pero sí mantener organización clara.
Si un patrón se repite 2 o más veces, evaluar extraer componente.
Cuando haya componentes reutilizables, preferir variantes claras:
variantsizestatetoneEjemplos:
variant="default|outline|ghost"size="sm|md|lg"No duplicar un mismo componente con diferencias mínimas si una variante resuelve el caso.
El layout debe ser legible y fácil de mantener.
Definir claramente:
No solo “hacerlo caber”.
Debe adaptarse con intención.
Siempre verificar, al menos:
Todo componente importante debería contemplar si aplica:
Toda pantalla con contenido variable debería contemplar empty state si aplica.
Debe tener:
No dejar zonas vacías sin explicación.
Usar:
No dejar la pantalla vacía mientras carga.
Debe tener:
No mostrar errores técnicos crudos salvo contexto técnico explícito.
Debe dejar claro:
Elegir patrón según producto:
No mezclar patrones sin lógica.
Debe existir jerarquía clara de acciones.
Cuando el usuario pida cambios ambiguos, traducirlos a decisiones concretas.
Antes de considerar que la UI está bien, revisar esta checklist.
Corregir inmediatamente si aparecen varias de estas:
Si la primera versión aún se siente genérica, no asumir que ya está terminada.
Preguntarse:
Si varias respuestas son negativas, hacer una segunda iteración antes de cerrar.
Si el entorno permite screenshots, navegador o render visual, aprovecharlo.
La revisión visual es parte del trabajo, no algo opcional.
Cuando esta skill esté activa, el agente debe comportarse así:
Evitar especialmente:
La salida ideal de esta skill no debe quedarse en teoría.
Debe terminar ayudando a producir algo concreto como:
Consistencia > ocurrencias aisladas
Claridad > decoración
Whitespace > saturación
Sistema > improvisación
Producto real > demo genérica
Ante la duda, simplificar, ordenar y reforzar jerarquía.