Landing Pages
When to Use
Full marketing or product pages and their sections: hero, features, pricing, testimonials, logo wall, comparison table, FAQ, CTA bar, footer. Also empty states and onboarding flows. For a single reusable component use react-components; for the form inside a page use forms.
Stack
React 19 · TypeScript strict · Tailwind v4 · Next.js App Router (default)
Core Rules
- One job per section. Every section answers exactly one question. Hero: "what is this?" Pricing: "what do I pay?" A section answering two must be split.
- CTA gravity. The primary CTA is the visually heaviest element above the fold. One primary CTA style per page. Pair it with a ghost secondary — never two solids.
- Never an equal-height card grid. Use bento with spans, editorial asymmetry, or a data list. At least one element per major section breaks the column grid.
- Social proof proximity. Trust signals sit within 40px of the CTA they support.
- Scannable rhythm. Break the pattern every 3–4 sections: full-bleed dark → light card grid → feature spotlight → CTA bar.
- Hero type ≥48px desktop. At least two type sizes with ≥3× difference per section.
text-wrap: balance on headings.
- Organic content. Real diverse names (Ana Ngugi, Kenji Tanaka), non-round figures (47.2%, $12,847). Never lorem ipsum, John Doe, or "Elevate/Seamless/Unleash".
- Mobile-first is content-first. At 375px the headline, CTA and social proof survive; everything else earns its place.
- Empty states are designed. Icon + headline + one sentence + action. Never a bare "No data".
Patterns
- HERO = eyebrow + headline(≥48px) + subtext(≤2 lines) + CTA pair + proof bar + visual.
- PRICING = headline + monthly/annual toggle + exactly 3 tiers + trust note. Enterprise is "Custom", never a fake number.
- BENTO = one hero cell spanning 2×2, remainder 1×1, max 6 cells, aspect-anchored.
- TESTIMONIAL = pull-quote + avatar + name + company; masonry or peek-scroll, never uniform cards.
- CTA-BAR = short headline + 1–2 CTAs + risk-reversal microcopy.
Examples
examples/good-landing.tsx · examples/good-brand-linear.tsx (Linear-style dark precision) · examples/good-design-md-round-trip.tsx (DESIGN.md token injection, pricing tiers).
Reference Index
Load only for the specific task:
| Task |
Load |
| Pattern anatomy P-01…P-08, anti-patterns, decision guides |
references/design-patterns.md |
| 34 full landing specs with conversion copy |
references/landing-patterns.md |
| Vertical-specific rules (fintech, health, SaaS…) |
references/industry-rules.md |
| Auditing and upgrading an existing page |
references/redesign-framework.md |
| Button labels, error copy, microcopy |
references/ux-writing.md |
| Generating a DESIGN.md for Google Stitch |
references/stitch-design.md |
Constraints
No equal-card grids · no banned display fonts · no purple→pink→blue gradients · OKLCH tokens only · min-h-[100dvh] · organic data values · four states · WCAG 2.2 AA with one <h1> and no skipped heading levels · prefers-reduced-motion.
1---2name: landing-pages3description: Marketing pages — heroes, pricing, testimonials, bento grids, social proof, CTAs, empty states, onboarding. Use when building a full marketing or product page and its sections — hero, features, pricing, testimonials, logo wall, comparison table, FAQ, CTA bar, footer — plus empty states and onboarding. Not for a single reusable component (react-components).4---56# Landing Pages78## When to Use9Full marketing or product pages and their sections: hero, features, pricing, testimonials, logo wall, comparison table, FAQ, CTA bar, footer. Also empty states and onboarding flows. For a single reusable component use `react-components`; for the form inside a page use `forms`.1011## Stack12React 19 · TypeScript strict · Tailwind v4 · Next.js App Router (default)1314## Core Rules151. **One job per section.** Every section answers exactly one question. Hero: "what is this?" Pricing: "what do I pay?" A section answering two must be split.162. **CTA gravity.** The primary CTA is the visually heaviest element above the fold. One primary CTA style per page. Pair it with a ghost secondary — never two solids.173. **Never an equal-height card grid.** Use bento with spans, editorial asymmetry, or a data list. At least one element per major section breaks the column grid.184. **Social proof proximity.** Trust signals sit within 40px of the CTA they support.195. **Scannable rhythm.** Break the pattern every 3–4 sections: full-bleed dark → light card grid → feature spotlight → CTA bar.206. **Hero type ≥48px desktop.** At least two type sizes with ≥3× difference per section. `text-wrap: balance` on headings.217. **Organic content.** Real diverse names (Ana Ngugi, Kenji Tanaka), non-round figures (47.2%, $12,847). Never lorem ipsum, John Doe, or "Elevate/Seamless/Unleash".228. **Mobile-first is content-first.** At 375px the headline, CTA and social proof survive; everything else earns its place.239. **Empty states are designed.** Icon + headline + one sentence + action. Never a bare "No data".2425## Patterns26- **HERO** = eyebrow + headline(≥48px) + subtext(≤2 lines) + CTA pair + proof bar + visual.27- **PRICING** = headline + monthly/annual toggle + exactly 3 tiers + trust note. Enterprise is "Custom", never a fake number.28- **BENTO** = one hero cell spanning 2×2, remainder 1×1, max 6 cells, aspect-anchored.29- **TESTIMONIAL** = pull-quote + avatar + name + company; masonry or peek-scroll, never uniform cards.30- **CTA-BAR** = short headline + 1–2 CTAs + risk-reversal microcopy.3132## Examples33`examples/good-landing.tsx` · `examples/good-brand-linear.tsx` (Linear-style dark precision) · `examples/good-design-md-round-trip.tsx` (DESIGN.md token injection, pricing tiers).3435## Reference Index36Load only for the specific task:3738| Task | Load |39|---|---|40| Pattern anatomy P-01…P-08, anti-patterns, decision guides | `references/design-patterns.md` |41| 34 full landing specs with conversion copy | `references/landing-patterns.md` |42| Vertical-specific rules (fintech, health, SaaS…) | `references/industry-rules.md` |43| Auditing and upgrading an existing page | `references/redesign-framework.md` |44| Button labels, error copy, microcopy | `references/ux-writing.md` |45| Generating a DESIGN.md for Google Stitch | `references/stitch-design.md` |4647## Constraints48No equal-card grids · no banned display fonts · no purple→pink→blue gradients · OKLCH tokens only · `min-h-[100dvh]` · organic data values · four states · WCAG 2.2 AA with one `<h1>` and no skipped heading levels · `prefers-reduced-motion`.