Landing Page Design logo

Landing Page Design

Community
melgarafael
landing-page-design

Conversion-optimized landing page design — single-file HTML with embedded CSS, no external dependencies. Hero sections, social proof, CTA placement, A/B variants, responsive design, accessibility, and performance (<100KB). Use when generating landing pages or conversion-focused web content.

Overview

Publishermelgarafael
RepositorygrowthOS
Skill namelanding-page-design
Stars
58
Forks
33
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by melgarafael on GitHub. Read the source before you install it.

Installation

Install the Landing Page Design AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/melgarafael/growthOS/tree/main/skills/landing-page-design
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/melgarafael/growthOS.git /tmp/growthOS
mkdir -p .claude/skills
cp -r /tmp/growthOS/skills/landing-page-design .claude/skills/landing-page-design
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Landing Page Design in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Landing Page Design on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Landing Page Design is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Landing Page Design Skill

Generate production-ready, conversion-optimized landing pages as single self-contained HTML files with embedded CSS and zero external dependencies.

Output Constraint: Single-File HTML

Every landing page output MUST be:

  • One .html file — no separate CSS, JS, or image files
  • Embedded CSS via <style> tag in <head>
  • No external dependencies — no CDNs, no Google Fonts links, no external scripts
  • System font stack — font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif
  • Inline SVG only — for icons and simple graphics
  • Max file size: 100KB — enforced, no exceptions
  • No JavaScript unless absolutely required for a specific interaction (accordion, form validation)
html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="[SEO description]">
  <!-- Open Graph -->
  <meta property="og:title" content="[Title]">
  <meta property="og:description" content="[Description]">
  <meta property="og:type" content="website">
  <title>[Page Title]</title>
  <style>
    /* ALL CSS embedded here */
  </style>
</head>
<body>
  <!-- ALL content here -->
</body>
</html>

Page Structure

Every landing page follows this section order:

1. Hero Section (Above the Fold)

The most critical section. Must contain:

  • Headline: Clear value proposition in <10 words
  • Subheadline: Supporting detail in 1-2 sentences
  • Primary CTA: Single button, high contrast, action verb
  • Visual element: Inline SVG illustration or CSS-only graphic
  • Trust signal: One proof point (users count, rating, badge)
html
<section class="hero">
  <h1>[Value proposition — benefit, not feature]</h1>
  <p class="subheadline">[How it works in one sentence]</p>
  <a href="#cta" class="btn-primary">[Action Verb] — [Benefit]</a>
  <p class="trust">[Trust signal: "Used by 10,000+ teams" or "★★★★★ 4.9/5"]</p>
</section>

Hero patterns:

PatternBest ForStructure
CenteredSaaS, appsHeadline + CTA centered, illustration below
SplitProducts with visualsText left, visual right (stacks on mobile)
GradientBold brandsFull-width gradient bg, white text
MinimalPremium/luxuryLots of whitespace, single strong headline

2. Social Proof Section

Position immediately after hero to validate the promise.

html
<section class="social-proof">
  <!-- Option A: Logo bar -->
  <p class="proof-label">Trusted by</p>
  <div class="logo-bar">[Company names or inline SVG logos]</div>

  <!-- Option B: Testimonials -->
  <div class="testimonials">
    <blockquote>
      <p>"[Specific result achieved]"</p>
      <cite>— [Name], [Title] at [Company]</cite>
    </blockquote>
  </div>

  <!-- Option C: Stats -->
  <div class="stats">
    <div class="stat"><strong>[Number]</strong><span>[Label]</span></div>
  </div>
</section>

3. Features / Benefits Section

3-4 benefits maximum. Lead with outcomes, not features.

html
<section class="features">
  <h2>[Section headline — outcome-focused]</h2>
  <div class="feature-grid">
    <div class="feature">
      <div class="feature-icon">[Inline SVG or CSS icon]</div>
      <h3>[Benefit headline]</h3>
      <p>[1-2 sentences explaining the benefit]</p>
    </div>
    <!-- 2-3 more features -->
  </div>
</section>

4. How It Works (Optional)

3-step process. Reduces cognitive load.

html
<section class="how-it-works">
  <h2>How it works</h2>
  <ol class="steps">
    <li><strong>[Step 1]</strong><p>[Brief explanation]</p></li>
    <li><strong>[Step 2]</strong><p>[Brief explanation]</p></li>
    <li><strong>[Step 3]</strong><p>[Brief explanation]</p></li>
  </ol>
</section>

5. CTA Section (Repeat)

Repeat the primary CTA with urgency or additional proof.

html
<section class="cta-section">
  <h2>[Restate value proposition differently]</h2>
  <p>[Urgency or additional benefit]</p>
  <a href="#" class="btn-primary">[Same CTA text as hero]</a>
  <p class="reassurance">[Risk reversal: "No credit card required" / "Cancel anytime"]</p>
</section>

6. Footer

Minimal. Don't distract from conversion.

html
<footer>
  <p>&copy; [Year] [Brand]. [Optional: Privacy | Terms]</p>
</footer>

Conversion Optimization (CRO) Principles

CTA Rules

  • One primary CTA per page — never compete with yourself
  • Above the fold — first CTA visible without scrolling
  • Repeated — CTA appears 2-3 times (hero, mid-page, bottom)
  • Action verb + benefit: "Start Free Trial" not "Submit"
  • High contrast: CTA button must have ≥4.5:1 contrast ratio
  • Size: Minimum 44x44px touch target (mobile accessibility)

Copy Hierarchy

  1. Headline: Benefit-first, <10 words
  2. Subheadline: Supporting detail, 1-2 sentences
  3. Body: Scannable, bullet points preferred
  4. CTA: Action verb, 2-5 words

Psychological Triggers

TriggerImplementation
Social proofNumbers, testimonials, logos
Scarcity"Limited spots" (only if true)
AuthorityCertifications, press mentions
Risk reversal"Money-back guarantee", "No CC required"
ReciprocityFree resource, calculator, tool

Responsive Design

All pages must work across breakpoints:

css
/* Mobile-first approach */
/* Base: mobile (320px+) */
.feature-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }

/* Tablet (768px+) */
@media (min-width: 768px) {
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .hero { padding: 4rem 2rem; }
}

/* Desktop (1024px+) */
@media (min-width: 1024px) {
  .feature-grid { grid-template-columns: repeat(3, 1fr); }
  .hero { padding: 6rem 4rem; }
  body { max-width: 1200px; margin: 0 auto; }
}

Mobile Priorities

  • CTA button full-width on mobile
  • Font size minimum 16px (prevents iOS zoom)
  • Touch targets minimum 44x44px
  • Stack columns vertically
  • Reduce padding, keep content density

Accessibility Requirements

  • Semantic HTML: <header>, <main>, <section>, <footer>
  • All images/SVGs: alt text or aria-label
  • Color contrast: ≥4.5:1 for text, ≥3:1 for large text
  • Focus states: Visible outline on all interactive elements
  • Skip link: Hidden "Skip to content" link
  • Form labels: Every input has associated <label>
  • lang attribute on <html> tag
html
<html lang="en">
<body>
  <a href="#main" class="skip-link">Skip to content</a>
  <header role="banner">...</header>
  <main id="main" role="main">...</main>
  <footer role="contentinfo">...</footer>
</body>

Performance Budget

MetricTarget
Total file size<100KB
First Contentful Paint<1.0s
CSS size<15KB
No external requests0
Inline SVG total<20KB

Performance Techniques

  • CSS custom properties for theming (reduces duplication)
  • prefers-reduced-motion media query for animations
  • prefers-color-scheme for dark mode variant (optional)
  • Minimal CSS — no unused selectors
  • System font stack — zero font loading time

A/B Testing Variants

When generating a landing page, always produce a primary version and specify testable variants:

yaml
ab_variants:
  - element: headline
    control: "[Original headline]"
    variant: "[Alternative headline]"
    hypothesis: "[Why this might convert better]"
  - element: cta_text
    control: "[Original CTA]"
    variant: "[Alternative CTA]"
    hypothesis: "[Why this might convert better]"
  - element: hero_layout
    control: "[centered | split]"
    variant: "[opposite layout]"
    hypothesis: "[Layout impact on conversion]"

CSS Design System (Embedded)

css
:root {
  /* Typography */
  --font-stack: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'Cascadia Code', 'Fira Code', monospace;
  --text-base: 1rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.5rem;
  --text-4xl: 3.5rem;

  /* Spacing (8px grid) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4rem;
  --space-8: 6rem;

  /* Colors — override per brand */
  --color-primary: #2563eb;
  --color-primary-dark: #1d4ed8;
  --color-text: #1a1a2e;
  --color-text-muted: #64748b;
  --color-bg: #ffffff;
  --color-bg-alt: #f8fafc;
  --color-border: #e2e8f0;
  --color-success: #059669;

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;
}

/* Button base */
.btn-primary {
  display: inline-block;
  padding: var(--space-3) var(--space-5);
  background: var(--color-primary);
  color: #fff;
  font-size: var(--text-lg);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
.btn-primary:hover { background: var(--color-primary-dark); }
.btn-primary:focus { outline: 3px solid var(--color-primary); outline-offset: 2px; }

Anti-Patterns

  • External font loading (Google Fonts CDN)
  • JavaScript frameworks for static content
  • Multiple competing CTAs
  • Feature lists without benefit framing
  • Stock photo placeholders (use SVG or CSS)
  • Hamburger menus on landing pages (no nav needed)
  • Footer with 20+ links (landing page ≠ website)
  • Auto-playing video/audio
  • Pop-ups or modals on load

Frequently asked questions

What does the Landing Page Design AI skill do?

Conversion-optimized landing page design — single-file HTML with embedded CSS, no external dependencies. Hero sections, social proof, CTA placement, A/B variants, responsive design, accessibility, and performance (<100KB). Use when generating landing pages or conversion-focused web content.

Why use Landing Page Design on TypingMind?

Because you install it once and use it with any model. Landing Page Design is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Landing Page Design in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/melgarafael/growthOS/tree/main/skills/landing-page-design. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Landing Page Design?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Landing Page Design?

As many as you like. As long as a model supports skills, you can use Landing Page Design with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Landing Page Design AI skill free?

Yes. It is published on GitHub by melgarafael under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇