---
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)
- Value in 3 seconds: headline must communicate core benefit. A/B test headline first - highest-impact element.
- CTA visible without scroll: primary button above the fold. Above 600px vh.
- One CTA: one primary action. Secondary links are text only.
- Headline under 10 words: "Ship 3x faster with automated deployments" not "Welcome to DeployPro - the fastest way to ship code"
- Never center text: Left-aligned text + right-aligned visual (Split Screen). Centered hero is the #1 AI clich-.
- 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 |
<div class="grid grid-cols-2"><div>text</div><div>visual</div></div> |
Default. Works for everything. |
| Text-bleed |
<div class="pl-[5vw]"><h1 class="text-[clamp(48px,7vw,120px)]">Hero text</h1></div> |
Strong brand, confident product |
| 3D perspective |
<div class="perspective-[800px]"><h1 class="[transform:rotateX(15deg)]">Hero</h1></div> |
Creative, premium, editorial |
| Negative space |
<div class="grid"><div class="col-start-1 col-end-3">text</div><div class="col-start-2">visual</div></div> |
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)
.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:
- Logos of recognizable companies (3-12, grayscale, hover color. Never use without permission.)
- Specific user metrics: "Join 10,000+ paying customers" - number must be real
- Relevant testimonial: quote with name, title, photo, specific result
- Award/certification badge: only if recognizable (SOC 2, YC, Product Hunt)
<div class="social-proof">
<p class="text-sm uppercase tracking-wider text-slate-400 mb-6">Trusted by teams at</p>
<div class="flex flex-wrap gap-8 items-center opacity-60">
<img src="stripe.svg" alt="Stripe" class="h-8 grayscale hover:grayscale-0 transition" />
<img src="vercel.svg" alt="Vercel" class="h-8 grayscale hover:grayscale-0 transition" />
<img src="shopify.svg" alt="Shopify" class="h-8 grayscale hover:grayscale-0 transition" />
</div>
</div>
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.
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div class="feature">
<Icon icon="zap" class="w-8 h-8 text-amber-500 mb-4" />
<h3 class="text-lg font-semibold mb-2">Ship 3x faster</h3>
<p class="text-slate-400">Automated build and deploy pipeline. One command to production.</p>
</div>
</div>
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. |
.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) |
<form class="space-y-4 max-w-md">
<div>
<label for="email" class="block text-sm font-medium mb-1">Work email</label>
<input
id="email"
type="email"
autocomplete="email"
required
class="w-full h-12 px-4 border border-slate-200 text-base rounded-md"
placeholder="you@company.com"
/>
</div>
<button
type="submit"
class="w-full h-12 bg-slate-900 text-white font-medium rounded-md
transition-all duration-160 ease-out
active:scale-[0.97]"
>
Get my free guide
</button>
<p class="text-xs text-slate-400 text-center">
No spam. Unsubscribe anytime.
</p>
</form>
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:
<link rel="preload" as="image" href="hero.webp">
- Critical CSS inlined in
<style> tag. Async load for rest.
- Images lazy-loaded (
loading="lazy") with explicit width/height
- Fonts self-hosted or preloaded with
font-display: swap
- Third-party scripts loaded with
defer or async
- Minimal JS. No frameworks for simple landing pages.
Mobile Optimization
| Element |
Mobile rule |
| CTA |
Full-width, min 48px tall, thumb-friendly |
| Forms |
Single column, large inputs (48px min) |
| Font size |
Body never below 16px |
| Touch targets |
44-44px min, 12px gap |
| Horizontal scroll |
Never. Test on 320px width. |
| Hero |
Full-width text, no image until 768px |
CRO Audit Checklist
Before launching, verify:
Error Handling
| Scenario |
Cause |
Fix |
| Hero image LCP > 4s |
No preload or unoptimized format |
Preload with <link rel="preload" as="image">, use WebP/AVIF, serve via CDN |
| CLS from late-loading fonts |
Web font triggers layout shift |
Self-host fonts. Use font-display: swap. Preload with <link rel="preload" as="font"> |
| A/B test inconclusive |
Not enough traffic or significance |
Min 1,000 visitors/variant, 95% significance, run for 2+ business cycles |
| Form abandonment spike |
Too many fields or validation confusion |
Reduce to minimum viable fields. Inline real-time validation. Preserve values on error. |
| Mobile bounce rate > 70% |
Touch targets too small, horizontal scroll |
All touch targets >= 44px. Test at 320px width. No horizontal overflow. |
| Scroll effects jank on mobile |
requestAnimationFrame scroll listeners |
Use CSS animation-timeline: view() or IntersectionObserver. Debounce JS scroll handlers. |
| CTA click-through below 1% |
Weak copy, wrong placement |
A/B test CTA text. Ensure CTA visible without scroll. Single primary action above fold. |
Anti-Patterns
| Mistake |
Fix |
| Multiple CTAs competing |
One primary action per viewport |
| No social proof above fold |
Add logos or metrics in hero |
| Weak headline ("Welcome to Our Product") |
Specific benefit + audience in 10 words |
| Generic stock photos |
Real product screenshots or real people |
| No mobile test |
Most traffic is mobile. Test at 320px. |
| Auto-playing video with sound |
User-initiated playback only |
| No A/B testing plan |
Identify highest-impact element, test one change |
| Centered hero text |
Left-aligned text + right-aligned visual |
| "Only 3 spots left" when unlimited |
Fake scarcity destroys trust |
| Pricing without annual toggle |
Annual = 17-20% discount. Always offer it. |
| CTA says "Submit" |
Action verb + value: "Get my free guide" |
| Hero image without preload |
<link rel="preload" as="image"> for LCP |
h-screen for hero |
min-h-[100dvh] - avoids iOS Safari jump |
| Form inputs under 48px on mobile |
iOS zooms on anything under 16px font |
Sources
- Unbounce Conversion Benchmark Report (44,000+ A/B tests analyzed)
- GoodUI.org - A/B tested UI patterns database
- CXL Institute - Conversion optimization research
- WiderFunnel LIFT Model
- NN Group - Conversion studies and usability research
- Refactoring UI - Adam Wathan, Steve Schoger
- Google Web Vitals (web.dev)
- Copyhackers - Conversion copywriting
Checklist
1---2name: landing-craft3description: ---4---5---6name: landing-craft7description: 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).8triggers:9 - "landing page"10 - "sales page"11 - "conversion"12 - "CRO"13 - "A/B test"14 - "conversion rate"15 - "lead generation"16 - "signup page"17 - "marketing page"18 - "pricing page"19 - "LIFT model"20negatives:21 - "full product design"22 - "component library"23 - "animations only"24 - "brand identity"25 - "dashboard"26 - "app UI"27license: MIT28compatibility: opencode29metadata:30 workflow: marketing31 audience: developers32 version: "4.0.0"33 author: shokunin34---353637# Landing Craft3839Landing pages that convert. Based on Unbounce (44,000+ A/B tests), GoodUI, CXL Institute, and WiderFunnel LIFT Model.4041## Creative Variance Engine4243Before writing code, select ONE combination based on the brief. This prevents every landing page from looking the same.4445### Vibe Archetypes (pick 1)4647| Archetype | Palette | Typography | Best for |48|-----------|---------|------------|----------|49| Editorial Luxury | Warm cream (#f5f2ec), deep charcoal, ink-blue accent | Serif display (Cormorant Garamond, Playfair Display) + clean body | B2B, consulting, premium SaaS |50| Dark Atmospheric | Deep navy (#080c1a), off-white text, burnt orange accent | Bold condensed display (Cabinet Grotesk, Space Grotesk) | Tech, AI, developer tools |51| Soft Structural | White (#ffffff), zinc neutrals, single accent | Grotesk display (Geist, Plus Jakarta Sans) | SaaS, productivity, health |52| Minimalist Editorial | Warm bone (#f7f6f3), strict 1px borders, muted pastels | Serif + system sans-serif | Portfolios, indie products |5354### Layout Archetypes (pick 1)5556| Archetype | Structure | Mobile |57|-----------|-----------|--------|58| Split Screen | 50/50: text left, visual right. Clean alignment, no center. | Stack vertical: text on top, visual below |59| 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 |60| Editorial Z-Cascade | Elements overlap with slight rotation (-2deg to 3deg). Depth through stacking. | Remove all rotations and negative margins. Stack vertically. |61| Full-Bleed Typography | Hero is pure typography. No image. Text spans viewport width. | Text scales down via clamp(). No overflow. |6263**Mobile override (universal):** Any asymmetric layout above `md:` (768px) must collapse to single-column (`w-full`, `px-4`, `py-8`) on viewports below `768px`.6465---6667## Workflow6869### Step 1: Select creative archetype70Pick one vibe + layout from the Creative Variance Engine. Every page must feel distinct.7172### Step 2: Wireframe the sections73Block out all 10 sections (Hero through Final CTA). Each section answers: what does the visitor need to hear RIGHT NOW to move forward?7475### Step 3: Draft copy76Headline under 10 words. One CTA above fold. Social proof near top. Use PAS framework for problem section.7778### Step 4: Implement with mobile-first HTML/CSS798px grid. clamp() for fluid typography. No centered hero text. Grain overlay (opacity 0.03-0.06).8081### Step 5: Optimize for Core Web Vitals82Preload hero image. Inline critical CSS. Lazy-load below-fold images. Target LCP < 2.5s, INP < 200ms.8384### Step 6: A/B test and iterate85Test highest-impact element first (headline). 95% significance. Min 1,000 visitors per variant.8687## The Structure8889```90Hero: headline + sub + CTA (above the fold)91Social proof: logos, metrics, testimonials (~100px below hero)92Problem: framed for empathy, names the pain93Solution: 3 steps max, benefit-focused94Features: 3-6 items, each with one clear benefit95Testimonials: real people, specific results96Pricing: 3 tiers, middle is the offer97FAQ: answers top 5 objections98Final CTA: same ask, different context, near scroll bottom99```100101Every section answers: what does the visitor need to hear RIGHT NOW to move to the next section?102103---104105## Hero Rules (from Unbounce data)1061071. **Value in 3 seconds**: headline must communicate core benefit. A/B test headline first - highest-impact element.1082. **CTA visible without scroll**: primary button above the fold. Above 600px vh.1093. **One CTA**: one primary action. Secondary links are text only.1104. **Headline under 10 words**: "Ship 3x faster with automated deployments" not "Welcome to DeployPro - the fastest way to ship code"1115. **Never center text**: Left-aligned text + right-aligned visual (Split Screen). Centered hero is the #1 AI clich-.1126. **Supporting visual**: product screenshot, illustration, or demo - never a generic stock photo.113114### Hero alt-layouts (not all center)115116| Layout | HTML structure | When |117|--------|---------------|------|118| Split 50/50 | `<div class="grid grid-cols-2"><div>text</div><div>visual</div></div>` | Default. Works for everything. |119| Text-bleed | `<div class="pl-[5vw]"><h1 class="text-[clamp(48px,7vw,120px)]">Hero text</h1></div>` | Strong brand, confident product |120| 3D perspective | `<div class="perspective-[800px]"><h1 class="[transform:rotateX(15deg)]">Hero</h1></div>` | Creative, premium, editorial |121| Negative space | `<div class="grid"><div class="col-start-1 col-end-3">text</div><div class="col-start-2">visual</div></div>` | Editorial, luxury |122123---124125## Design Palette126127| Element | Specification |128|---------|---------------|129| Background | Dark (#080808) or cream (#f5f2ec). Never flat #ffffff or #f5f5f5 |130| Headline | Editorial serif or bold display. `clamp(2.5rem, 5vw, 4.5rem)` |131| Body | Clean sans. Min 16px. Line height 1.6 |132| Spacing | 8px base. Section: `clamp(4rem, 8vw, 8rem)` |133| Texture | Grain overlay: opacity 0.03-0.06 |134| Icons | Lucide or Phosphor. No emoji icons. |135| Motion | Subtle scroll-triggered. Parallax or 3D on hero. No gratuitous animation. |136137---138139## CRO Methodology140141### LIFT Model (WiderFunnel)142143Evaluate every element against these six factors:144145| Factor | Question | Measurement |146|--------|----------|-------------|147| Value proposition | Does this clearly communicate the benefit? | "What do I get?" answerable in 3 seconds |148| Relevance | Does this match the visitor's intent? | Bounce rate < 50% |149| Clarity | Is the message immediately understandable? | "What is this?" answerable in 5 seconds |150| Distraction | What can we remove to focus attention? | Scroll depth > 50% |151| Anxiety | What reassures the visitor? | Trust signals visible above fold |152| Urgency | Why should they act now? | Deadline or scarcity (real, not fake) |153154### High-Impact Test Elements (in order of ROI)155156| Test | Why | Expected lift |157|------|-----|--------------|158| Headline | First thing read. Shapes entire perception. | 10-40% |159| CTA button text and color | Final friction point. | 5-25% |160| Hero image/video | Visual sets trust and expectation. | 5-15% |161| Social proof placement | Top vs mid page changes trust curve. | 3-10% |162| Pricing structure | Tiers, placement, toggle. | 3-15% |163164Test one element at a time. 95% statistical significance. Min 1,000 visitors per variant.165166---167168## Hero Architecture (Exact CSS)169170```css171.hero {172 min-height: 100dvh;173 display: grid;174 grid-template-columns: 1fr 1fr;175 align-items: center;176 padding: 0 clamp(2rem, 5vw, 6rem);177 background: #080c1a;178}179180.hero-text {181 max-width: 650px;182}183184.hero-text h1 {185 font-family: 'Cabinet Grotesk', 'Geist', sans-serif;186 font-size: clamp(2.5rem, 5vw, 4.5rem);187 font-weight: 700;188 line-height: 1.05;189 letter-spacing: -0.02em;190 color: #f0ede8;191}192193.hero-text p {194 font-size: clamp(1rem, 1.2vw, 1.25rem);195 line-height: 1.6;196 color: #a09c96;197 max-width: 480px;198 margin-top: 1.5rem;199}200201.hero-cta {202 display: inline-flex;203 align-items: center;204 gap: 0.75rem;205 padding: 16px 48px;206 background: #1B365D;207 color: #f0ede8;208 font-size: 0.9rem;209 font-weight: 500;210 text-transform: uppercase;211 letter-spacing: 0.05em;212 border: none;213 border-radius: 0;214 margin-top: 2rem;215 transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1),216 background 200ms ease;217}218219.hero-cta:hover {220 background: #e05a20;221 transform: translateY(-2px);222}223224.hero-cta:active {225 transform: scale(0.97);226}227```228229---230231## Social Proof232233Place near the top (within first 2 sections). Types by effectiveness:2342351. **Logos of recognizable companies** (3-12, grayscale, hover color. Never use without permission.)2362. **Specific user metrics**: "Join 10,000+ paying customers" - number must be real2373. **Relevant testimonial**: quote with name, title, photo, specific result2384. **Award/certification badge**: only if recognizable (SOC 2, YC, Product Hunt)239240```html241<div class="social-proof">242 <p class="text-sm uppercase tracking-wider text-slate-400 mb-6">Trusted by teams at</p>243 <div class="flex flex-wrap gap-8 items-center opacity-60">244 <img src="stripe.svg" alt="Stripe" class="h-8 grayscale hover:grayscale-0 transition" />245 <img src="vercel.svg" alt="Vercel" class="h-8 grayscale hover:grayscale-0 transition" />246 <img src="shopify.svg" alt="Shopify" class="h-8 grayscale hover:grayscale-0 transition" />247 </div>248</div>249```250251---252253## Problem Section (PAS Framework)254255**Problem**: name the exact pain with specific numbers. "Your landing page converts at 0.8%. The industry average is 3.2%."256**Agitate**: explore consequences of NOT solving it. Money lost. Growth stalled. Competitors winning.257**Solution**: present your approach. "DeployPro uses conversion science from 44,000+ A/B tests to lift conversion rates."258259---260261## Features Grid2622633-6 features. Each one gets:264- Icon (meaningful, not decorative). Single color, consistent stroke width.265- Benefit-led headline: "Ship 3x faster" not "Automated CI/CD"266- 1-2 sentence explanation. No fluff.267268```html269<div class="grid grid-cols-1 md:grid-cols-3 gap-8">270 <div class="feature">271 <Icon icon="zap" class="w-8 h-8 text-amber-500 mb-4" />272 <h3 class="text-lg font-semibold mb-2">Ship 3x faster</h3>273 <p class="text-slate-400">Automated build and deploy pipeline. One command to production.</p>274 </div>275</div>276```277278---279280## Testimonials281282| Element | Rule |283|---------|------|284| Photo | Required. Real person. No stock. |285| Attribution | Full real name, title, company |286| Quote | Specific, results-oriented. "We shipped 40% more features after switching" not "Great product" |287| Length | 1-3 sentences |288| Placement | Near relevant claim. Don't pile all at the bottom. |289290---291292## Pricing2932943 tiers. Middle is your real offer.295296| Position | Role | Strategy |297|----------|------|----------|298| Left (Starter) | Anchor low | Makes middle look reasonable. Price at 40-60% of Pro. |299| Center (Pro) | The offer | Best value, highlighted visually. "Most popular" badge. |300| Right (Enterprise) | Anchor high | Makes middle look affordable. 2-3x Pro. |301302```css303.pricing-card-featured {304 border: 2px solid var(--accent);305 transform: scale(1.05);306 position: relative;307 z-index: 1;308}309310.pricing-card-featured::before {311 content: 'Most popular';312 position: absolute;313 top: 0;314 left: 50%;315 transform: translate(-50%, -50%);316 background: var(--accent);317 color: white;318 padding: 4px 16px;319 border-radius: 9999px;320 font-size: 0.75rem;321 text-transform: uppercase;322 letter-spacing: 0.05em;323}324```325326Rules:327- Annual/monthly toggle (annual = 17-20% discount)328- Every tier lists features explicitly329- Include money-back guarantee near pricing330- No fake scarcity. No "Only 3 spots left" when unlimited.331332---333334## Form Optimization (exact specs)335336| Element | Best practice |337|---------|---------------|338| Fields | Minimum viable. Email only for lead gen. |339| Validation | Inline, real-time, specific error messages |340| Autofill | Enable `autocomplete` attributes |341| Submit | Button says what happens: "Get my free guide", "Start free trial" not "Submit" |342| Error recovery | Preserve entered values, highlight fields |343| Privacy | "No spam. Unsubscribe anytime." |344| Input height | 48px minimum for mobile |345| Input font | 16px minimum (prevents iOS zoom on focus) |346347```html348<form class="space-y-4 max-w-md">349 <div>350 <label for="email" class="block text-sm font-medium mb-1">Work email</label>351 <input352 id="email"353 type="email"354 autocomplete="email"355 required356 class="w-full h-12 px-4 border border-slate-200 text-base rounded-md"357 placeholder="you@company.com"358 />359 </div>360 <button361 type="submit"362 class="w-full h-12 bg-slate-900 text-white font-medium rounded-md363 transition-all duration-160 ease-out364 active:scale-[0.97]"365 >366 Get my free guide367 </button>368 <p class="text-xs text-slate-400 text-center">369 No spam. Unsubscribe anytime.370 </p>371</form>372```373374---375376## Performance (Core Web Vitals 2026)377378| Metric | Target | Measurement |379|--------|--------|-------------|380| INP (Interaction to Next Paint) | < 200ms | Field data (Chrome UX Report) |381| LCP (Largest Contentful Paint) | < 2.5s | Lab + field |382| CLS (Cumulative Layout Shift) | < 0.1 | Lab + field |383| TBT (Total Blocking Time) | < 200ms | Lab only |384| Lighthouse Performance | > 90 | Lab |385386**Achievement checklist:**387- No render-blocking resources above fold388- Hero image preloaded: `<link rel="preload" as="image" href="hero.webp">`389- Critical CSS inlined in `<style>` tag. Async load for rest.390- Images lazy-loaded (`loading="lazy"`) with explicit `width`/`height`391- Fonts self-hosted or preloaded with `font-display: swap`392- Third-party scripts loaded with `defer` or `async`393- Minimal JS. No frameworks for simple landing pages.394395---396397## Mobile Optimization398399| Element | Mobile rule |400|---------|-------------|401| CTA | Full-width, min 48px tall, thumb-friendly |402| Forms | Single column, large inputs (48px min) |403| Font size | Body never below 16px |404| Touch targets | 44-44px min, 12px gap |405| Horizontal scroll | Never. Test on 320px width. |406| Hero | Full-width text, no image until 768px |407408---409410## CRO Audit Checklist411412Before launching, verify:413414- [ ] Value proposition clear in 3 seconds (show to someone new, ask "what is this?")415- [ ] CTA visible without scrolling on mobile and desktop416- [ ] Only one primary CTA above fold417- [ ] Headline under 10 words with specific benefit418- [ ] Hero text NOT centered (left-aligned + right visual)419- [ ] Social proof above fold (logos or metrics)420- [ ] Real testimonials with attribution and specific results421- [ ] LIFT Model: all 6 factors score 4/5 or higher422- [ ] Form: minimum fields, 16px+ font, 48px+ input height423- [ ] Privacy reassurance near form424- [ ] Money-back guarantee near pricing425- [ ] FAQ addresses top 5 real objections426- [ ] Lighthouse Performance > 90427- [ ] Core Web Vitals pass (LCP < 2.5s, INP < 200ms, CLS < 0.1)428- [ ] Mobile: all touch targets = 44-44px, no horizontal scroll429- [ ] A/B test plan: identify highest-impact element, document hypothesis430- [ ] No fake urgency or scarcity431- [ ] No generic stock photos - real product, real people, or illustration432433---434435## Error Handling436437| Scenario | Cause | Fix |438|----------|-------|-----|439| Hero image LCP > 4s | No preload or unoptimized format | Preload with `<link rel="preload" as="image">`, use WebP/AVIF, serve via CDN |440| CLS from late-loading fonts | Web font triggers layout shift | Self-host fonts. Use `font-display: swap`. Preload with `<link rel="preload" as="font">` |441| A/B test inconclusive | Not enough traffic or significance | Min 1,000 visitors/variant, 95% significance, run for 2+ business cycles |442| Form abandonment spike | Too many fields or validation confusion | Reduce to minimum viable fields. Inline real-time validation. Preserve values on error. |443| Mobile bounce rate > 70% | Touch targets too small, horizontal scroll | All touch targets >= 44px. Test at 320px width. No horizontal overflow. |444| Scroll effects jank on mobile | `requestAnimationFrame` scroll listeners | Use CSS `animation-timeline: view()` or IntersectionObserver. Debounce JS scroll handlers. |445| CTA click-through below 1% | Weak copy, wrong placement | A/B test CTA text. Ensure CTA visible without scroll. Single primary action above fold. |446447## Anti-Patterns448449| Mistake | Fix |450|---------|-----|451| Multiple CTAs competing | One primary action per viewport |452| No social proof above fold | Add logos or metrics in hero |453| Weak headline ("Welcome to Our Product") | Specific benefit + audience in 10 words |454| Generic stock photos | Real product screenshots or real people |455| No mobile test | Most traffic is mobile. Test at 320px. |456| Auto-playing video with sound | User-initiated playback only |457| No A/B testing plan | Identify highest-impact element, test one change |458| Centered hero text | Left-aligned text + right-aligned visual |459| "Only 3 spots left" when unlimited | Fake scarcity destroys trust |460| Pricing without annual toggle | Annual = 17-20% discount. Always offer it. |461| CTA says "Submit" | Action verb + value: "Get my free guide" |462| Hero image without preload | `<link rel="preload" as="image">` for LCP |463| `h-screen` for hero | `min-h-[100dvh]` - avoids iOS Safari jump |464| Form inputs under 48px on mobile | iOS zooms on anything under 16px font |465466---467468## Sources469470- Unbounce Conversion Benchmark Report (44,000+ A/B tests analyzed)471- GoodUI.org - A/B tested UI patterns database472- CXL Institute - Conversion optimization research473- WiderFunnel LIFT Model474- NN Group - Conversion studies and usability research475- Refactoring UI - Adam Wathan, Steve Schoger476- Google Web Vitals (web.dev)477- Copyhackers - Conversion copywriting478479## Checklist480481- [ ] Skill loads without errors in the AI agent482- [ ] YAML frontmatter is valid (description, compatibility, audience)483- [ ] Workflow section provides clear step-by-step instructions484- [ ] Error handling section covers common failure modes485- [ ] All referenced files (references/, scripts/, assets/) exist486- [ ] Skill triggers correctly for intended use cases487- [ ] No broken links or missing resources