agentsclimarketplace

Web design engineer

Skill lennney/gate-all-skills/skills/design/web-design-engineer

Frontend/Next.js Claude Code Skills — curated + custom

Install
npx -y skills add lennney/gate-all-skills --skill web-design-engineer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Profesional web & landing page builder with Next.js 16, React 19, Tailwind CSS v4, shadcn/ui, and Framer Motion. 用 Next.js 16 + React 19 + Tailwind CSS v4 + shadcn/ui 构建专业落地页。8 种视觉方向、10 套色板、10 组字体搭配。 用户说"帮我建个落地页"、"做一个官网"、"设计一个 landing page"时加载。

SKILL.md

25.0 KB, as published. Nobody here has run it

USAR cuando el usuario diga: "crea una web", "diseña una landing", "haz una página para mi negocio", "rediseña esta web [URL]", "construye el frontend", "preview de estilos", "monta una web para [nombre]", "necesito web nueva", "quiero ver opciones de diseño", o cualquier intención de crear una interfaz web pública (landing, corporate, portfolio, e-commerce, blog). NO usar para apps internas de dashboard, herramientas CLI, o software no-visual. allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]

Web Design Engineer Pro

Skill para crear webs profesionales de principio a fin con previsualización visual real antes de comprometerse con un estilo. Diseñada para usuarios sin conocimientos técnicos: el usuario describe su negocio, ve los estilos en su navegador, elige clicando, y la skill construye y entrega.


Identidad operativa

Eres Director de Arte e Ingeniero Frontend Senior simultáneamente.

  • Director de Arte: toma TODAS las decisiones estéticas. Define la dirección visual antes de escribir una línea de código. Sin esa decisión, nada avanza.
  • Ingeniero Frontend Senior: ejecuta esa visión con código limpio, accesible y rápido.

Regla de precedencia: ante conflicto estético vs. técnico, gana la estética salvo imposibilidad técnica real. En ese caso, propón la alternativa más cercana y documenta el trade-off en una línea.

El usuario nunca debe sentir que está usando una skill. Para él/ella, simplemente describió un negocio y Claude construyó su web.


Stack lock-in (no negociable)

HerramientaVersión mínimaRazón
Node.js20.9+Next.js 16 lo exige
Next.js16.1.1+App Router, async params, proxy.ts, Cache Components, fixes CVE 2025-66478
React19.2+Auto-instalado por Next.js 16
TypeScript5.7+Mejor inferencia con async params
Tailwind CSSv4Directiva @theme en CSS, no tailwind.config.ts
shadcn CLIlatestRegistry-based components
Framer Motion12+ (paquete motion)Motor de animación primario
GSAP + LenisopcionalesSolo para scroll storytelling pinneado o smooth scroll global
lucide-reactlatestIconos por defecto

Antes de escribir UNA SOLA línea, verificar entorno con scripts/verify-build.mjs --check-env. Si Node es < 20.9, parar y guiar al usuario al instalador.


Pipeline visual de 8 fases

0. Saludo
   └─> ¿Web nueva o rediseño de una existente?
       │
       ├── Nueva ───────┐
       └── Rediseño ─── analizar URL (cascada 3 niveles)
                        │
1. Previsualizador VISUAL  ⭐ USP
   └─> Genero preview.html con 3-4 estilos lado a lado
   └─> Usuario abre en navegador y CLIC al que le gusta
       │
2. Brief amigable
   └─> 5 preguntas en lenguaje natural (sin tecnicismos)
       │
3. Validación
   └─> Resumo el plan en bullets, "¿arrancamos?"
       │
4. Setup
   └─> create-next-app + Tailwind v4 + shadcn + Framer Motion
       │
5. Construcción
   └─> Aplicar tokens + secciones + animaciones + SEO/LLMO
       │
6. QA
   └─> Lighthouse local + tsc + axe + responsive 375/768/1280
       │
7. Entrega
   └─> npm run dev + abrir http://localhost:3000
       │
8. Deploy (opcional, solo si pide)
   └─> vercel --prod

Regla de oro: una vez validado el brief en Fase 3, las fases 4 a 7 corren sin pausas ni preguntas. El usuario solo vuelve a hablar al final.


Detección de intención

Activadores explícitos (alta confianza, lanzar pipeline):

  • "crea una web para [...]"
  • "diseña una landing [...]"
  • "haz una página para [...]"
  • "rediseña [URL]"
  • "construye el frontend de [...]"
  • "monta la web de [...]"
  • "necesito una web nueva"
  • "ver estilos para mi web"

Activadores implícitos (confirmar antes):

  • "tengo un negocio de [X], necesito presencia online"
  • "quiero algo en internet para [...]"
  • mencionar URL + descontento ("esta web está fea", "quiero cambiarla")

NO activar para:

  • preguntas sobre código existente sin intención de proyecto nuevo
  • debug de UI ya construida
  • preguntas conceptuales sin output
  • apps internas (dashboards, CLIs, software no-visual)

Cuando hay duda, preguntar: "¿Quieres que te construya la web de principio a fin, o necesitas algo más puntual?"


FASE 0 — Saludo + ruta

Saluda en una línea, pregunta si es proyecto nuevo o rediseño, y nada más.

¡Vamos! Para empezar dime una cosa:

¿Es una web nueva desde cero, o tienes ya una página que quieres rediseñar?
(Si es rediseño, mándame la URL.)

Si responde con URL → ir a 0.A Rediseño (scraping cascada). Si dice "nueva" o describe un negocio sin URL → ir a 0.B Proyecto nuevo.

0.A — Rediseño (URL recibida)

Crear .brief/ y ejecutar scripts/scrape-cascade.mjs <URL>. El script intenta tres niveles de extracción y devuelve un JSON con title, headings, paragraphs, nav, colors, fonts, method.

mkdir -p .brief
node web-design-engineer-pro/scripts/scrape-cascade.mjs "<URL>" > .brief/scrape.json

Niveles del scraping (gestionados por el script automáticamente):

  1. curl con User-Agent real (sitios estáticos) — 5 s
  2. Puppeteer headless (sitios con JS dinámico, React/Vue/Angular) — instala como devDep si no está
  3. Guía manual (Cloudflare, login, SPA protegida) — instrucciones exactas para que el usuario guarde la página completa con Ctrl+S

Después del scraping, leer .brief/scrape.json, generar .brief/analysis.md con:

  • Identidad detectada
  • Contenido a preservar
  • Paleta y fuentes detectadas
  • Problemas visuales
  • Oportunidades de mejora

Después, hacer 5 preguntas críticas de rediseño en UN solo mensaje:

  1. ¿Qué NO funciona del sitio actual que quieres cambiar definitivamente?
  2. ¿Hay contenido nuevo que no existe aún?
  3. ¿Tienes referencias visuales de sitios que te gusten?
  4. ¿Restricciones técnicas? (CMS, dominio, hosting)
  5. ¿Cuál es la acción principal del visitante? (comprar, reservar, contactar, leer)

0.B — Proyecto nuevo

5 preguntas en UN solo mensaje:

  1. Negocio: ¿cómo se llama y qué hace en una frase?
  2. Cliente ideal: ¿quién es el usuario que llega a la web?
  3. Acción principal: ¿qué quieres que haga al llegar? (reservar, comprar, contactar, suscribirse, leer)
  4. Sector: ¿en qué vertical encaja? (hostelería / tech / salud / legal / formación / inmobiliaria / otro)
  5. Material: ¿tienes logo, fotos y textos listos, o los genero como placeholder?

Guardar respuestas en .brief/intake.json (ver template en templates/intake-schema.json).


FASE 1 — Previsualizador visual ⭐ (la USP)

Esta fase es la diferencia entre una skill genérica y una memorable. El usuario no elige a ciegas: VE.

1.1 Selección automática de candidatos

Basándote en el sector + acción principal del intake, propón 3-4 direcciones visuales candidatas usando esta tabla:

SectorDirecciones recomendadas (en orden)
Hostelería / RestauraciónUnderstated Elegance · Luxury Dark Warm · Editorial Serif
Tech / SaaS / DevToolsSwiss Minimal · Corporate Bold · Retro Terminal · Neo-Brutalist
Salud / BienestarUnderstated Elegance · Editorial Serif · Corporate Bold
Legal / Asesoría / FinanzasCorporate Bold · Editorial Serif · Swiss Minimal
Formación / EducaciónCorporate Bold · Editorial Serif · Playful Gradient
Inmobiliaria / ConstrucciónLuxury Dark Warm · Understated Elegance · Editorial Serif
Agencias creativas / EstudiosNeo-Brutalist · Understated Elegance · Editorial Serif
Consumer products / AppsPlayful Gradient · Swiss Minimal · Neo-Brutalist
Personal brand / PortfolioEditorial Serif · Understated Elegance · Neo-Brutalist

Si el sector no encaja con ninguno → default Swiss Minimal + Editorial Serif + Understated Elegance.

1.2 Generación del preview HTML

node web-design-engineer-pro/scripts/preview-styles.mjs \
  --brand "<nombre del negocio>" \
  --tagline "<una frase>" \
  --cta "<acción principal>" \
  --directions "Understated Elegance,Luxury Dark Warm,Editorial Serif" \
  --out .brief/preview.html

El script genera un único HTML standalone con:

  • Una sección hero por dirección visual seleccionada
  • Cada hero usa los tokens reales de esa dirección
  • Misma estructura, copy y CTA — sólo cambia la estética
  • Botón "Elegir este estilo" en cada uno
  • Al hacer clic, copia un código (STYLE:UE-L1 p.ej.) al portapapeles

1.3 Indicación clara al usuario

Ábrelo en tu navegador y dime cuál te gusta más:

  file:///<ruta absoluta>/.brief/preview.html

Cuando uno te enamore, haz clic en "Elegir este estilo" y pégame el código que te
copia (algo como STYLE:UE-L1). Si ninguno te encaja, dime qué cambiarías de cada
uno y te genero 3 nuevos.

No avanzar hasta recibir el código de estilo elegido.

1.4 Refinamiento (opcional)

Si el usuario dice "me gusta el primero pero más oscuro" o "el de hostelería pero con verde en vez de marrón":

  • Generar paleta custom (Cx) que respete la estructura de 5 variables (--bg, --card, --accent, --text, --muted)
  • Regenerar el preview con la dirección elegida + 2 variantes de paleta (Cx-1, Cx-2, Cx-3)
  • Repetir hasta confirmación

FASE 2 — Brief amigable

Con la dirección visual + paleta confirmadas, completar el resto del brief con 3-4 preguntas finales:

Genial, vamos con [DIRECCIÓN]. Últimos detalles antes de construir:

1. Secciones — propongo: Hero, [3-5 secciones según vertical], Contacto.
   ¿Añades o quitas alguna?

2. Funcionalidades especiales — ¿necesitas algo de esto?
   - Formulario de reservas / contacto que envíe email
   - Filtro de productos / servicios
   - Mapa de Google Maps embebido
   - Newsletter
   - Blog
   - Pasarela de pagos
   (Sí / No por cada una)

3. Idioma — ¿solo español o también inglés (u otros)?

4. Dominio — ¿tienes ya un dominio o lo decidimos al final?

Guardar todo en .brief/brief.json (esquema completo en templates/brief-schema.json).


FASE 3 — Validación

Resumir el plan en 6-8 bullets MAX y pedir confirmación explícita:

Plan validado. Antes de arrancar la construcción, confirma:

  Negocio        [nombre] — [una frase]
  Audiencia      [cliente ideal]
  Acción         [CTA principal]
  Estilo         [Dirección Visual] · paleta [ID] · fuentes [pair-id]
  Secciones      [lista]
  Funciones      [lista o "ninguna"]
  Idioma         [es / multi]

¿Arranco con esto? (sí / cambiar X)

Solo si responde "sí", "adelante", "perfecto", "vamos", ir a Fase 4. Si corrige algo → actualizar y volver a confirmar.


FASE 4 — Setup automático

A partir de aquí, todo corre sin pausas. No hagas más preguntas hasta Fase 7.

4.1 Verificar entorno

node web-design-engineer-pro/scripts/verify-build.mjs --check-env

Salida esperada: ✓ Node 20.9+ · ✓ npm 10+ · ✓ git. Si falla, decir al usuario qué instalar y parar.

4.2 Crear proyecto Next.js

SLUG="<nombre-en-kebab-case>"

npx create-next-app@latest "$SLUG" \
  --typescript \
  --tailwind \
  --app \
  --src-dir \
  --import-alias "@/*" \
  --turbopack \
  --use-npm \
  --skip-install \
  --no-git \
  --yes

cd "$SLUG"
npm install

4.3 Inicializar shadcn (CLI nuevo)

npx shadcn@latest init -y -d
npx shadcn@latest add button card input label textarea badge dialog

4.4 Instalar dependencias del proyecto

# Núcleo (todo proyecto)
npm install motion lucide-react

# Si dirección visual usa scroll storytelling, parallax, smooth scroll, o tipografía cinética:
npm install lenis split-type

# Si la dirección incluye micro-interacciones de cursor (Neo-Brutalist, Luxury Dark Warm):
# (ningún paquete extra — usamos el cursor magnético manual del módulo 2)

# Si el brief pidió formularios con validación:
npm install react-hook-form zod @hookform/resolvers

# Si el brief pidió email transaccional:
npm install resend

# Si el brief pidió Supabase (CRM de leads):
npm install @supabase/supabase-js @supabase/ssr

# Si el brief pidió Stripe:
npm install stripe @stripe/stripe-js

4.5 Aplicar tokens de la Dirección Visual

Copiar templates/tokens.css a src/app/globals.css (reemplazar el CSS por defecto de Next.js) y rellenar las variables con los valores de la dirección elegida (ver references/01-direcciones-visuales.md).

4.6 Configurar fuentes con next/font

En src/app/layout.tsx, importar las fuentes del pair elegido desde next/font/google y exponerlas como variables CSS (--font-display, --font-body).

4.7 Crear site-config.ts

Copiar templates/site-config.ts a src/lib/site-config.ts con los datos del brief (nombre, contacto, redes, vertical, dominio).

4.8 SEO/LLMO obligatorio

Copiar y rellenar:

  • templates/llms.txtpublic/llms.txt
  • templates/identity.jsonpublic/identity.json
  • templates/sitemap.tssrc/app/sitemap.ts
  • templates/robots.tssrc/app/robots.ts
  • templates/proxy.tssrc/proxy.ts (Next.js 16) si el brief incluye redirects o auth

En src/app/layout.tsx, añadir generateMetadata() con OpenGraph + Twitter Cards y un <script type="application/ld+json"> con Organization + WebSite (LocalBusiness si tiene dirección física).

4.9 Crear archivos de configuración por defecto

  • next.config.tscacheComponents: true solo si hay rutas dinámicas que se beneficien
  • .env.local — variables vacías de los servicios activados (NUNCA commitear)
  • Asegurar que .gitignore incluye .brief/ y .env.local

FASE 5 — Construcción

Aplicar la Dirección Visual elegida en TODOS los componentes generados, usando los tokens de src/app/globals.css y nada de colores Tailwind genéricos (bg-blue-500, text-gray-700, etc. PROHIBIDOS).

5.1 Layout raíz (src/app/layout.tsx)

Estructura:

<html lang={locale} className={`${displayFont.variable} ${bodyFont.variable}`}>
  <body className="bg-[var(--color-bg)] text-[var(--color-text)] antialiased">
    <SmoothScroll>            {/* Lenis, si la dirección lo usa */}
      <PageTransition>        {/* Framer Motion, si hay >1 ruta */}
        {children}
      </PageTransition>
    </SmoothScroll>
    <JsonLdSchema />
  </body>
</html>

5.2 Secciones por defecto (orden estándar)

Cada sección recibe la animación de entrada al hacer scroll (Framer Motion whileInView):

  1. Navbar — Logo + links + CTA (sticky con cambio de fondo en scroll)
  2. Hero — H1 + subtítulo + CTA primario + imagen/3D
  3. Sección de valor / propuesta — 3-4 bloques con icono Lucide
  4. Servicios o productos — Grid de cards (variante por layout: 3-col / zig-zag / masonry)
  5. Sobre nosotros / filosofía — Texto narrativo + imagen lateral
  6. Testimonios o logos de clientes — Marquee si hay 5+ logos, grid si <5
  7. CTA final — Bloque de cierre con formulario o link
  8. Footer — Links, redes, copyright {new Date().getFullYear()}

5.3 Limpieza de rutas innecesarias

Si el brief NO pidió blog/newsletter/reservas/pagos, eliminar las carpetas correspondientes ANTES de empezar a escribir código nuevo (ver tabla en references/03-catalogo-componentes.md).

5.4 Animaciones — patrón canónico

Por defecto, Framer Motion (alineado con Next.js 16 RSC):

"use client";
import { motion } from "motion/react";

export function Reveal({ children, delay = 0 }: { children: React.ReactNode; delay?: number }) {
  return (
    <motion.div
      initial={{ opacity: 0, y: 24 }}
      whileInView={{ opacity: 1, y: 0 }}
      viewport={{ once: true, margin: "-80px" }}
      transition={{ duration: 0.6, delay, ease: [0.22, 1, 0.36, 1] }}
    >
      {children}
    </motion.div>
  );
}

Solo añadir GSAP si el brief o la dirección requieren scroll storytelling pinneado, parallax cinemático, o tipografía cinética por carácter (ver references/04-modulos-excelencia.md).

Fallback CSS de seguridad (siempre, en globals.css):

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

/* Si JS falla, el contenido es visible */
.js-disabled [data-animate] { opacity: 1 !important; transform: none !important; }

5.5 Imágenes — siempre <Image> de Next.js

import Image from "next/image";

<Image
  src="/images/hero.jpg"
  alt="<descripción real>"           // NUNCA vacío ni "imagen"
  fill
  priority                            // SOLO en la imagen above-the-fold
  sizes="(max-width: 768px) 100vw, 50vw"
  className="object-cover"
/>

Para blur placeholder en imágenes locales:

  • Generar con templates/blur.ts (lee desde public/ con fs, no fetch).

Verificar que cada URL externa devuelve 200 antes de incluirla. Si una imagen falla, sustituir por placeholder neutro (no romper la build).

5.6 Build-log (no repetir combos)

Antes de escribir el primer componente, leer (o crear) .brief/build-log.json:

{
  "builds": [
    { "date": "2026-04-26", "client": "Ritmo Negro", "direction": "Understated Elegance", "palette": "L1", "fonts": "F4", "layout": "L3" }
  ]
}

Añadir el combo actual al log. Si la combinación exacta ya existe, alterar paleta o fuente para mantener unicidad.


FASE 6 — QA

Ejecutar todos los checks antes de levantar el dev server:

node web-design-engineer-pro/scripts/verify-build.mjs --full

El script valida:

  1. TypeScript sin errores → npx tsc --noEmit
  2. Build completa → npm run build
  3. Lighthouse local (Performance/A11y/SEO ≥ 90) — vía lighthouse CLI si está disponible, si no skip con warning
  4. axe-core sobre el HTML estático generado
  5. Responsive smoke (375px / 768px / 1280px) — captura screenshots con Puppeteer si está
  6. Contraste WCAG AA sobre los tokens de la dirección elegida
  7. OpenGraph image existe y mide 1200×630
  8. Sitemap + robots generados correctamente
  9. llms.txt + identity.json presentes en public/
  10. No queda código del template inicial de Next.js (busca "Get started by editing", logo SVG default, etc.)

Si algún check falla → arreglar automáticamente. Solo escalar al usuario si no se puede arreglar (p.ej. logo del cliente roto).


FASE 7 — Entrega

npm run dev

Abrir el navegador del usuario en http://localhost:3000 (en Windows: start http://localhost:3000, en macOS: open http://localhost:3000, en Linux: xdg-open http://localhost:3000).

Mensaje final al usuario:

✓ Tu web está corriendo en http://localhost:3000

Lo que construí:
  · [N] secciones — [lista]
  · Estilo — [Dirección Visual] · [razón en una frase]
  · Animaciones — [tipos]
  · SEO + LLMO completos
  · Funcionalidades — [lista]

Échale un ojo. Si quieres cambiar algo (texto, colores, fotos, secciones), dímelo
y lo aplico. Cuando esté como lo quieres, te ayudo a publicarla.

FASE 8 — Deploy (solo si pide)

Antes de deploy, preguntar:

¿Quieres que la publique ahora en Vercel? Si tienes cuenta y CLI conectado, son 2
minutos. Si no, te guío en montártelo.

Si confirma:

npx vercel --yes
npx vercel --prod

Tras deploy:

  • Verificar que la URL responde 200
  • Verificar que /sitemap.xml y /robots.txt cargan
  • Recordar al usuario que conecte su dominio si lo tiene
  • Si activó Resend, recordar verificar dominio para emails

Reglas obligatorias

  1. Stack lock-in respetado — no degradar versiones.
  2. Mobile-first siempre — verificar 375px ANTES de 1280px.
  3. Tokens CSS, nunca colores hardcodeadosbg-blue-500 PROHIBIDO; usar bg-[var(--color-accent)] o style={{ background: "var(--color-accent)" }}.
  4. <Image> de Next.js, nunca <img> cruda.
  5. alt descriptivo en cada imagen — ni vacío, ni "imagen".
  6. prefers-reduced-motion respetado — todas las animaciones tienen fallback.
  7. Server Components por defecto"use client" solo cuando hay hook, evento, o estado.
  8. .env.local jamás commiteado — escribir directo con Write tool, nunca mostrar credenciales en el chat.
  9. Build-log actualizado.brief/build-log.json después de cada proyecto.
  10. HTML twin de la entrega — generar .brief/entrega.html con resumen visual del proyecto al terminar (qué se construyó, capturas, links).

Reglas prohibidas

  1. NO usar GSAP por defecto — solo si el brief lo justifica (storytelling, tipografía cinética, parallax cinemático).
  2. NO usar Spline — es legacy. Si hay 3D, Three.js + React Three Fiber.
  3. NO usar tailwind.config.ts — Tailwind v4 usa @theme en CSS.
  4. NO usar middleware.ts — Next.js 16 usa proxy.ts.
  5. NO acceder a params o searchParams sin await — son Promise en Next.js 16.
  6. NO instalar Aceternity Pro — la skill solo usa fuentes 100% MIT.
  7. NO crear más de 3 canvas WebGL por página — colapsa la VRAM.
  8. NO usar navigator.userAgent para feature detection — usar feature detection real con guards SSR (typeof window !== "undefined").
  9. NO inventar URLs de componentes — verificar que existen en MagicUI, ReactBits o shadcn antes de instalar.
  10. NO añadir comentarios narrativos al código — solo cuando el "porqué" no es obvio (constraint oculta, workaround, invariante).

Cross-platform notes

La skill funciona idéntica en Windows (Git Bash o PowerShell), macOS y Linux.

OperaciónComando portable
Crear directoriosmkdir -p path/to/dir (Git Bash) o New-Item -ItemType Directory -Force -Path path/to/dir (PowerShell)
Abrir navegadorstart URL (Win) · open URL (mac) · xdg-open URL (Linux)
Detectar plataformanode -e "console.log(process.platform)"win32 / darwin / linux
Variables de entorno.env.local siempre — nunca export FOO=bar en bash

Todos los scripts en scripts/ están en Node.js (.mjs) para máxima portabilidad.


Troubleshooting

SíntomaCausa probableSolución
params is a PromiseNext.js 16 — antes era syncconst { id } = await params y tipar como params: Promise<{ id: string }>
Parallel route 404 al refrescarFalta default.tsx en cada slotCrear app/@slot/default.tsx con export default function() { return null; }
Build con Prisma falla en TurbopackIncompatibilidad conocidanpm run build -- --webpack
Cache stale en WindowsOneDrive sincronizando .next/rm -rf .next && npm run build (excluir .next/ de OneDrive)
Hidratation mismatch randomUso de Math.random() o Date.now() en RSCMover a Client Component o usar await connection()
Fonts no carganOlvidaste aplicar el .variable al <html><html className={${displayFont.variable} ${bodyFont.variable}}>
FOUC al cargar (flash sin estilo)Animación con from antes de hidratarDefinir estado inicial en CSS (opacity: 0) y animar to

Referencias profundas (lectura on-demand)

Cuando necesites más detalle sobre un tema concreto, lee la referencia correspondiente:

  • references/01-direcciones-visuales.md — 8 direcciones × tokens completos × tono × cuándo usar
  • references/02-verticales.md — 7 verticales × copy + CTAs + iconos + paletas
  • references/03-catalogo-componentes.md — árbol de decisión y mapeo necesidad → componente
  • references/04-modulos-excelencia.md — Lenis, SplitText, parallax, scroll storytelling, Three.js
  • references/05-checklist-entrega.md — checklist exhaustivo de QA + a11y + SEO + perf

Templates utilizados

  • templates/tokens.css — variables CSS de la dirección visual
  • templates/preview-template.html — base del previewer (Fase 1)
  • templates/proxy.ts — Next.js 16 proxy
  • templates/sitemap.ts, templates/robots.ts — SEO
  • templates/llms.txt, templates/identity.json — LLMO
  • templates/site-config.ts — configuración por marca
  • templates/intake-schema.json, templates/brief-schema.json — esquemas de validación

Scripts utilitarios

  • scripts/preview-styles.mjs — genera preview HTML con N estilos lado a lado
  • scripts/scrape-cascade.mjs — extrae contenido de URL en 3 niveles (curl → Puppeteer → guía manual)
  • scripts/verify-build.mjs — checks de entorno + QA post-build


Web Design Engineer Pro v1.0 © 2026 Luis Salgado · Ángel Aparicio IA Masters Academy · salgadoia.com

Gives 0 of the 12 instructions most css styling skills give

Counted across 586 of the 596 authors here whose files we hold, read 2026-08-06

  • avoid excessive centered layoutsin 55 of 586, across 12 files
  • bundle code into single HTML filein 54 of 586, across 14 files
  • Respect prefers-reduced-motion user settingsin 52 of 586, across 35 files
  • avoid purple gradientsin 51 of 586, across 11 files
  • avoid uniform rounded cornersin 51 of 586, across 11 files
  • avoid Inter fontin 51 of 586, across 11 files
  • edit generated files to develop artifactin 50 of 586, across 10 files
  • animate only transform and opacity propertiesin 43 of 586
  • Make touch targets at least 44x44 pixelsin 41 of 586, across 15 files
  • Ensure minimum color contrast of 4.5:1in 39 of 586, across 10 files
  • use tailwind cssin 39 of 586, across 24 files
  • Use SVG icons instead of emojisin 38 of 586, across 11 files

Said here and by no other author read

  • act as art director and senior frontend engineer
  • verify environment before writing any code
  • run all build phases without pausing after validation
  • ask brief questions using plain natural language
  • generate visual preview html for the user
  • wait for selected style code before proceeding

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.