174fcb855ad2f1b0d36f11a695f80a69b433cdf3
Un <svg> con viewBox es un elemento reemplazado con proporción intrínseca (100:1200). Al dimensionarlo con top-0 + bottom-20 y dejar la altura en auto, el navegador la resolvía desde el ancho — 1152 × 12 = 13.824px — y esa altura ganaba silenciosamente a `bottom`. Consecuencias, todas visibles en el navegador y ninguna en los tests: - 5.840px de blanco vacío scrolleable por debajo del footer. - scrollYProgress repartido sobre 13.901px en vez de 8.061, así que el trazo nunca terminaba sobre contenido real. - la onda estirada 1,8x de más, otra vez casi recta. Altura explícita con h-[calc(100%-5rem)], y test que lo fija: jsdom no hace layout, así que el guardián es la clase. El trazo pasa a completarse a mitad de scroll (FIN 0.85 → 0.5). Con 0.85 la punta se quedaba a media pantalla durante el 42% de la página, que es justo lo que se leía como "sin terminar". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
creeer
Landing page one-page para creeer, marca personal de una estratega de crecimiento. Next.js 14 (App Router) + TypeScript + Tailwind CSS + Framer Motion, exportada como sitio estático.
Requisitos
- Node.js 20+
- pnpm 11+ (
corepack enable)
Comandos
pnpm install # instalar dependencias
pnpm dev # servidor de desarrollo (http://localhost:3000)
pnpm build # build estático → out/
pnpm test # tests (Vitest)
pnpm lint # ESLint
Estructura
app/ # App Router (layout, page, globals.css)
components/
primitives/ # Wordmark, Container, CTA (reutilizables)
sections/ # Hero, FraseAncla, ParaQuien, Mecanismo, Disciplinas, Estratega, Cierre, ComoEmpezar
layout/ # Header, Footer
lib/
content.ts # todo el copy (source of truth)
motion.ts # variantes Framer Motion + reduced-motion
docs/ # spec, plan, directrices de marca
Decisiones de diseño
Ver docs/dueña-directrices.md (directrices de marca) y docs/superpowers/specs/2026-07-20-creeer-landing-design.md (spec completo).
Languages
TypeScript
99.2%
CSS
0.7%
JavaScript
0.1%