---
name: landing-craft
description: Build conversion-optimized landing pages with CRO frameworks (Conversion Research, LIFT Model), scroll effects, A/B testing, personalization, form optimization, and Core Web Vitals (INP, LCP, CLS). Use when user asks to create a landing page, sales page, lead generation page, or improve conversion rates. Do NOT use for full product design (use component-forge), animation-specific (use motion-craft), or brand identity (use design).
triggers:
- "landing page"
- "sales page"
- "conversion"
- "CRO"
- "A/B test"
- "conversion rate"
- "lead generation"
- "signup page"
- "marketing page"
- "pricing page"
- "LIFT model"
negatives:
- "full product design"
- "component library"
- "animations only"
- "brand identity"
- "dashboard"
- "app UI"
license: MIT
compatibility: opencode
metadata:
workflow: marketing
audience: developers
version: "4.0.0"
author: shokunin
---
# Landing Craft
Landing pages that convert. Based on Unbounce (44,000+ A/B tests), GoodUI, CXL Institute, and WiderFunnel LIFT Model.
## Creative Variance Engine
Before writing code, select ONE combination based on the brief. This prevents every landing page from looking the same.
### Vibe Archetypes (pick 1)
| Archetype | Palette | Typography | Best for |
|-----------|---------|------------|----------|
| Editorial Luxury | Warm cream (#f5f2ec), deep charcoal, ink-blue accent | Serif display (Cormorant Garamond, Playfair Display) + clean body | B2B, consulting, premium SaaS |
| Dark Atmospheric | Deep navy (#080c1a), off-white text, burnt orange accent | Bold condensed display (Cabinet Grotesk, Space Grotesk) | Tech, AI, developer tools |
| Soft Structural | White (#ffffff), zinc neutrals, single accent | Grotesk display (Geist, Plus Jakarta Sans) | SaaS, productivity, health |
| Minimalist Editorial | Warm bone (#f7f6f3), strict 1px borders, muted pastels | Serif + system sans-serif | Portfolios, indie products |
### Layout Archetypes (pick 1)
| Archetype | Structure | Mobile |
|-----------|-----------|--------|
| Split Screen | 50/50: text left, visual right. Clean alignment, no center. | Stack vertical: text on top, visual below |
| Asymmetric Bento | Masonry grid with varying card sizes. `col-span-8` next to `col-span-4`. | Single column. All `col-span` overrides reset to 1 |
| Editorial Z-Cascade | Elements overlap with slight rotation (-2deg to 3deg). Depth through stacking. | Remove all rotations and negative margins. Stack vertically. |
| Full-Bleed Typography | Hero is pure typography. No image. Text spans viewport width. | Text scales down via clamp(). No overflow. |
**Mobile override (universal):** Any asymmetric layout above `md:` (768px) must collapse to single-column (`w-full`, `px-4`, `py-8`) on viewports below `768px`.
---
## Workflow
### Step 1: Select creative archetype
Pick one vibe + layout from the Creative Variance Engine. Every page must feel distinct.
### Step 2: Wireframe the sections
Block out all 10 sections (Hero through Final CTA). Each section answers: what does the visitor need to hear RIGHT NOW to move forward?
### Step 3: Draft copy
Headline under 10 words. One CTA above fold. Social proof near top. Use PAS framework for problem section.
### Step 4: Implement with mobile-first HTML/CSS
8px grid. clamp() for fluid typography. No centered hero text. Grain overlay (opacity 0.03-0.06).
### Step 5: Optimize for Core Web Vitals
Preload hero image. Inline critical CSS. Lazy-load below-fold images. Target LCP < 2.5s, INP < 200ms.
### Step 6: A/B test and iterate
Test highest-impact element first (headline). 95% significance. Min 1,000 visitors per variant.
## The Structure
```
Hero: headline + sub + CTA (above the fold)
Social proof: logos, metrics, testimonials (~100px below hero)
Problem: framed for empathy, names the pain
Solution: 3 steps max, benefit-focused
Features: 3-6 items, each with one clear benefit
Testimonials: real people, specific results
Pricing: 3 tiers, middle is the offer
FAQ: answers top 5 objections
Final CTA: same ask, different context, near scroll bottom
```
Every section answers: what does the visitor need to hear RIGHT NOW to move to the next section?
---
## Hero Rules (from Unbounce data)
1. **Value in 3 seconds**: headline must communicate core benefit. A/B test headline first - highest-impact element.
2. **CTA visible without scroll**: primary button above the fold. Above 600px vh.
3. **One CTA**: one primary action. Secondary links are text only.
4. **Headline under 10 words**: "Ship 3x faster with automated deployments" not "Welcome to DeployPro - the fastest way to ship code"
5. **Never center text**: Left-aligned text + right-aligned visual (Split Screen). Centered hero is the #1 AI clich-.
6. **Supporting visual**: product screenshot, illustration, or demo - never a generic stock photo.
### Hero alt-layouts (not all center)
| Layout | HTML structure | When |
|--------|---------------|------|
| Split 50/50 | `
text
visual
` | Default. Works for everything. |
| Text-bleed | `
` | Editorial, luxury |
---
## Design Palette
| Element | Specification |
|---------|---------------|
| Background | Dark (#080808) or cream (#f5f2ec). Never flat #ffffff or #f5f5f5 |
| Headline | Editorial serif or bold display. `clamp(2.5rem, 5vw, 4.5rem)` |
| Body | Clean sans. Min 16px. Line height 1.6 |
| Spacing | 8px base. Section: `clamp(4rem, 8vw, 8rem)` |
| Texture | Grain overlay: opacity 0.03-0.06 |
| Icons | Lucide or Phosphor. No emoji icons. |
| Motion | Subtle scroll-triggered. Parallax or 3D on hero. No gratuitous animation. |
---
## CRO Methodology
### LIFT Model (WiderFunnel)
Evaluate every element against these six factors:
| Factor | Question | Measurement |
|--------|----------|-------------|
| Value proposition | Does this clearly communicate the benefit? | "What do I get?" answerable in 3 seconds |
| Relevance | Does this match the visitor's intent? | Bounce rate < 50% |
| Clarity | Is the message immediately understandable? | "What is this?" answerable in 5 seconds |
| Distraction | What can we remove to focus attention? | Scroll depth > 50% |
| Anxiety | What reassures the visitor? | Trust signals visible above fold |
| Urgency | Why should they act now? | Deadline or scarcity (real, not fake) |
### High-Impact Test Elements (in order of ROI)
| Test | Why | Expected lift |
|------|-----|--------------|
| Headline | First thing read. Shapes entire perception. | 10-40% |
| CTA button text and color | Final friction point. | 5-25% |
| Hero image/video | Visual sets trust and expectation. | 5-15% |
| Social proof placement | Top vs mid page changes trust curve. | 3-10% |
| Pricing structure | Tiers, placement, toggle. | 3-15% |
Test one element at a time. 95% statistical significance. Min 1,000 visitors per variant.
---
## Hero Architecture (Exact CSS)
```css
.hero {
min-height: 100dvh;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
padding: 0 clamp(2rem, 5vw, 6rem);
background: #080c1a;
}
.hero-text {
max-width: 650px;
}
.hero-text h1 {
font-family: 'Cabinet Grotesk', 'Geist', sans-serif;
font-size: clamp(2.5rem, 5vw, 4.5rem);
font-weight: 700;
line-height: 1.05;
letter-spacing: -0.02em;
color: #f0ede8;
}
.hero-text p {
font-size: clamp(1rem, 1.2vw, 1.25rem);
line-height: 1.6;
color: #a09c96;
max-width: 480px;
margin-top: 1.5rem;
}
.hero-cta {
display: inline-flex;
align-items: center;
gap: 0.75rem;
padding: 16px 48px;
background: #1B365D;
color: #f0ede8;
font-size: 0.9rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
border: none;
border-radius: 0;
margin-top: 2rem;
transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
background 200ms ease;
}
.hero-cta:hover {
background: #e05a20;
transform: translateY(-2px);
}
.hero-cta:active {
transform: scale(0.97);
}
```
---
## Social Proof
Place near the top (within first 2 sections). Types by effectiveness:
1. **Logos of recognizable companies** (3-12, grayscale, hover color. Never use without permission.)
2. **Specific user metrics**: "Join 10,000+ paying customers" - number must be real
3. **Relevant testimonial**: quote with name, title, photo, specific result
4. **Award/certification badge**: only if recognizable (SOC 2, YC, Product Hunt)
```html
Trusted by teams at
```
---
## Problem Section (PAS Framework)
**Problem**: name the exact pain with specific numbers. "Your landing page converts at 0.8%. The industry average is 3.2%."
**Agitate**: explore consequences of NOT solving it. Money lost. Growth stalled. Competitors winning.
**Solution**: present your approach. "DeployPro uses conversion science from 44,000+ A/B tests to lift conversion rates."
---
## Features Grid
3-6 features. Each one gets:
- Icon (meaningful, not decorative). Single color, consistent stroke width.
- Benefit-led headline: "Ship 3x faster" not "Automated CI/CD"
- 1-2 sentence explanation. No fluff.
```html
Ship 3x faster
Automated build and deploy pipeline. One command to production.
```
---
## Testimonials
| Element | Rule |
|---------|------|
| Photo | Required. Real person. No stock. |
| Attribution | Full real name, title, company |
| Quote | Specific, results-oriented. "We shipped 40% more features after switching" not "Great product" |
| Length | 1-3 sentences |
| Placement | Near relevant claim. Don't pile all at the bottom. |
---
## Pricing
3 tiers. Middle is your real offer.
| Position | Role | Strategy |
|----------|------|----------|
| Left (Starter) | Anchor low | Makes middle look reasonable. Price at 40-60% of Pro. |
| Center (Pro) | The offer | Best value, highlighted visually. "Most popular" badge. |
| Right (Enterprise) | Anchor high | Makes middle look affordable. 2-3x Pro. |
```css
.pricing-card-featured {
border: 2px solid var(--accent);
transform: scale(1.05);
position: relative;
z-index: 1;
}
.pricing-card-featured::before {
content: 'Most popular';
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, -50%);
background: var(--accent);
color: white;
padding: 4px 16px;
border-radius: 9999px;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
}
```
Rules:
- Annual/monthly toggle (annual = 17-20% discount)
- Every tier lists features explicitly
- Include money-back guarantee near pricing
- No fake scarcity. No "Only 3 spots left" when unlimited.
---
## Form Optimization (exact specs)
| Element | Best practice |
|---------|---------------|
| Fields | Minimum viable. Email only for lead gen. |
| Validation | Inline, real-time, specific error messages |
| Autofill | Enable `autocomplete` attributes |
| Submit | Button says what happens: "Get my free guide", "Start free trial" not "Submit" |
| Error recovery | Preserve entered values, highlight fields |
| Privacy | "No spam. Unsubscribe anytime." |
| Input height | 48px minimum for mobile |
| Input font | 16px minimum (prevents iOS zoom on focus) |
```html
```
---
## Performance (Core Web Vitals 2026)
| Metric | Target | Measurement |
|--------|--------|-------------|
| INP (Interaction to Next Paint) | < 200ms | Field data (Chrome UX Report) |
| LCP (Largest Contentful Paint) | < 2.5s | Lab + field |
| CLS (Cumulative Layout Shift) | < 0.1 | Lab + field |
| TBT (Total Blocking Time) | < 200ms | Lab only |
| Lighthouse Performance | > 90 | Lab |
**Achievement checklist:**
- No render-blocking resources above fold
- Hero image preloaded: ``
- Critical CSS inlined in `