Stitch Design Taste — Criterios de Diseño para Agentes
Guia de criterios para generar interfaces no-genericas con Google Stitch.
No prescribe valores fijos — enseña como tomar decisiones de diseño.
Los valores reales (colores, fuentes, spacing) salen del DESIGN.md del
proyecto generado con stitch-mcp-cli design-md.
Regla fundamental
Siempre que exista un DESIGN.md en el proyecto o en .stitch/metadata.json,
usarlo como fuente de verdad. Esta skill complementa ese archivo con
criterios de calidad, no lo reemplaza.
Anti-Slop Rules
Prohibido — estos patrones producen interfaces genericas de IA:
- Hero sections centradas con heading + subheading + CTA en columna vertical
- Cards identicas en grid de 3 con icono + titulo + descripcion
- Fuentes genericas como unica opcion: Inter, Roboto, Arial, system-ui
- Estetica neon, degradados arcoiris, o "glassmorphism" excesivo
- Copy con "Revolutionize", "Seamless", "Cutting-edge", "Next-gen", "Empower"
- Todo con el mismo border-radius (todo redondo o todo cuadrado)
- Sombras apiladas o excesivas
- Espaciado uniforme entre todos los elementos
Obligatorio — senales de calidad:
- Cada pantalla tiene un foco visual unico — el ojo sabe donde ir
- Contraste de tamano real entre elementos (no todo el mismo peso visual)
- Al menos un elemento inesperado o memorable por pantalla
- Espacio negativo deliberado, no accidental
- Jerarquia tipografica con diferencia de tamano >= 1.25x entre niveles
- Asimetria cuando el layout lo permite
Color
Como calibrar (no que colores usar)
Stitch interpreta colores como descripciones semanticas. Siempre dar contexto,
no solo valores hex:
Bien: "Azul profundo para acciones primarias, transmite confianza sin ser corporativo"
Mal: "#1E3A5F"
Criterios
- Maximo 4 colores con rol activo por pantalla
- El color de acento cubre <= 10% de la superficie visible
- Fondos oscuros requieren colores mas vivos (saturacion), no mas brillantes (luminosidad)
- Probar la paleta en escala de grises: si no hay jerarquia sin color, la paleta falla
- Nunca negro puro (#000) para texto — usar casi-negro con tinte
- Nunca blanco puro (#FFF) para fondos — usar blanco con tinte calido o frio segun la paleta
Como derivar la paleta del DESIGN.md
Si el proyecto tiene customColor, generar la paleta completa a partir de ese
unico color:
- Primary = el customColor del proyecto
- Accent = complementario o analogo al primary, con contraste suficiente
- Background = tinte muy sutil derivado del primary (calido si primary es calido, etc.)
- Surface = version mas clara del background
- Text = casi-negro con tinte del primary
Tipografia
Criterios de pairing
Regla: una fuente con personalidad + una neutral. Nunca dos decorativas.
| Rol |
Caracteristicas |
Evitar |
| Display/Heading |
Seriff geometrico o sans con caracter. Peso 700-900 |
Fuentes system genericas |
| Body |
Humanist sans, legible a tamano pequeno. Peso 400 |
Fuentes display para body |
| Mono/Codigo |
Monospace con personalidad |
Courier |
Jerarquia
- Diferencia de tamano entre niveles consecutivos: >= 1.25x
- H1 a H2, H2 a Body — cada salto debe ser visible
- Si dos niveles se ven iguales, la jerarquia falla
- Line-height: headings 1.1-1.2, body 1.5-1.6
Componentes
Botones
- Primario vs secundario vs ghost — 3 niveles claros de enfasis
- Disabled: opacidad 40%, cursor not-allowed, sin hover
- Tamano touch-friendly: minimo 44px de alto en mobile
- Hover: cambio sutil (color o sombra), nunca animacion dramatica
Cards
- Sombra sutil de un solo nivel, no apilada
- Hover: sombra elevada, sin scale exagerado
- Borde con tinte del accent (no gris plano)
- Border-radius consistente con el resto del sistema
Inputs
- Altura minima 48px (touch-friendly)
- Label fuera del input, nunca como placeholder que desaparece
- Placeholder a 40% opacidad, diferente del label
- Focus: anillo visible del color principal
- Error: borde rojo + mensaje contextual + icono
Empty States
- Ilustracion o icono grande (80px+) con color reducido
- Titulo descriptivo ("No hay proyectos todavia", no "404" ni "Empty")
- CTA que resuelve el problema, no solo un enlace generico
Loaders
- Skeleton (shimmer) para contenido que carga, no spinners
- Spinner solo para acciones muy cortas (< 3 segundos)
- Progress bar para operaciones con duracion estimable
Layout
Principios
- Mobile-first: disenar para 375px, expandir
- Asimetria preferida: grids con columnas desiguales (2fr 1fr, etc.)
- Recorrido visual: Z-pattern para paginas, F-pattern para listas densas
- Proximidad: elementos relacionados juntos, separados de otros grupos
Spacing
Usar una escala consistente (4, 8, 16, 24, 32, 48) en vez de valores
arbitrarios. La relacion entre spacing tokens debe ser evidente (cada nivel
es ~1.5-2x el anterior).
Responsive
- Mobile: 1 columna, full-width, nav colapsada
- Tablet: 2 columnas, sidebar colapsable
- Desktop: grid completo, sidebar expandida
Anti-patterns de layout
- No usar carousel para contenido critico
- No apilar mas de 3 cards en fila en mobile
- No usar tablas densas en mobile — convertir a card list
- No esconder navegacion principal detras de menus obscuros
Motion
Filosofia
Las animaciones comunican, no decoran. Si una animacion no transmite
informacion (estado, relacion espacial, cambio), no es necesaria.
Criterios
- Duracion base: 200-300ms para transiciones, 150ms para hover
- Entradas: slide + fade (no solo fade)
- Salidas: fade rapido (150ms) — el usuario ya decidio irse
- Hover en botones: 150ms, solo background y transform
- Listas: stagger de 50ms entre items, no todos a la vez
- Nunca animar propiedades que causen reflow — usar transform y opacity
- Preferir curvas ease-out para entradas, ease-in para salidas
Como usar esta skill con stitch-mcp-cli
Antes de generar pantallas
- Verificar si existe
DESIGN.md o .stitch/metadata.json en el proyecto
- Si existe, extraer: paleta, fuente, roundness, color mode
- Si no existe, sugerir ejecutar
stitch-mcp-cli design-md primero
- Aplicar los criterios de esta skill sobre la base del DESIGN.md
Al generar con stitch_generate_screen
Incluir en el prompt las decisiones de diseño basadas en esta skill:
Genera una pantalla de [descripcion].
Design system:
- Atmosfera: [descripcion narrativa del tono visual]
- Colores: [paleta derivada del DESIGN.md con contexto semantico]
- Tipografia: [fuentes con jerarquia clara]
- Layout: [patron elegido con justificacion]
- Componentes: [specs segun los criterios de esta skill]
Al exportar con stitch_export_framework
La skill no afecta la exportacion tecnica — los templates de framework
en src/templates/ manejan eso. Pero si el agente necesita ajustar el
diseno antes de exportar, aplicar los criterios de color, tipografia y
componentes.
1---2name: stitch-design-taste3description: Guia al agente para generar interfaces de alta calidad con Google Stitch. Usar cuando se creen pantallas con stitch_generate_screen, se exporte diseño a frameworks, o se necesite un design system coherente. Proporciona criterios de diseño (no valores fijos) para evitar interfaces genericas y producir resultados premium.4---56# Stitch Design Taste — Criterios de Diseño para Agentes78Guia de criterios para generar interfaces no-genericas con Google Stitch.9No prescribe valores fijos — enseña **como tomar decisiones de diseño**.10Los valores reales (colores, fuentes, spacing) salen del `DESIGN.md` del11proyecto generado con `stitch-mcp-cli design-md`.1213## Regla fundamental1415Siempre que exista un `DESIGN.md` en el proyecto o en `.stitch/metadata.json`,16usarlo como fuente de verdad. Esta skill complementa ese archivo con17criterios de calidad, no lo reemplaza.1819## Anti-Slop Rules2021**Prohibido — estos patrones producen interfaces genericas de IA:**2223- Hero sections centradas con heading + subheading + CTA en columna vertical24- Cards identicas en grid de 3 con icono + titulo + descripcion25- Fuentes genericas como unica opcion: Inter, Roboto, Arial, system-ui26- Estetica neon, degradados arcoiris, o "glassmorphism" excesivo27- Copy con "Revolutionize", "Seamless", "Cutting-edge", "Next-gen", "Empower"28- Todo con el mismo border-radius (todo redondo o todo cuadrado)29- Sombras apiladas o excesivas30- Espaciado uniforme entre todos los elementos3132**Obligatorio — senales de calidad:**3334- Cada pantalla tiene un **foco visual unico** — el ojo sabe donde ir35- Contraste de tamano real entre elementos (no todo el mismo peso visual)36- Al menos un elemento inesperado o memorable por pantalla37- Espacio negativo deliberado, no accidental38- Jerarquia tipografica con diferencia de tamano >= 1.25x entre niveles39- Asimetria cuando el layout lo permite4041## Color4243### Como calibrar (no que colores usar)4445Stitch interpreta colores como descripciones semanticas. Siempre dar contexto,46no solo valores hex:4748```49Bien: "Azul profundo para acciones primarias, transmite confianza sin ser corporativo"50Mal: "#1E3A5F"51```5253### Criterios5455- Maximo 4 colores con rol activo por pantalla56- El color de acento cubre <= 10% de la superficie visible57- Fondos oscuros requieren colores mas vivos (saturacion), no mas brillantes (luminosidad)58- Probar la paleta en escala de grises: si no hay jerarquia sin color, la paleta falla59- Nunca negro puro (#000) para texto — usar casi-negro con tinte60- Nunca blanco puro (#FFF) para fondos — usar blanco con tinte calido o frio segun la paleta6162### Como derivar la paleta del DESIGN.md6364Si el proyecto tiene `customColor`, generar la paleta completa a partir de ese65unico color:66671. **Primary** = el customColor del proyecto682. **Accent** = complementario o analogo al primary, con contraste suficiente693. **Background** = tinte muy sutil derivado del primary (calido si primary es calido, etc.)704. **Surface** = version mas clara del background715. **Text** = casi-negro con tinte del primary7273## Tipografia7475### Criterios de pairing7677Regla: **una fuente con personalidad + una neutral**. Nunca dos decorativas.7879| Rol | Caracteristicas | Evitar |80|-----|----------------|--------|81| Display/Heading | Seriff geometrico o sans con caracter. Peso 700-900 | Fuentes system genericas |82| Body | Humanist sans, legible a tamano pequeno. Peso 400 | Fuentes display para body |83| Mono/Codigo | Monospace con personalidad | Courier |8485### Jerarquia8687- Diferencia de tamano entre niveles consecutivos: >= 1.25x88- H1 a H2, H2 a Body — cada salto debe ser visible89- Si dos niveles se ven iguales, la jerarquia falla90- Line-height: headings 1.1-1.2, body 1.5-1.69192## Componentes9394### Botones9596- Primario vs secundario vs ghost — 3 niveles claros de enfasis97- Disabled: opacidad 40%, cursor not-allowed, sin hover98- Tamano touch-friendly: minimo 44px de alto en mobile99- Hover: cambio sutil (color o sombra), nunca animacion dramatica100101### Cards102103- Sombra sutil de un solo nivel, no apilada104- Hover: sombra elevada, sin scale exagerado105- Borde con tinte del accent (no gris plano)106- Border-radius consistente con el resto del sistema107108### Inputs109110- Altura minima 48px (touch-friendly)111- Label fuera del input, nunca como placeholder que desaparece112- Placeholder a 40% opacidad, diferente del label113- Focus: anillo visible del color principal114- Error: borde rojo + mensaje contextual + icono115116### Empty States117118- Ilustracion o icono grande (80px+) con color reducido119- Titulo descriptivo ("No hay proyectos todavia", no "404" ni "Empty")120- CTA que resuelve el problema, no solo un enlace generico121122### Loaders123124- Skeleton (shimmer) para contenido que carga, no spinners125- Spinner solo para acciones muy cortas (< 3 segundos)126- Progress bar para operaciones con duracion estimable127128## Layout129130### Principios131132- **Mobile-first**: disenar para 375px, expandir133- **Asimetria preferida**: grids con columnas desiguales (2fr 1fr, etc.)134- **Recorrido visual**: Z-pattern para paginas, F-pattern para listas densas135- **Proximidad**: elementos relacionados juntos, separados de otros grupos136137### Spacing138139Usar una escala consistente (4, 8, 16, 24, 32, 48) en vez de valores140arbitrarios. La relacion entre spacing tokens debe ser evidente (cada nivel141es ~1.5-2x el anterior).142143### Responsive144145- Mobile: 1 columna, full-width, nav colapsada146- Tablet: 2 columnas, sidebar colapsable147- Desktop: grid completo, sidebar expandida148149### Anti-patterns de layout150151- No usar carousel para contenido critico152- No apilar mas de 3 cards en fila en mobile153- No usar tablas densas en mobile — convertir a card list154- No esconder navegacion principal detras de menus obscuros155156## Motion157158### Filosofia159160Las animaciones **comunican**, no decoran. Si una animacion no transmite161informacion (estado, relacion espacial, cambio), no es necesaria.162163### Criterios164165- Duracion base: 200-300ms para transiciones, 150ms para hover166- Entradas: slide + fade (no solo fade)167- Salidas: fade rapido (150ms) — el usuario ya decidio irse168- Hover en botones: 150ms, solo background y transform169- Listas: stagger de 50ms entre items, no todos a la vez170- Nunca animar propiedades que causen reflow — usar transform y opacity171- Preferir curvas ease-out para entradas, ease-in para salidas172173## Como usar esta skill con stitch-mcp-cli174175### Antes de generar pantallas1761771. Verificar si existe `DESIGN.md` o `.stitch/metadata.json` en el proyecto1782. Si existe, extraer: paleta, fuente, roundness, color mode1793. Si no existe, sugerir ejecutar `stitch-mcp-cli design-md` primero1804. Aplicar los criterios de esta skill sobre la base del DESIGN.md181182### Al generar con `stitch_generate_screen`183184Incluir en el prompt las decisiones de diseño basadas en esta skill:185186```187Genera una pantalla de [descripcion]. 188189Design system:190- Atmosfera: [descripcion narrativa del tono visual]191- Colores: [paleta derivada del DESIGN.md con contexto semantico]192- Tipografia: [fuentes con jerarquia clara]193- Layout: [patron elegido con justificacion]194- Componentes: [specs segun los criterios de esta skill]195```196197### Al exportar con `stitch_export_framework`198199La skill no afecta la exportacion tecnica — los templates de framework200en `src/templates/` manejan eso. Pero si el agente necesita ajustar el201diseno antes de exportar, aplicar los criterios de color, tipografia y202componentes.