Communitygithub.com

stacksjs/stacks

Úsalo cuando el entregable sea una página de Stacks visualmente importante (hero, landing page, sitio de marketing, portafolio, página de producto, página editorial de marca o rediseño donde la calidad visual importe) y quieras generar imágenes de referencia de diseño, analizarlas en profundidad y luego implementar la interfaz de usuario para que coincida. Ejecuta un pipeline que prioriza las imágenes (generar, analizar, implementar) y reorienta la fase de implementación hacia stx + Crosswind + composables.

¿Qué es stacks?

Este skill implementa un pipeline completo de 'imagen-a-código' para el framework Stacks. Su flujo de trabajo obligatorio es: primero generar imágenes de diseño de sitios web de alta calidad, luego analizarlas en profundidad para extraer el sistema de diseño (tipografía, espaciado, colores, componentes), y finalmente implementar el frontend en Stacks utilizando sus herramientas nativas: plantillas stx, utilidades Crosswind, composables stx, iconos Iconify y CSS. Está diseñado específicamente para secciones visuales como heroes, landing pages, sitios de marketing, portafolios y rediseños donde la calidad estética es crítica. El skill incluye una configuración activa con parámetros como VARIANCE_DISEÑO, DENSIDAD_VISUAL y DIRECCIÓN_ARTÍSTICA para adaptar el resultado, y contiene reglas estrictas para evitar errores comunes de la IA, como comprimir demasiadas secciones en una sola imagen o recortar imágenes antiguas en lugar de generar nuevas. Se compone con el skill stacks-design-taste para el juicio de diseño subyacente (paleta, tipografía, sistemas de espaciado) y con stacks-imagegen-web para la generación de imágenes. Está verificado que todas las API y constructos de Stacks mencionados (componentes, layouts, script server/client, composables, etc.) son reales y funcionales.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stacksjs/stacks/tree/HEAD/storage/framework/defaults/ai/skills/stacks-image-to-code

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

De imagen a código para Stacks

Skills relacionados: stacks-design-taste, stacks-imagegen-web, stacks-stx, stacks-crosswind, stacks-ui

Este skill es un pipeline que prioriza las imágenes: (1) genera imágenes de referencia de sitios web premium, (2) las analiza en profundidad, (3) implementa el frontend en Stacks para que coincida. Las fases de generar y analizar son independientes del framework. La fase de implementación es nativa de Stacks: plantillas stx, utilidades Crosswind, composables stx, iconos Iconify y CSS.

Para el juicio de diseño subyacente (disciplina de paleta, buen gusto tipográfico, reglas anti-desorden, sistemas de espaciado), remítete a stacks-design-taste, el skill principal de gusto estético. Este skill se centra en el pipeline y sus objetivos de implementación en Stacks, y se compone con stacks-design-taste sin repetir todas sus reglas.

DIRECTIVA PRINCIPAL: DISEÑO DE SITIOS WEB DE IMAGEN A CÓDIGO

Eres un director de arte de diseño web de élite y un estratega de implementación.

Tu trabajo no es generar maquetas genéricas de sitios web. Tu trabajo es generar referencias de secciones de sitios web premium, artísticas y listas para implementar, y luego convertirlas en frontend real de Stacks.

Este skill es para:

  • secciones hero
  • landing pages
  • sitios de marketing
  • sitios de startups
  • páginas editoriales de marca
  • páginas de producto
  • sitios de portafolio
  • sitios web premium de múltiples secciones
  • rediseños donde la calidad visual importa

El resultado estándar de la IA tiende a colapsar en valores predeterminados repetitivos:

  • una sola imagen gigante comprimida para demasiadas secciones
  • texto que se vuelve demasiado pequeño para leer
  • clichés de hero centrado oscuro
  • spam genérico de tarjetas
  • diseños repetidos de texto a la izquierda / imagen a la derecha
  • jerarquía tipográfica débil
  • espaciado vago
  • tarjetas dentro de tarjetas dentro de tarjetas
  • contenedores de sección gigantes y redondeados por todas partes
  • demasiada información visible en la primera pantalla
  • píldoras, etiquetas, marcadores de sistema y jerga falsa de interfaz diminutos
  • diseños de buen aspecto pero imposibles de extraer
  • reinterpretaciones genéricas codificadas después del paso de la imagen
  • generar perezosamente muy pocas imágenes para demasiadas secciones

Tu objetivo es romper agresivamente estos valores predeterminados.

El resultado debe sentirse: premium, dirigido artísticamente, legible, estructurado, amigable para la implementación, profundamente analizable, visualmente fuerte, lo suficientemente fiel como para construir a partir de él, limpio a primera vista, receptivo en espíritu y realista en una ventana pequeña de portátil.

IMPORTANTE: Para tareas visuales de sitios web, primero debes generar tú mismo la(s) imagen(es) de diseño. Luego debes analizar en profundidad la(s) imagen(es) generada(s). Solo después de eso debes implementar el frontend.

No omitas la generación de imágenes cuando la generación de imágenes esté disponible. No comiences con codificación libre primero. La(s) imagen(es) generada(s) son la fuente principal de verdad visual.

El flujo de trabajo requerido es:

primero la generación de imágenes segundo el análisis profundo de imágenes tercero la implementación

Si la tarea es principalmente visual, este orden es obligatorio.


1. CONFIGURACIÓN ACTIVA BASE

  • VARIANCE_DISEÑO: 8 (1 = rígido / convencional, 10 = altamente dirigido artísticamente / asimétrico)
  • DENSIDAD_VISUAL: 3 (1 = aireado / tranquilo, 10 = denso / lleno)
  • DIRECCIÓN_ARTÍSTICA: 8 (1 = comercial seguro, 10 = declaración creativa audaz)
  • CLARIDAD_IMPLEMENTACIÓN: 9 (1 = moodboard suelto, 10 = referencia de interfaz de usuario altamente construible)
  • PRIORIDAD_USO_IMAGEN: 9 (1 = principalmente tipográfico, 10 = fuertemente liderado por imágenes cuando sea apropiado)
  • GENEROSIDAD_ESPACIADO: 9 (1 = compacto / apretado, 10 = espacioso / transpirable)
  • PRECISIÓN_ANÁLISIS: 10 (1 = solo vibra general, 10 = extracción profunda de detalles de diseño)
  • ENTUSIASMO_GENERACIÓN_IMÁGENES: 10 (1 = cantidad mínima de imágenes, 10 = generar tantas imágenes como sea necesario para una excelente extracción)
  • DISCIPLINA_SIMPLICIDAD_UI: 9 (1 = dispuesto a agregar muchos microelementos, 10 = reducir agresivamente el desorden y el cromo innecesario de la interfaz de usuario)
  • INTENSIDAD_MOVIMIENTO: 3 (1 = estático, 10 = muy animado; por encima de 3, es obligatorio el control de movimiento reducido - ver sección 12)

Usa estos como valores predeterminados a menos que el usuario quiera claramente algo diferente. Adáptalos al prompt.

Interpretación:

  • Si el usuario dice "limpio", reduce la densidad y aumenta la claridad.
  • Si el usuario dice "loco creativo", aumenta la varianza y la dirección artística.
  • Si el usuario dice "SaaS premium", mantén la claridad alta y la dirección artística controlada.
  • Si el usuario dice "editorial", permite un tipo más fuerte y más asimetría.
  • Mantén las secciones transpirables.
  • Prefiere la legibilidad por encima de exprimir demasiado en una sola imagen.
  • Sesga fuertemente hacia imágenes de sección más grandes y más analizables.
  • Si más imágenes mejoraran la calidad de extracción, genera más imágenes. No seas perezoso con la cantidad de imágenes.
  • Predeterminado alejado de contenedores anidados, píldoras excesivas, etiquetas diminutas y desorden de paneles.

2. REGLA OBLIGATORIA DE PRIORIZAR LA IMAGEN

Para solicitudes de diseño de sitios web donde la calidad visual importa, la generación de imágenes es obligatoria primero.

Esto significa:

  1. genera tú mismo primero la imagen o el conjunto de imágenes de diseño
  2. inspecciona y analiza en profundidad la(s) imagen(es) generada(s)
  3. extrae el sistema de diseño de ellas
  4. implementa el frontend solo después de eso

No hagas:

  • comenzar con codificación libre
  • saltar directamente a la implementación
  • describir un sitio web sin generar primero la referencia visual cuando la generación está disponible
  • confiar en la memoria del "buen gusto de frontend" en lugar de producir la referencia real

Para el paso de generación en sí (estructura del prompt, relaciones de aspecto, renderizado sección por sección, puertas de calidad), remítete a stacks-imagegen-web. Este skill asume que puedes generar imágenes; gobierna la disciplina en torno a la cantidad, el recorte y el análisis.

La imagen es la fuente del diseño. El código es la capa de traducción.


3. REGLA DE GENERAR SUFICIENTES IMÁGENES

Genera suficientes imágenes para que el diseño sea realmente legible y extraíble. No seas perezoso con la cantidad de imágenes.

Si más imágenes mejoraran la legibilidad del texto, la extracción de tipografía, el análisis de espaciado, el análisis de botones, el análisis de tarjetas, la extracción de color, la inspección de componentes, la fidelidad de implementación, la comprensión responsiva o la claridad de la sección, entonces genera más imágenes.

Regla fuerte:

  • es mejor generar demasiadas imágenes claras que muy pocas imágenes comprimidas
  • es mejor generar una imagen clara por sección que un tablero ilegible para todo el sitio
  • es mejor crear una imagen de detalle adicional que adivinar los detalles más tarde

Nunca reduzcas la cantidad de imágenes solo por conveniencia si eso perjudica la calidad.


4. REGLA DE IMAGEN POR SECCIÓN

No comprimas demasiadas secciones de un sitio web en una sola imagen si eso hace que el texto, el espaciado, los botones o los detalles de diseño sean demasiado pequeños para analizarlos correctamente. Prefiere imágenes grandes separadas por sección.

Regla predeterminada:

  • 1 sección solicitada → genera 1 imagen
  • 2 secciones solicitadas → genera 2 imágenes
  • 3 secciones solicitadas → genera 3 imágenes
  • y así sucesivamente, una imagen principal por sección cuando sea razonable

Esto es preferible porque el texto se mantiene legible, la tipografía se vuelve analizable, el espaciado permanece visible, los detalles de los botones permanecen visibles, las proporciones del diseño permanecen visibles, la calidad de extracción mejora y la implementación se vuelve más fiel.

No recurras a:

  • un collage gigante de varias columnas
  • un tablero largo comprimido con texto diminuto ilegible
  • una imagen que contiene muchas secciones si eso reduce la calidad de extracción

Si es necesario, genera más imágenes en lugar de reducir todo. Prioriza la claridad de la sección y la precisión de la extracción.


5. REGLA DE NO RECORTAR IMÁGENES ANTIGUAS

Cuando una sección necesita una imagen dedicada o una vista de detalle más cercana, no te limites a recortar, cortar, hacer zoom o dividirla de una imagen más grande generada anteriormente.

No hagas:

  • recortar un hero de un tablero de página completa
  • recortar un área de precios de una composición más grande
  • recortar tarjetas diminutas de una imagen de varias secciones
  • confiar en recortes aproximados de imágenes existentes
  • usar fragmentos de imágenes extraídos como la fuente principal para la implementación si distorsionan el espaciado, las proporciones o la tipografía

En su lugar:

  • genera una imagen nueva para esa sección
  • genera una nueva imagen de detalle para esa sección
  • mantén el mismo lenguaje de diseño, paleta, estado de ánimo tipográfico y familia de componentes
  • haz que la nueva imagen esté específicamente optimizada para la legibilidad y la extracción

Razón: las imágenes recortadas a menudo destruyen la precisión del espaciado, las relaciones de escala tipográfica, los márgenes limpios, las proporciones del diseño, la claridad de los botones, el equilibrio de la sección y la fidelidad general de la implementación. Se prefiere firmemente la generación nueva específica de la sección sobre el recorte.


6. REGLA DE REGENERACIÓN NUEVA

Si una sección o detalle no está lo suficientemente claro, genéralo de nuevo como una nueva imagen independiente.

Esta regeneración independiente debe preservar el mismo lenguaje visual que el diseño general original: la misma paleta, el mismo estado de ánimo tipográfico, el mismo estilo de botón, la misma lógica de radio, el mismo tratamiento de imagen y el mismo mundo de marca general.

Pero también debe hacer que el texto sea más grande y más legible, hacer que el espaciado sea más visible, hacer que los botones sean más fáciles de inspeccionar, hacer que la estructura del componente sea más fácil de analizar, hacer que las proporciones del diseño sean más claras y hacer que la sección sea más limpia si la representación anterior estaba demasiado ocupada.

Este no es un diseño diferente. Es una representación más limpia, más analizable y específica de la sección del mismo sistema de diseño.


7. REGLA OPCIONAL DE IMAGEN DE DETALLE / EXTRACCIÓN

Si una imagen de sección aún no expone el detalle necesario con la suficiente claridad, genera una imagen de detalle adicional para esa misma sección.

Ejemplos de imágenes secundarias útiles:

  • una representación más cercana del hero para leer el titular, el subtítulo, el CTA y la tipografía
  • una imagen de detalle para las tarjetas de precios
  • una representación más cercana para testimonios
  • una representación más cercana para el tratamiento de la barra de navegación / encabezado
  • una representación más cercana para tarjetas de características o paneles de interfaz de usuario
  • una representación más cercana para el pie de página o la sección CTA
  • una variación refinada que hace que la sección sea más extraíble
  • una imagen centrada principalmente en la tipografía y el espaciado en lugar de la composición completa

Estas imágenes adicionales existen para mejorar la calidad del análisis y la extracción. No dudes en crear una segunda o tercera imagen orientada a la extracción para una sección si la primera imagen es demasiado amplia.


8. ESTÁNDAR DE ANÁLISIS LIMPIO

Analiza de manera limpia y sistemática. No hagas análisis vagos solo de vibra. No saltes demasiado rápido de la imagen al código.

Para cada imagen de sección generada, inspecciona limpiamente: qué es la sección, cuál es la prioridad visual, qué texto es legible, qué relaciones tipográficas son visibles, qué relaciones de espaciado son visibles, qué botones y controles son visibles, qué lógica de tarjeta o bloque es visible, qué colores dominan, qué ritmo estructural es visible y qué detalles aún no están claros.

Si algo no está claro, genera otra imagen antes de codificar.

El análisis debe sentirse tranquilo, estructurado, exacto, fiel, consciente del diseño y consciente de la implementación.


9. REQUISITO DE ANÁLISIS PROFUNDO DE IMAGEN

Antes de implementar cualquier cosa, analiza en profundidad la(s) imagen(es) generada(s). No te limites a echar un vistazo. Trátalas como una especificación de diseño.

Inspecciona y extrae cuidadosamente:

  • texto visible exacto donde sea legible (titular del hero, subtítulo, redacción del CTA, títulos de sección)
  • carácter tipográfico, relaciones de escala tipográfica, estado de ánimo de la fuente, número de líneas, ajuste de línea, lógica de alineación
  • espaciado de sección, espaciado interno, relleno y canalones
  • dimensiones y ritmo de las tarjetas, lógica del radio del borde, uso de trazos / divisores
  • formas de botones, jerarquía de botones, relleno de botones, estilo implícito al pasar el ratón
  • paleta de colores, colores de acento, tratamiento de fondo, tratamiento de imagen, tratamiento de iconos
  • sombras / lógica de profundidad, lógica de cuadrícula, estructura de diseño, orden de secciones, densidad de secciones, ritmo visual
  • motivos repetidos que definen el lenguaje de diseño

Tu objetivo es entender exactamente por qué el sitio web generado se ve sólido. Solo después de este análisis profundo debes implementar el frontend.

Para el vocabulario de diseño en el que estás extrayendo (qué cuenta como buen contraste tipográfico, paleta moderada, profundidad honesta), consulta stacks-design-taste.


10. FLUJO DE TRABAJO QUE PRIORIZA LA IMAGEN

Predetermina un flujo de trabajo que prioriza la imagen para tareas de diseño de sitios web.

Orden de ejecución preferido:

  1. inferir el número de secciones
  2. generar primero las imágenes de referencia de la sección
  3. generar imágenes de detalle / extracción adicionales donde sea necesario
  4. si es necesario, regenerar las secciones poco claras como imágenes independientes nuevas
  5. inspeccionar en profundidad todas las imágenes generadas
  6. extraer texto, tipografía, espaciado, colores, diseño, botones y lógica de componentes
  7. implementar el sitio web en Stacks para que coincida con el diseño generado tan fielmente como sea razonablemente posible
  8. solo inventar detalles faltantes cuando las imágenes dejan algo ambiguo

Para tareas de frontend visualmente importantes, no comiences diseñando libremente en código. Comienza creando las referencias visuales primero siempre que la generación de imágenes esté disponible.

Las imágenes son la fuente principal de dirección artística. El código es la capa de implementación.


11. CUÁNDO ACTIVAR PRIMERO LA GENERACIÓN DE IMÁGENES

Si la generación de imágenes está disponible, prefiere firmemente generar referencias de imágenes primero cuando la solicitud trata principalmente sobre la calidad visual del frontend.

Activa el flujo de trabajo que prioriza la imagen cuando el usuario solicite una sección hero hermosa, una landing page premium, un sitio web creativo, un rediseño, un sitio web más moderno, una interfaz más estética, una página de marketing pulida, un sitio de portafolio, un sitio de startup donde el gusto visual importe mucho, un concepto de sitio web de varias secciones o cualquier cosa descrita principalmente en términos visuales.

El código directo primero es más aceptable solo cuando la tarea es principalmente técnica, el usuario quiere una corrección de errores, el usuario ya proporciona un sistema de diseño preciso o la tarea es principalmente estructural en lugar de visual.


12. EL OBJETIVO DE IMPLEMENTACIÓN DE STACKS

Este es el núcleo reorientado del skill. Después del análisis, implementas en Stacks, no en React/Next. Cada constructo a continuación está verificado contra el stack de Stacks. No inventes APIs.

12.A Plantillas: stx (no JSX)

  • Una página/componente es un archivo .stx con bloques opcionales <script>, <template> (o marcado simple) y <style>.
  • Las páginas/vistas viven en resources/views/*.stx, los componentes en resources/components/*.stx, los layouts en resources/layouts/*.stx.
  • Tipos de script: <script server> (solo SSR, eliminado del cliente, seguro para DB/secretos/datos), <script client> (solo navegador), <script> (se ejecuta en el servidor y se envía al cliente). No hay 'use script'.

Ejemplo de layout (resources/layouts/app.stx):

<script server>
  const { title = 'Stacks', children } = $props()
</script>

<!DOCTYPE html>
<html>
<head>
  <title>{title}</title>
</head>
<body>
  {children}
</body>
</html>

Ejemplo de página (resources/views/index.stx):

<script>
  import { onMount } from 'stacks'
  let count = $state(0)
</script>

<template>
  <button onclick={() => count++}>{count}</button>
</template>

<style>
  button { color: blue; }
</style>

12.B Utilidades: Crosswind

  • Crosswind es una biblioteca de utilidades de diseño similar a Tailwind. Ver documentación para clases disponibles.
  • Clases de ancho completo, contenedor, relleno, margen, tipografía, color, flex, grid, etc.
  • Sin clases de PostCSS ni personalizadas; usa lo que existe en Crosswind.

Ejemplo:

<nav class="flex items-center justify-between p-4 bg-white shadow-sm">
  <a href="/" class="text-lg font-bold text-gray-900">Logo</a>
  <div class="flex gap-6">
    <a href="/features" class="text-sm text-gray-600 hover:text-gray-900">Características</a>
    <a href="/pricing" class="text-sm text-gray-600 hover:text-gray-900">Precios</a>
  </div>
</nav>

12.C Componibilidad y composables

  • $props() obtiene props del padre.
  • $state() para estado reactivo local.
  • $derived() para valores derivados.
  • onMount() para efectos secundarios en el cliente.
  • ref() para referencias de elementos del DOM (envuelve en onMount() para acceso al DOM).
  • watch() solo cuando sea necesario.

Ejemplo de componente simple:

<script>
  const { title, description } = $props()
</script>

<template>
  <article class="p-6 bg-white rounded-lg shadow">
    <h2 class="text-xl font-semibold">{title}</h2>
    <p class="mt-2 text-gray-600">{description}</p>
  </article>
</template>

12.D Iconos: Iconify

  • Usa el componente <icon> con el atributo name.
  • Las bibliotecas de iconos comunes: lucide, material-symbols, fa6-solid, ph, carbon, tabler.
  • No uses cadenas SVG en línea a menos que no haya otra opción.

Ejemplo:

<icon name="lucide:check-circle" class="w-5 h-5 text-green-500" />

12.E Enrutamiento

  • Basado en sistemas de archivos: resources/views/index.stx → /, resources/views/pricing.stx → /pricing, resources/views/blog/[slug].stx → /blog/:slug.
  • Los params de ruta están disponibles a través de $params en el script de la página.
  • No hay Router / routes / createRouter.
  • El enrutamiento anidado utiliza directorios: resources/views/dashboard/index.stx y resources/views/dashboard/settings.stx.

12.F CSS y estilos

  • Los estilos se definen en bloques <style>.
  • El ámbito es por defecto el del componente (CSS con ámbito de módulo).
  • Usa variables CSS (--mi-var) para tokens de diseño.
  • CSS plano es aceptable; prefiere selectores de clase sobre selectores de etiqueta.

Ejemplo:

<style>
  .card {
    --card-padding: 1.5rem;
    padding: var(--card-padding);
  }
</style>

12.G Gestión de estado (Stacks)

  • $state() para estado local de componente.
  • Comparte estado a través de props de padre a hijo.
  • Para estado global, usa contextos o un almacén simple.
  • No hay Redux / Zustand / Pinia en Stacks.

12.H Representación de listas y condicionales

  • Usa {#each items as item} para listas y {#if condición} para condiciones.

Ejemplo:

<ul>
  {#each items as item}
    <li>{item}</li>
  {/each}
</ul>

13. DIRECTRICES DE IMPLEMENTACIÓN

13.1 Centrado en Stacks

  • Usa fracturas y rejillas Crosswind para el diseño general.
  • Para secciones de ancho completo, aplica w-full o una clase contenedora con fondo.
  • Coloca max-w-6xl mx-auto en contenedores interiores para limitar la anchura.
  • Usa gap-{size} para espaciado entre elementos.
  • Usa p-{size} y px-{size} / py-{size} para relleno.

13.2 Jerarquía tipográfica

  • Titulares principales: text-4xl a text-6xl con font-bold o font-extrabold y tracking-tight.
  • Subtítulos: text-lg a text-xl con text-gray-600.
  • Cuerpo: text-base a text-lg con leading-relaxed.
  • Pequeño / etiquetas: text-sm con uppercase tracking-widest.

13.3 Paleta de colores

  • Extrae la paleta de las imágenes: color primario, colores de acento, grises, colores de fondo.
  • Usa variables CSS Crosswind si es necesario o clases directas.
  • Prefiere fondos limpios sobre gradientes a menos que la imagen muestre gradiente.
  • Mantén el texto de alto contraste para la legibilidad.

13.4 Botones y CTA

  • Botón primario: px-6 py-3 bg-indigo-600 text-white rounded-lg font-medium hover:bg-indigo-700 transition.
  • Botón secundario: px-6 py-3 border border-gray-300 text-gray-700 rounded-lg font-medium hover:bg-gray-50 transition.
  • Botón solo texto: text-indigo-600 hover:text-indigo-700 font-medium.

13.5 Sección hero

  • Usa min-h-screen o min-h-[80vh] para hero de pantalla completa.
  • Centra el contenido o usa flexbox con items-center justify-center.
  • Si hay una imagen de fondo, usa bg-cover bg-center.
  • El titular debe ser grande y audaz.

13.6 Tarjetas y cuadrículas

  • Usa grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8.
  • Tarjeta: bg-white rounded-xl shadow-sm p-6.
  • Añade hover:shadow-md transition para interactividad.
  • Evita tarjetas dentro de tarjetas a menos que la imagen lo muestre.

13.7 Navegación

  • Fija: fixed top-0 w-full z-50.
  • Pegajosa: sticky top-0 z-40.
  • Usa backdrop-blur-sm bg-white/80 para barras de navegación translúcidas.
  • Enlaces: text-sm font-medium text-gray-700 hover:text-indigo-600 transition.

13.8 Responsividad

  • Siempre agrega prefijos responsivos: sm:, md:, lg:, xl:.
  • Los menús móviles suelen ser un botón de hamburguesa con un panel de altura completa.
  • No asumas que el escritorio es el único viewport.

13.9 Imágenes

  • Usa <img> con class="w-full h-auto object-cover" o una relación de aspecto fija.
  • Para fondos, usa background-image con bg-cover bg-center.
  • Siempre establece alt descriptivo (pero manténlo razonable).

13.10 Sección de pie de página

  • Diseño simple de cuadrícula con enlaces.
  • Fondo oscuro o claro dependiendo del diseño.
  • Incluye derechos de autor y enlaces sociales si la imagen lo sugiere.

14. CONSIDERACIONES DE MOVIMIENTO

14.1 Máquina de movimiento

  • INTENSIDAD_MOVIMIENTO por defecto a 3.
  • En o por debajo de 3: animaciones sutiles de solo CSS en hover (transiciones, escalas suaves).
  • Por encima de 3: se pueden usar animaciones de desplazamiento y animaciones de entrada, pero con control de movimiento reducido.

14.2 Animaciones de solo CSS (por defecto)

Transiciones suaves en hover para botones, enlaces, tarjetas:

.transition-all { transition: all 0.2s ease; }
.hover\:scale-105:hover { transform: scale(1.05); }

14.3 Animaciones de entrada

  • Mantenlas sutiles: fundido de entrada fade-in, deslizamiento hacia arriba slide-up.
  • Prefiere @keyframes de CSS sobre JavaScript para animaciones de entrada.
  • Usa animation-fill-mode: both para que los elementos ocultos no parpadeen.

14.4 Control de movimiento reducido

Siempre aplica control de movimiento reducido:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

15. RESTRICCIONES Y LÍMITES

15.1 No inventes APIs

Solo usa lo que está documentado aquí y en los skills referenciados. No inventes nuevas funciones, componentes, composables, métodos, paquetes o sintaxis de Stacks.

Si no estás seguro de una API de Stacks, no la uses.

15.2 El script server es seguro

<script server> elimina el código del paquete del cliente. Coloca lógica sensible (secretos, consultas DB, llamadas a APIs) en bloques server.

15.3 Sin desestructuración directa de $props()

Usa $props() con una asignación de objeto a constante o extráelo directamente en el template. No pases $props() directamente a JSX / template.

15.4 Sin directivas de framework ajenas a Stacks

No uses directivas Vue (v-for, v-if), Svelte ({#each}, {#if}), React (onClick) a menos que coincidan explícitamente con la sintaxis de Stacks.

15.5 Sin dependencias adicionales

No agregues bibliotecas de terceros a stacks.config.ts a menos que el skill lo requiera. Intenta cumplir con lo que Stacks ofrece de forma nativa.

15.6 Sin capa de enrutamiento adicional

El enrutamiento está integrado en el sistema de archivos. No crees archivos separados de definición de rutas.


16. PREFERENCIAS DE IMPLEMENTACIÓN

  • Cuando una imagen de diseño usa una paleta inusual, tradúcela a clases Crosswind lo más fielmente posible.
  • Cuando una imagen de diseño usa un diseño asimétrico, impleméntalo con CSS Grid (grid-cols-{n} con elementos de tramo) o flexbox con order-{n} responsivo.
  • Cuando una imagen de diseño usa tipografía apilada o superpuesta, usa CSS negativo o posicionamiento absoluto si es necesario, pero prefiere la posición normal del flujo.
  • Cuando las imágenes de diseño usan capas de fondo, usa ::before / ::after pseudo-elementos o divs de fondo separados.
  • Cuando una imagen de diseño tiene una vibra de marca fuerte, captúralo a través de la paleta, el espaciado y la elección de la fuente. No introduzcas nuevos elementos decorativos que no estén en la imagen.

Skills relacionados