Communitygithub.com

JairoBg03/skills

Crea landing pages profesionales con diseño personalizado, animaciones y efectos de nivel agencia, cubriendo todo el flujo: brief, dirección de diseño, construcción, auditoría y deploy. Evita el look genérico de plantilla IA. Stack: Astro + Tailwind CSS v4 + GSAP + Lenis. Trigger: cuando el usuario pida crear, planificar, diseñar o construir una landing page, página de aterrizaje, one-page de producto/evento/servicio, "landing profesional", "landing con animaciones", "hero animado", "página de ventas", "landing page".

skills 是什么?

skills is a Claude Code agent skill that crea landing pages profesionales con diseño personalizado, animaciones y efectos de nivel agencia, cubriendo todo el flujo: brief, dirección de diseño, construcción, auditoría y deploy. Evita el look genérico de plantilla IA. Stack: Astro + Tailwind CSS v4 + GSAP + Lenis. Trigger: cuando el usuario pida crear, planificar, diseñar o construir una landing page, página de aterrizaje, one-page de producto/evento/servicio, "landing profesional", "landing con animaciones", "hero animado", "página de ventas", "landing page".

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JairoBg03/skills/tree/HEAD/landing-pages

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Cuándo usar

  • El usuario quiere una landing page nueva (producto, servicio, evento, portfolio, waitlist)
  • Quiere rediseñar una landing existente para que se vea profesional y única
  • Pide animaciones, efectos de scroll o microinteracciones en una página de marketing
  • Está en fase de planificación: qué secciones, qué mensaje, qué estructura

Stack (y por qué)

PiezaElecciónPor quéAlternativa descartada
FrameworkAstro 5Estático por defecto (0 JS de base), componentes, astro:assets para imágenes, deploy = subir dist/Next.js (overkill para landing, deploy más complejo), HTML plano (sin componentes ni optimización)
EstilosTailwind CSS v4Tokens propios vía @theme en CSS, sin config JS, purga automáticaUI kits (shadcn/DaisyUI/Flowbite → look genérico), CSS puro (lento para iterar)
AnimaciónGSAP 3.13+ (ScrollTrigger, SplitText)Estándar de la industria para scroll/timeline; desde v3.13 TODOS los plugins son gratisFramer Motion (atado a React), AOS (limitado, se nota "de plantilla")
Smooth scrollLenisLigero (~4kb), integración documentada con ScrollTriggerLocomotive Scroll (más pesado, menos mantenido)
DeployNetlify / Cloudflare Pages / VercelConectar repo → push → deploy; output estático sin servidorVPS (innecesario para estático)

Regla dura: NO instalar librerías de componentes UI. El diseño es propio — eso es exactamente lo que separa esta skill de una plantilla.

Flujo de trabajo (obligatorio, en este orden)

NUNCA empieces por el código. Una landing sin brief es una plantilla con otro nombre.

  1. Brief — completa assets/brief-template.md CON el usuario. Si faltan objetivo, audiencia o CTA: PREGUNTA antes de seguir.
  2. Dirección de diseño — sigue references/design-direction.md: personalidad → tipografía → color → layout → firma visual. Materialízala en assets/design-tokens.css.
  3. Arquitectura de secciones — define el arco narrativo (tabla abajo) y el copy de titulares antes de maquetar.
  4. Construcción — sección por sección, mobile-first (390px primero). Animaciones con references/animation-recipes.md.
  5. Auditoría — checklist de entrega (abajo). No se entrega sin pasarla.
  6. Deploy — build estático + hosting (comandos abajo).

Arco narrativo (estructura base)

#SecciónTrabajo que hace
1HeroPropuesta de valor entendible en <5s + CTA primario
2Problema / contextoNombra el dolor que el visitante reconoce
3Solución / beneficiosCómo lo resuelves — beneficios, no características
4Prueba socialTestimonios reales, logos, métricas
5Cómo funcionaPasos, demo, screenshots
6ObjecionesFAQ, garantía, precios
7CTA finalRepite la MISMA acción única del hero

Adapta, funde o elimina secciones según el brief — no todas las landings llevan las 7.

Patrones críticos

  • Una sola conversión: toda la página empuja hacia UNA acción. Dos CTAs distintos = brief mal hecho.
  • Mobile-first real: se diseña y construye primero a 390px; desktop es la progresión, no al revés.
  • LCP intocable: el elemento LCP (headline o imagen del hero) nunca queda opacity: 0 en CSS. Las entradas se hacen con gsap.from() (sin JS la página se ve completa) y duran ≤ 1s en total.
  • prefers-reduced-motion: TODA animación vive dentro de gsap.matchMedia(). Sin excepciones.
  • Islands mínimas: JS solo donde hay interacción real. Un acordeón FAQ es <details>, no un componente hidratado.
  • Imágenes: siempre astro:assets (<Image>), AVIF/WebP, dimensiones explícitas, loading="lazy" salvo el hero.
  • Fuentes: self-hosted (woff2 local o Fontsource), font-display: swap, máximo 2 familias, preload de la display.

Checklist antes de entregar

  • Lighthouse mobile ≥ 95 en Performance, Accessibility y SEO
  • CLS = 0 (dimensiones en imágenes, fallback de fuente ajustado)
  • Animaciones desactivadas con prefers-reduced-motion: reduce
  • Contraste AA: 4.5:1 texto, 3:1 UI grande
  • Navegable por teclado, focus visible, un solo h1
  • Meta description, OG tags, favicon, título único
  • Probada a 390px, 768px y 1440px
  • Test de la marca: tapando el logo, ¿la página podría ser de otra empresa? Si sí → volver a fase 2

Comandos

# Crear proyecto
pnpm create astro@latest mi-landing -- --template minimal --typescript strict
cd mi-landing
pnpm astro add tailwind
pnpm add gsap lenis

# Desarrollo y build
pnpm dev
pnpm build && pnpm preview

# Deploy (elige uno; en Netlify/Vercel/Cloudflare: build "pnpm build", output "dist")
npx wrangler pages deploy dist        # Cloudflare Pages directo
npx netlify deploy --prod --dir=dist  # Netlify directo

Recursos

相关技能