Appearance
Design System for Landing Pages β
A lightweight design system lets you ship new landing pages in hours instead of weeks β consistency without rigidity.
Why This Matters β
- π» Dev: A design system gives you reusable components, consistent spacing, and predictable markup. You stop rebuilding hero sections from scratch for every campaign and start composing pages from tested, accessible building blocks.
- π PM: Design systems directly reduce time-to-ship. When your team can assemble a new landing page from existing components, you can run more experiments, test more messages, and iterate faster than competitors who design from zero every time.
- π¨ Designer: A design system is not a cage β it is a scaffold. It handles the repetitive decisions (spacing, type sizes, button styles) so you can focus your energy on the creative work that actually differentiates each page.
The Concept (Simple) β
Think of LEGO bricks.
You do not sculpt each creation from clay. You build from standardized, interchangeable components that snap together in new combinations. Every brick has consistent dimensions, consistent connectors, and consistent colors. A 2x4 red brick from 1965 still snaps onto a 2x4 red brick from 2025.
But LEGO does not limit creativity β it enables it. Because you do not have to think about how pieces connect, you think about what to build.
A landing page design system works the same way. Your "bricks" are components: hero sections, feature grids, testimonial cards, pricing tables, CTA blocks, FAQ accordions. Each component has defined spacing, typography, and color usage. When you need a new landing page, you select components, arrange them, and customize the content. The structural decisions are already made.
The result: your team ships a new landing page in an afternoon instead of a sprint. Every page looks like it belongs to the same brand. And when you update a button style, it updates everywhere.
How It Works (Detailed) β
The Anatomy of a Landing Page Design System β
A full design system (like Shopify Polaris or Atlassian's system) has hundreds of components and thousands of tokens. You do not need that for landing pages. Here is the minimum viable design system:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DESIGN SYSTEM LAYERS β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β TOKENS (foundation layer) β β
β β Colors, typography, spacing, shadows, radii β β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ β
β β consumed by β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PRIMITIVES (building blocks) β β
β β Buttons, inputs, badges, icons, links β β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ β
β β composed into β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β COMPONENTS (reusable sections) β β
β β Hero, features grid, testimonials, pricing, β β
β β FAQ, CTA block, footer β β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ β
β β assembled into β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PAGES (final output) β β
β β Homepage, product page, campaign page, signup β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββDesign Tokens β
Tokens are named values that store your design decisions. Instead of using raw values (colors: #6C5CE7, spacing: 24px), you give them semantic names. This makes the system maintainable and themeable.
Token Naming Convention:
ββββββββββββββββββββ¬βββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β Category β Token Name β Value (example) β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Color - Primary β --color-primary β #6C5CE7 (brand purple) β
β β --color-primary- β #5A4BD1 (hover state) β
β β hover β β
β β --color-primary- β #8B7EF0 (light variant) β
β β light β β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Color - Neutral β --color-text β #1A1A2E (primary text) β
β β --color-text-muted β #6B7280 (secondary text) β
β β --color-bg β #FFFFFF (background) β
β β --color-bg-alt β #F9FAFB (alternating bg) β
β β --color-border β #E5E7EB (dividers) β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Color - Semantic β --color-success β #10B981 (green) β
β β --color-error β #EF4444 (red) β
β β --color-warning β #F59E0B (amber) β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Typography β --font-family β 'Inter', sans-serif β
β β --text-hero β 3.5rem / 1.1 line-height β
β β --text-h2 β 2.25rem / 1.2 β
β β --text-h3 β 1.5rem / 1.3 β
β β --text-body β 1.125rem / 1.6 β
β β --text-small β 0.875rem / 1.5 β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Spacing β --space-xs β 4px β
β β --space-sm β 8px β
β β --space-md β 16px β
β β --space-lg β 24px β
β β --space-xl β 48px β
β β --space-2xl β 80px β
β β --space-section β 120px β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Borders β --radius-sm β 4px β
β β --radius-md β 8px β
β β --radius-lg β 16px β
β β --radius-full β 9999px (pill shape) β
ββββββββββββββββββββΌβββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Shadows β --shadow-sm β 0 1px 2px rgba(0,0,0,0.05) β
β β --shadow-md β 0 4px 6px rgba(0,0,0,0.07) β
β β --shadow-lg β 0 10px 15px rgba(0,0,0,0.1) β
ββββββββββββββββββββ΄βββββββββββββββββββββ΄βββββββββββββββββββββββββββββββCore Typography Scale β
Keep it simple. Three to four sizes handle 95% of landing page needs:
βββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Hero Headline (3.5rem / 56px) β
β βββββββββββββββββββββββββββ β
β β
β Section Heading (2.25rem / 36px) β
β βββββββββββββββββββββββ β
β β
β Sub-heading (1.5rem / 24px) β
β βββββββββββββββββ β
β β
β Body Text (1.125rem / 18px) β
β Regular paragraph copy for readability. β
β β
β Small / Caption (0.875rem / 14px) β
β Fine print and labels. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββButton Styles β
Three button variants cover every landing page scenario:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββββ β
β β ββ Primary Action βββ β βββ Filled, brand β
β βββββββββββββββββββββββββ color background, β
β white text β
β β
β βββββββββββββββββββββββββ β
β β Secondary Action β βββ Outlined, brand β
β βββββββββββββββββββββββββ color border + text, β
β transparent bg β
β β
β Ghost Action ββΆ βββ Text only, no β
β border or bg, β
β underline on hover β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββComponent Inventory β
Here is the minimum set of section components you need to build any landing page:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMPONENT INVENTORY β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β HERO SECTION β β
β β Variants: centered, split (text + image), video bg β β
β β Contains: headline, sub-headline, CTA, hero visual β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LOGO BAR / TRUST STRIP β β
β β Variants: static row, scrolling marquee β β
β β Contains: 4-8 company logos, optional label β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FEATURE GRID β β
β β Variants: 2-col, 3-col, alternating rows β β
β β Contains: icon, title, description per feature β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β TESTIMONIAL SECTION β β
β β Variants: single quote, carousel, grid β β
β β Contains: quote, name, role, company, avatar β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PRICING TABLE β β
β β Variants: 2-tier, 3-tier, comparison matrix β β
β β Contains: plan name, price, features, CTA β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β CTA BLOCK β β
β β Variants: inline, full-width banner, floating bar β β
β β Contains: headline, sub-text, button β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FAQ ACCORDION β β
β β Variants: single column, two column β β
β β Contains: question, expandable answer β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β FOOTER β β
β β Variants: minimal, multi-column with links β β
β β Contains: links, legal, social icons β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββThe Spacing Grid β
Use a base unit and multiply consistently. An 8px base is the industry standard (used by Material Design, Ant Design, and most modern systems). Every spacing decision should be a multiple of 8:
8px ββ element padding (inside buttons, inputs)
16px ββ gap between related elements (icon + label)
24px ββ gap between groups (form field to form field)
48px ββ section internal padding
80px ββ between major sections
120pxββ between page-level sections (hero to features)This creates visual rhythm. The eye detects consistent spacing subconsciously, and it reads as "professional." Inconsistent spacing reads as "amateur."
Documenting Components for Handoff β
Each component in your system should have a one-page spec that includes:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMPONENT SPEC: Hero Section (Split Variant) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PURPOSE: Primary above-the-fold section. Communicates β
β the core value proposition and drives primary CTA. β
β β
β VARIANTS: Centered, Split (text + image), Video BG β
β β
β TOKENS USED: β
β - Headline: --text-hero, --color-text, font-weight 700 β
β - Sub-headline: --text-body, --color-text-muted β
β - CTA: Primary button variant β
β - Background: --color-bg or --color-bg-alt β
β - Section padding: --space-section (120px) top/bottom β
β β
β RESPONSIVE BEHAVIOR: β
β - Desktop: two columns (text left, image right) β
β - Tablet: text above, image below β
β - Mobile: text above, image below, full-width CTA β
β β
β CONTENT GUIDELINES: β
β - Headline: max 8 words β
β - Sub-headline: max 25 words β
β - CTA: max 4 words, action-oriented verb β
β β
β ACCESSIBILITY: β
β - Hero image must have alt text β
β - CTA must have minimum 4.5:1 contrast ratio β
β - Heading must be an <h1> β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββIn Practice β
Stripe β Visual Consistency Across Dozens of Pages β
Stripe operates dozens of landing pages β for Payments, Billing, Connect, Atlas, Terminal, Radar, and more. Despite this volume, every page is unmistakably Stripe. How?
Stripe maintains a rigorous internal design system with:
- A fixed typography scale (one display font, one body font, consistent sizes)
- A constrained color palette with gradients as a signature element
- Consistent section patterns: hero with gradient background, feature grid with icons, code example block, CTA with dark background
- Standardized spacing: generous whitespace (often 120px+ between sections) that never varies
The key lesson: Stripe does not redesign each page. They reconfigure the same components with different content. The hero component on the Payments page is structurally identical to the hero on the Billing page β different headline, different illustration, same layout, same spacing, same button style.
Linear β Design System Enables Rapid Page Creation β
Linear's landing pages are clean, dark-themed, and strikingly consistent. Their system is minimal but effective:
- Two colors: near-white text on a near-black background, with a single accent color (purple-blue) for CTAs and highlights
- One font family at three sizes
- Consistent section structure: headline, short description, visual, repeat
- Animations are subtle and consistent β the same fade-up entrance used everywhere
Linear ships new feature announcement pages rapidly because the decisions are already made. A new page is just: write the headline, create the visual, slot it into the existing component structure. The design system makes speed possible without sacrificing quality.
Key Takeaways β
- A landing page design system has four layers: tokens, primitives, components, and pages. Start with tokens and work up.
- You need fewer tokens than you think. Five type sizes, six spacing values, and five colors handle 95% of cases.
- Use an 8px spacing grid for visual rhythm. Every spacing value should be a multiple of 8.
- Three button variants (primary, secondary, ghost) cover every CTA scenario on a landing page.
- Eight section components (hero, logo bar, features, testimonials, pricing, CTA block, FAQ, footer) can build any landing page.
- Document each component with purpose, variants, tokens used, responsive behavior, and content guidelines.
- The goal is not to eliminate creativity β it is to eliminate repetitive decisions so your team can focus on the work that differentiates each page.
Action Items β
ββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π» Dev β β Define design tokens as CSS custom properties in a single β
β β file (tokens.css) β colors, type sizes, spacing, radii β
β β β Build the 8 core section components as reusable β
β β HTML/CSS blocks (or React/Vue components) β
β β β Create a simple page template that imports tokens and β
β β lets you compose sections in any order β
β β β Set up a component playground (Storybook or a simple β
β β HTML page) where the team can preview all components β
ββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π PM β β Audit your last 5 landing pages β how many sections were β
β β built from scratch vs reused? Identify reuse opportunities β
β β β Track time-to-ship for the next landing page built with β
β β the system vs without β quantify the speed gain β
β β β Maintain a living inventory of components and their β
β β variants so the team knows what is available β
ββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π¨ Designβ β Create a Figma component library with the 8 core β
β β sections and their variants β
β β β Define and document the token system (colors, type, β
β β spacing) in a single source of truth β
β β β Write content guidelines for each component (max word β
β β counts, tone, formatting rules) β
β β β Build one new landing page using only existing components β
β β to validate the system covers real needs β
ββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ