# Minimal UI Patterns — Linear, Stripe, Vercel, and friends
> A deep-dive into the six most useful minimal-SaaS sub-styles. Read this when `aesthetics.md` §1 (Refined Minimal) is right for the project, but you need to pick a *specific* direction. Each sub-style has concrete rules, palettes, components, and references — not vibes.
---
## How to use this file
`aesthetics.md` §1 says: **Refined Minimal** when the product is SaaS, fintech, dev tools, or B2B. That's the family.
This file says: **which Linear-style cousin** to ship. Because "minimal" without a specific direction is just empty.
Decision rule:
1. **Is the product B2B / SaaS / fintech / dev tools?** If no → wrong family, go back to `aesthetics.md`.
2. **Pick the sub-style** that matches the audience and tone (use the table below).
3. **Commit to it.** Don't blend Linear's purple with Stripe's indigo. Don't mix Vercel's pink with Arc's sage.
---
## Sub-style comparison
| Sub-style | Mood | Theme | Accent | Audience |
|---|---|---|---|---|
| **Linear** | Quiet confidence, dense, precise | Dark default | Purple `#5E6AD2` | Engineering teams, power users |
| **Stripe** | Authoritative, code-forward, premium | Light or dark | Indigo `#635BFF` | Developers, technical buyers |
| **Vercel** | Stark, geometric, opinionated | Either (often B/W) | None, or pink `#FF0080` | Frontend devs, designers, agencies |
| **Arc** | Warm, considered, premium browser | Light, warm tones | Subtle red or sage | Knowledge workers, writers, designers |
| **Mercury** | Editorial premium, banking-quality | Light, off-white | Deep green or deep blue | Finance teams, ops, founders |
| **Cron / Notion Calendar** | Friendly precise, soft personality | Off-white, warm | Multi-hue palette (semantic) | Creators, schedulers, knowledge workers |
When unsure → **Linear**. It is the safest high-quality baseline for dark-mode B2B SaaS.
---
## 1. Linear
**Live reference:** [linear.app](https://linear.app)
### Identity
The reference standard for dark-mode minimal SaaS. Quiet, dense, precise. Every pixel is a decision. The interface gets out of the way. The accent is purple, the chrome is hairline, the typography is Inter, the geometry is exact.
### When to choose
- Engineering teams, product teams, ops teams
- Power users who live in the app 8 hours a day
- Products that compete on density of information
- Dark mode by default is appropriate
### Palette
```
--surface: #08090A /* deep, near-black */
--surface-1: #1B1C1F /* panels, sidebar */
--surface-2: #26272B /* elevated cards */
--surface-3: #2F3034 /* hover */
--ink: #F7F8F8 /* warm-tinted near-white */
--ink-muted: #8A8F98 /* secondary */
--ink-subtle: #62666D /* tertiary */
--hairline: #1F2024
--hairline-strong: #2C2D31
--accent: #5E6AD2 /* Linear purple — the signature */
--accent-strong: #7176E0 /* hover */
--accent-soft: rgba(94, 106, 210, 0.14)
--good: #4CB782
--warn: #E2B203
--bad: #EB5757
```
### Typography
- **All sans.** Inter Display for headlines, Inter for UI, Inter (or Geist) for body.
- **No mono in chrome**, except for keyboard shortcut hints (`⌘K`).
- **Weights:** 400 body, 500 medium for UI controls, 600 semibold for headings and primary actions. Almost never 700.
- **Hero size:** `clamp(2.75rem, 5vw, 4.5rem)` — confident, not dramatic.
- **Line-height:** tight on display (1.05–1.15), 1.5 on body.
- **Tracking:** -0.02em on display, 0 elsewhere. Linear doesn't track all-caps positive in chrome.
### Layout
- **Max content width:** ~1100px
- **Sidebar:** ~240px wide, collapsible to 56px (icon-only). Always dark, always present in app.
- **Top nav (marketing):** 60–64px tall, sticky, blur backdrop, hairline bottom border.
- **Asymmetric hero:** headline left (5/12 cols), product UI right (7/12 cols). Never centered.
- **Padding:** generous (px-12 desktop, px-6 mobile).
### Signature patterns
**The sidebar**
- Section labels in caps mono, +0.1em tracking
- Active item: 4px left border in `--accent`, OR background tint in `--accent-soft`
- Icon + label, 32px row height, 14px font
- Section dividers as 1px hairlines, generous vertical spacing between sections
**The "New Issue" modal (or any command modal)**
- Centered, max-width 560px
- Input field at the top, full-width, no border, large
- List of suggestions below, keyboard-driven (`↑ ↓ ↵`)
- `Esc` closes, `⌘K` opens
- Background dimmed to ~50% opacity
- Subtle scale-in (0.98 → 1, 120ms ease-out)
**The empty state**
- Centered, single illustration or icon (geometric, 1.5px stroke)
- One sentence explaining what's missing
- One action button ("Create your first issue")
- Linear's empty states are famously restrained — almost no decoration
**The list item**
- 40–48px tall
- Single line of content
- Status dot (left), title (center), metadata (right, mono)
- Hover: background tints to `--surface-2`
- Selected: background tints to `--accent-soft` (subtle)
- No drop shadows, no rounded corners beyond 6px
**The button**
- Two heights: 32px (compact) and 40px (default)
- Border radius: 6px
- Primary: `--accent` background, white text
- Secondary: transparent, 1px hairline-strong border
- Hover (secondary): border becomes white
- Active: `transform: scale(0.98)` 80ms
### Hallmarks to preserve
- ✅ Hairline borders instead of shadows
- ✅ Tabular numerals everywhere (font-feature-settings: 'tnum')
- ✅ Inter (or close cousin — Geist) as the *only* family
- ✅ 6px radius on everything — never pill
- ✅ Information density is high, density is comfortable
- ✅ Keyboard-first (visible shortcuts, ⌘K command palette)
### Anti-patterns to avoid
- ❌ Drop shadows on cards
- ❌ Bright/saturated colors anywhere
- ❌ Glassmorphism
- ❌ Animations beyond 150ms
- ❌ Centering hero content
- ❌ Decorative illustrations in chrome
- ❌ Bouncy/spring easing
---
## 2. Stripe
**Live reference:** [stripe.com](https://stripe.com)
### Identity
Authoritative. Code-forward. Premium. Stripe uses code as marketing — every page has a code block, every product has a curl example. The typography is Söhne (paid) or a careful sans substitute. The accent is a distinctive indigo, present but never loud.
### When to choose
- Developer-facing products
- API products, infrastructure, fintech, payments
- Audiences who read code on landing pages
- Products where the API IS the value proposition
### Palette
```
--surface: #FFFFFF /* or #F6F9FC for sections */
--surface-1: #F6F9FC /* soft cool tint */
--surface-2: #FFFFFF
--surface-3: #E8EDF2
--ink: #0A2540 /* Stripe's deep navy, not black */
--ink-muted: #425466
--ink-subtle: #8898AA
--hairline: #E8EDF2
--hairline-strong: #D4DBE3
--accent: #635BFF /* Stripe indigo */
--accent-strong: #5247DB
--accent-soft: #EBF0FF
--good: #00875A
--warn: #FFB300
--bad: #E25950
```
Note: Stripe's primary ink is `#0A2540` (deep navy), not pure black. This is a signature choice — softer than black, more authoritative than gray.
### Typography
- **Söhne** (paid) for everything; substitute with **Inter Display** + **Inter** for free.
- Weights: 400 body, 500 for UI, 600 for headings.
- **Hero size:** `clamp(2.5rem, 5vw, 4.25rem)` — confident, restrained.
- **Section H2:** `clamp(1.875rem, 3vw, 2.5rem)`.
- **Tracking:** -0.02em on display, 0 on body.
### Layout
- Max-width 1080–1140px (Stripe is slightly narrower than typical SaaS)
- Hero: text left, abstract visualization right (gradients OK here, used with restraint and brand-color)
- Below the fold: dense sections, often with code blocks
- Code block as a marketing surface — never decorative
### Signature patterns
**The "gradient hero" (Stripe-specific)**
Stripe is one of the few brands that uses a gradient hero well — and only because the gradient is *internal*, not purple-to-blue:
```
background: linear-gradient(180deg, #F6F9FC 0%, #FFFFFF 100%);
/* or a subtle radial in brand color */
background: radial-gradient(ellipse at top, rgba(99, 91, 255, 0.12) 0%, transparent 50%);
```
The gradient is atmosphere, not decoration. Pure white below the fold.
**The code block**
- This is the marketing surface. Make it look like a real terminal.
- Dark background (`#0A2540` or `#1B1B3A`)
- Syntax highlighting in brand palette (indigo, light cyan, light pink)
- Window chrome (red/yellow/green dots) for terminal feel
- Inline cursor blinking on one line
- Comment line explaining what the code does, in italic
```
$ stripe listen --forward-to localhost:3000/webhook
> Ready! Listening for events...
> 2026-04-12 14:32:11 [200] checkout.session.completed
```
**The "stacked cards" pricing**
Stripe uses stacked card preview — three cards with subtle offset and shadow, showing the product from multiple angles. Used in payment-method pages.
**The numbered grid**
Often Stripe presents features as a numbered list (01, 02, 03) with a description and a small visualization. Not the generic 3-card row.
### Hallmarks
- ✅ Code block is a hero element
- ✅ Stripe indigo used precisely (links, focus, primary CTA, syntax highlighting)
- ✅ Navy ink `#0A2540` instead of pure black
- ✅ Generous whitespace, dense info
- ✅ Real product screenshots in context, not abstract
- ✅ Subtle gradients (atmospheric, not decorative)
### Anti-patterns to avoid
- ❌ Generic "3-card features" grid
- ❌ Stock photos of developers
- ❌ "Empowering developers to..." copy
- ❌ Code blocks with fake/lorem code (Stripe uses real examples)
- ❌ Loud hero gradients that compete with content
---
## 3. Vercel
**Live reference:** [vercel.com](https://vercel.com)
### Identity
Stark. Geometric. Opinionated. Vercel often ships pure black on white or pure white on black, with a single accent color (often none, sometimes a hot pink). The type is Geist (their own). The geometry is sharp — square corners, dense info, sharp typography.
### When to choose
- Frontend developer tools, frameworks, deployment platforms
- Products that need to feel fast and modern
- Audiences that respect B/W restraint
- Anything that needs to feel "opinionated"
### Palette
**Default (white):**
```
--surface: #FFFFFF
--surface-1: #FAFAFA
--surface-2: #F4F4F5
--ink: #000000 /* Vercel uses pure black */
--ink-muted: #71717A
--ink-subtle: #A1A1AA
--hairline: #E4E4E7
--hairline-strong: #D4D4D8
--accent: #FF0080 /* Vercel pink, used sparingly */
--accent-soft: rgba(255, 0, 128, 0.08)
```
**Dark (also common):**
```
--surface: #000000
--surface-1: #0A0A0A
--surface-2: #111111
--ink: #FFFFFF /* Vercel uses pure white */
--ink-muted: #A1A1AA
--ink-subtle: #71717A
--hairline: #1F1F1F
--hairline-strong: #2E2E2E
--accent: #FF0080
--accent-soft: rgba(255, 0, 128, 0.12)
```
Vercel uses *pure* black and *pure* white — this is a deliberate choice. Most brands shouldn't, but Vercel can because the rest of the design carries the weight.
### Typography
- **Geist Sans** (their own, free) or **Inter** as substitute
- **Geist Mono** for code, kickers
- Weights: 400 body, 500 UI, 600 headings. Very rarely 700.
- **Hero size:** `clamp(3rem, 6vw, 5rem)` — confident, often large.
- **Tracking:** -0.04em on display headlines (Vercel tracks tight, even tighter than Linear).
- **Line-height:** 1.0 on display headlines (very tight).
### Layout
- Max-width 1200px
- Hero: usually large headline left or centered, with a sharp product UI mockup (often a terminal or dashboard).
- Sharp grid, generous spacing between sections.
- Sharp corners (radius 0 or 4px max).
### Signature patterns
**The black/white inversion**
Vercel often ships the same product in both themes. The dark theme is *pure black* with white text — not the "not-quite-black" pattern of Linear.
**The terminal-as-hero**
Terminal screenshots as the hero image. Pure black background, monospace text, sometimes a subtle gradient at the edge. The terminal is the product.
```
$ vercel deploy
> Production: https://my-app.vercel.app [copied to clipboard]
> Completed in 1.247s
```
**The "all caps micro labels"**
Section labels and metadata in uppercase mono, but with Vercel's tight tracking (not the wide tracking common elsewhere). Reads as a system, not a decoration.
**The geometric icons**
Custom or Lucide icons, 16–20px, 1.5px stroke. Sharp, no rounded corners on icons.
### Hallmarks
- ✅ Pure black or pure white backgrounds (Vercel breaks the "don't use pure" rule, intentionally)
- ✅ Geist Sans + Geist Mono pairing
- ✅ Very tight tracking (-0.04em on display)
- ✅ Sharp corners (radius 0–4px)
- ✅ Terminals as hero images
- ✅ Hot pink accent used on one CTA per page max
### Anti-patterns to avoid
- ❌ Rounded corners > 8px
- ❌ Soft pastels
- ❌ Decorative illustrations
- ❌ Multiple accent colors
- ❌ Centered everything (Vercel often centers hero, but it's deliberate — a *statement* of restraint, not a default)
- ❌ Heavy animations
---
## 4. Arc
**Live reference:** [arc.net](https://arc.net)
### Identity
Warm, considered, premium. Arc's marketing is editorial-influenced — generous typography, soft warm tones, restrained accents, considered spacing. The browser itself is also designed this way. The aesthetic is "premium software for thoughtful people."
### When to choose
- Consumer products with premium positioning
- Tools for writers, designers, knowledge workers
- Products where personality is a feature
- Anything that wants to feel "considered" without feeling cold
### Palette
```
--surface: #FBFBF8 /* warm off-white, Arc's signature */
--surface-1: #FFFFFF
--surface-2: #F4F4EE /* slightly warmer */
--ink: #191919
--ink-muted: #6E6E6E
--ink-subtle: #A8A8A8
--hairline: #E8E8E0
--hairline-strong: #D4D4C8
--accent: #FF554A /* Arc red — used very sparingly */
--accent-soft: rgba(255, 85, 74, 0.1)
--good: #2E7D32
--warn: #ED6C02
--bad: #D32F2F
```
The accent is red — used like editorial red (subhead accents, focus, "go" indicators). Almost never on backgrounds.
### Typography
- **GT Walsheim** (paid) or **Inter** substitute
- Generous display sizes, often with serif influence
- Hero size: `clamp(2.75rem, 5vw, 4.5rem)` — confident, generous
- Tracking: -0.02em on display
- Line-height: 1.05 on display
### Layout
- Max-width 1200px
- Hero: large headline, product UI as visual (often the browser window itself)
- Section H2s often have serif italic emphasis on key word
- Asymmetric but warm
### Signature patterns
**The browser-as-hero**
The product is the browser, so the hero *is* a browser window. Rendered in CSS, sharp, considered.
**The "red emphasis"**
Italic word or short phrase in display face, set in accent red. Like an editorial pull quote, used inline in headlines.
```
The browser
that thinks
with you.
```
**The "small card, big moment"**
Arc uses small product moments (a single feature panel) with very generous surrounding whitespace. Less is more.
### Hallmarks
- ✅ Warm off-white background (not pure white)
- ✅ Considered italic emphasis in headlines
- ✅ Soft product screenshots (browser windows with internal UI)
- ✅ Generous whitespace
- ✅ Red accent on maybe 5% of pixels
### Anti-patterns to avoid
- ❌ Pure white background (breaks warmth)
- ❌ Cold blue accents
- ❌ Glassmorphism
- ❌ Multiple accent colors
- ❌ Bouncy animations
---
## 5. Mercury / premium fintech
**Live reference:** [mercury.com](https://mercury.com)
### Identity
Editorial premium. Banking-quality. Mercury positions itself as the bank for startups, and its design language is "Stripe for finance" — clean, dense, considered, with serif influence in some headlines.
### When to choose
- Fintech products
- Banking, payments, treasury
- Premium positioning in any B2B vertical
- Products where the audience expects "considered" design
### Palette
```
--surface: #FFFFFF
--surface-1: #FAFAF8 /* warm tint */
--surface-2: #F4F2EE
--ink: #1A1A1A
--ink-muted: #6E6E6E
--ink-subtle: #999999
--hairline: #E8E5DE
--hairline-strong: #D4D0C6
--accent: #1B4332 /* Mercury deep green */
--accent-soft: #E8F0EC
```
Mercury uses a deep, considered green as accent — almost no other brand does this, so it reads as "premium banking" instantly.
### Typography
- **Söhne** (paid) + occasional serif (Tiempos) for editorial moments
- Substitute: **Inter** for sans, **GT Super** or **Fraunces** for serif
- Hero size: `clamp(2.5rem, 5vw, 4rem)` — confident
- Section H2: `clamp(1.875rem, 3vw, 2.5rem)`
### Layout
- Max-width 1200px
- Hero: headline left, product UI right (always — never centered)
- Dense sections below with data and tables
- Generous whitespace between sections
### Signature patterns
**The "table as hero"**
Fintech products often show tables of data (transactions, balances) in hero sections. Mercury does this well — clean rows, tabular numerals, hairline dividers.
**The "data visualization"**
Numbers are presented as design — not as decoration. Big numbers with context, comparison, trend indicators.
**The serif moment**
A serif word in an otherwise sans context. Used sparingly. Signals "we have time to consider this."
### Hallmarks
- ✅ Deep green or deep blue accent (premium banking colors)
- ✅ Serif moment in headlines (sparingly)
- ✅ Tables as design elements
- ✅ Editorial influence in copy and rhythm
- ✅ Generous whitespace
### Anti-patterns to avoid
- ❌ Bright/banking-blue accents (#1E88E5 etc.)
- ❌ Decorative charts (charts should be data, not decoration)
- ❌ Centered hero
- ❌ Generic fintech marketing copy
---
## 6. Cron / Notion Calendar (friendly precise)
**Live reference:** [cron.com](https://cron.com), [notion.so/product/calendar](https://notion.so/product/calendar)
### Identity
Friendly but precise. Off-white backgrounds, warm tones, multi-hue palette used *semantically* (each color = a category, state, or feature). Rounded but not pill. Custom illustrations. Has personality without losing professionalism.
### When to choose
- Productivity tools, calendars, schedulers
- Knowledge work products
- Consumer B2B (Notion, Cron, Things)
- Anything where delight is part of the value
### Palette
```
--surface: #FAF8F5 /* warm off-white */
--surface-1: #FFFFFF
--surface-2: #F2EFEA
--ink: #1F1F1F
--ink-muted: #6B6B6B
--ink-subtle: #A8A8A8
--hairline: #E8E5DE
/* Multi-hue semantic palette — used like categories */
--hue-1: #FF6B6B /* coral */
--hue-2: #4ECDC4 /* teal */
--hue-3: #FFD93D /* mustard */
--hue-4: #6C5CE7 /* soft purple */
--hue-5: #95E1D3 /* mint */
```
Each color is used for a specific category. The palette is coherent (all desaturated, similar value).
### Typography
- **GT Walsheim** (paid) or **Inter** substitute
- Display: `clamp(2.5rem, 5vw, 4rem)`
- Friendly but not casual
- Tracking: -0.02em on display
### Layout
- Max-width 1200px
- Hero: large headline + product UI (calendar view)
- Custom illustrations as visual texture
- Rounded corners: 8–12px
### Signature patterns
**The semantic color**
Each product category, feature, or user has a color. The color is *meaningful*, not decorative.
**The custom illustration**
Cron and Notion Calendar use custom illustrations as visual texture — geometric, friendly, consistent style. Not stock, not emoji.
**The "personality in microcopy"**
Microcopy has a voice. Empty states have a sentence that makes you smile. Tooltips have one-liners.
### Hallmarks
- ✅ Multi-hue palette used semantically
- ✅ Custom illustrations (geometric, friendly)
- ✅ Off-white warm backgrounds
- ✅ Rounded but not pill (8–12px)
- ✅ Microcopy with personality
### Anti-patterns to avoid
- ❌ Emoji as icons
- ❌ Stock photos
- ❌ Generic 3-card row with icons
- ❌ Loud/bright colors with no logic
- ❌ Corporate throat-clearing copy
---
## 7. Sublime
**Live reference:** [sublime.app](https://sublime.app)
### Identity
macOS-native email client with a calm, considered, premium feel. Generous spacing, light, airy. Subtle warm off-white. The aesthetic of "premium productivity software" applied to email — quiet confidence, soft depth, restraint.
### When to choose
- Productivity tools with macOS / native feel
- Email, notes, calendar apps
- Anything targeting "thoughtful" professional users
- Premium positioning in consumer productivity
### Palette
```
--surface: #FBFBFA /* warm off-white, very subtle tint */
--surface-1: #FFFFFF
--surface-2: #F4F4F1
--ink: #1A1A1A
--ink-muted: #6B6B6B
--ink-subtle: #A0A0A0
--hairline: #E8E8E5
--hairline-strong: #D4D4D0
--accent: #1A73E8 /* Sublime's restrained blue */
--accent-soft: #E8F0FE
--good: #1E8E3E
--warn: #F9AB00
--bad: #D93025
```
Note: Sublime uses a quiet blue, not a loud one. Almost editorial in restraint.
### Typography
- **SF Pro Display / SF Pro Text** (Apple system) or **Inter** as substitute
- Weights: 400 body, 500 for UI, 600 for headings
- Hero size: `clamp(2rem, 4vw, 3rem)` — calm, not dramatic
- Tracking: -0.01em on display (subtle)
- Generous line-height: 1.6 on body
### Layout
- Max-width 1100px (narrower than typical SaaS)
- Hero: small headline + generous space + product UI screenshot
- Section H2s often in serif (subtle editorial influence)
### Signature patterns
- ✅ Sidebar with subtle hover state, no harsh borders
- ✅ Generous line-height in lists (each row has air)
- ✅ Soft shadows only on floating elements (modals, popovers)
- ✅ "Premium native app" feel — like Apple Mail, but better designed
- ✅ Soft depth via very subtle backgrounds, not shadows
### Anti-patterns to avoid
- ❌ Heavy drop shadows
- ❌ Loud accent colors
- ❌ Dense data tables (Sublime is about calm, not density)
- ❌ Aggressive animations
---
## 8. Height (project management)
**Live reference:** [height.app](https://height.app)
### Identity
Auto-updating project management with a clean, professional aesthetic. Light by default (rare for PM tools). Specific to "tasks that update themselves" — the interface gets out of the way, the data does the talking.
### When to choose
- Project management, task tools
- Tools where automation is the value proposition
- B2B tools that want to feel "modern but professional"
- Audiences that want clarity over personality
### Palette
```
--surface: #FFFFFF
--surface-1: #FAFAFA
--surface-2: #F4F4F5
--ink: #18181B /* near-black, slightly cool */
--ink-muted: #71717A
--ink-subtle: #A1A1AA
--hairline: #E4E4E7
--hairline-strong: #D4D4D8
--accent: #5D5FEF /* Height's blue-purple */
--accent-soft: #EEEEFE
--good: #10B981
--warn: #F59E0B
--bad: #EF4444
```
### Typography
- **Inter** for everything (Height's choice)
- Mono for keyboard shortcuts and metadata
- Hero size: `clamp(2.25rem, 4.5vw, 3.5rem)` — calm, confident
- Tracking: -0.02em on display
- Line-height: 1.05 on display, 1.5 on body
### Layout
- Max-width 1200px
- Sidebar (in app) — collapsible
- Marketing hero: text left, product UI right
- Generous section spacing
### Signature patterns
- ✅ Clean, light professional aesthetic (rare for PM tools)
- ✅ Strong, clear status indicators
- ✅ Property-based UI (custom fields visible, machine-readable)
- ✅ Generous whitespace, low visual noise
- ✅ Dense info but never cluttered
### Anti-patterns to avoid
- ❌ Heavy dark themes (Height is light-first)
- ❌ Loud, marketing-y hero
- ❌ Decorative illustrations
- ❌ Generic "3-card features" presentation
---
## 9. Pitch
**Live reference:** [pitch.com](https://pitch.com)
### Identity
Presentation tool with more personality than Linear, more polish than Notion. Modern, warm, with strong color usage (multi-hue semantic palette like Cron). Custom illustrations. Generous whitespace.
### When to choose
- Creative tools, presentation software
- Collaboration products
- Tools that want personality without losing professionalism
- Anything targeting designers, marketers, agencies
### Palette
```
--surface: #FAFAF7
--surface-1: #FFFFFF
--surface-2: #F4F2EC
--ink: #1F1F1F
--ink-muted: #6B6B6B
--ink-subtle: #A8A8A8
--hairline: #E8E5DE
/* Multi-hue semantic — each color has meaning */
--hue-primary: #FF4D6D /* coral pink — primary CTA */
--hue-secondary: #5B5FED /* purple-blue — secondary */
--hue-tertiary: #00C2A8 /* teal — status */
--hue-warning: #FFB800
```
### Typography
- **Inter** for UI + **GT Super** or **Fraunces** for display moments
- Display: `clamp(2.5rem, 5vw, 4rem)`
- Tracking: -0.02em on display
- Line-height: 1.1 on display
### Layout
- Max-width 1200px
- Hero: text + product UI mockup (a slide being edited)
- Custom illustrations as visual texture
- Asymmetric sections with mixed media
### Signature patterns
- ✅ Multi-color semantic palette (each color = a category or feature)
- ✅ Custom geometric illustrations
- ✅ Personality in microcopy
- ✅ Slight serif influence (display moments)
- ✅ Generous whitespace between bold moments
### Anti-patterns to avoid
- ❌ Boring single-accent palette
- ❌ Stock illustrations
- ❌ Generic 3-card features
- ❌ Loud animations
---
## 10. Figma
**Live reference:** [figma.com](https://figma.com)
### Identity
Design tool marketing that's technical, dense, and full of personality. Multi-color palette (each Figma product has its color). Mixed sans typography. Strong grid. Custom iconography. Code-forward in some pages (CSS, SVG, Figma plugin code).
### When to choose
- Developer / designer tools
- Products where extensibility / API is a feature
- Tools with multiple sub-products (each can have its own color)
- Anything that wants to feel "made by designers, for designers"
### Palette
```
--surface: #FFFFFF
--surface-1: #F5F5F5
--surface-2: #E5E5E5
--ink: #1E1E1E
--ink-muted: #5C5C5C
--ink-subtle: #8C8C8C
--hairline: #E5E5E5
--hairline-strong: #C7C7C7
/* Multi-product palette — each Figma product = a color */
--hue-figma: #F24E1E /* orange-red */
--hue-figjam: #A259FF /* purple */
--hue-dev: #0ACF83 /* green */
--hue-make: #9747FF /* deeper purple */
--hue-slides: #FF7262 /* coral */
```
### Typography
- **Inter** for everything (Figma's choice)
- Mono for code blocks (JetBrains Mono)
- Hero size: `clamp(2.5rem, 5vw, 4rem)` — confident
- Tracking: -0.02em on display
- Sometimes uses serif for editorial moments (rare)
### Layout
- Max-width 1280px
- Hero: large headline + product UI screenshot (a Figma canvas with shapes)
- Code blocks as marketing surfaces (CSS, plugin code)
- Strong grids, dense info
### Signature patterns
- ✅ Multi-product color coding
- ✅ Custom geometric icons (Figma's famous logomark family)
- ✅ CSS / SVG / plugin code shown as marketing
- ✅ "Designed by designers" aesthetic — slightly meta
- ✅ Mixed media: UI + illustration + code on one page
### Anti-patterns to avoid
- ❌ Single-accent palette (defeats Figma's multi-product identity)
- ❌ Heavy drop shadows
- ❌ Generic "tools for designers" marketing
- ❌ Stock photos
---
## 11. Notion (main app / workspace)
**Live reference:** [notion.so](https://notion.so)
### Identity
All-in-one workspace with the most distinctive illustration system in modern SaaS. Off-white warm background, custom hand-drawn-feeling illustrations (geometric, friendly, slightly weird), generous whitespace, restrained accents, personality in microcopy.
### When to choose
- Productivity, notes, docs tools
- All-in-one workspace products
- Tools targeting "creative knowledge workers"
- Anything that wants warmth + utility
### Palette
```
--surface: #FAF9F7 /* warm off-white */
--surface-1: #FFFFFF
--surface-2: #F4F2EE
--ink: #2F2F2F
--ink-muted: #6B6B6B
--ink-subtle: #A8A8A8
--hairline: #E8E5DE
--hairline-strong: #D4D0C6
--accent: #2383E2 /* Notion's blue */
--accent-soft: #E6F0FB
```
Notion's "accent" is blue, but it's used very sparingly. The illustrations carry the color.
### Typography
- **Inter** for UI
- Sometimes **Source Serif** for editorial moments
- Hero size: `clamp(2.5rem, 5vw, 4rem)` — confident, generous
- Tracking: -0.02em on display
- Line-height: 1.1 on display, 1.55 on body
### Layout
- Max-width 1200px
- Hero: text + product UI (a Notion page being edited)
- Custom illustrations throughout, often as the visual focus of a section
### Signature patterns
- ✅ **Custom illustrations** — hand-drawn feel, geometric, slightly weird, friendly. This is Notion's signature. Don't try to copy exactly; understand the principle: illustrations have *personality*, are *consistent in style*, and are *the visual focus* of sections.
- ✅ Generous whitespace
- ✅ Personality in microcopy: "Welcome back", "Add a thing", empty states that say something
- ✅ Sidebar with sections, page tree, simple icons
- ✅ Minimal chrome — the page is the focus
### Anti-patterns to avoid
- ❌ Generic 3-card features with stock icons
- ❌ Loud bright colors
- ❌ Heavy drop shadows
- ❌ Corporate throat-clearing copy
---
## Decision tree (updated)
```
B2B SaaS / fintech / dev tool?
├── Yes
│ ├── Dark mode primary?
│ │ ├── Yes → Linear
│ │ └── No (or both) → continue
│ ├── Code-forward / API-first?
│ │ ├── Yes → Stripe
│ │ └── No → continue
│ ├── B/W stark minimal?
│ │ ├── Yes → Vercel
│ │ └── No → continue
│ ├── Premium fintech / banking?
│ │ ├── Yes → Mercury
│ │ └── No → continue
│ ├── Premium consumer with personality?
│ │ ├── Yes → Arc
│ │ └── No → continue
│ └── Friendly productive tool?
│ └── Yes → Cron / Notion Calendar
└── No → wrong family, return to aesthetics.md
```
---
## Hybrid rules (when forced to combine)
Sometimes a project sits between two sub-styles. Rules:
1. **Pick the dominant one** — 70/30, not 50/50.
2. **Share typography family** — if Linear + Stripe, both use Inter. Don't mix Söhne and Inter.
3. **Share accent philosophy** — don't blend purple + indigo + sage. Pick one.
4. **Surface consistency** — if dark in some places and light in others, ensure the chrome (nav, footer) is consistent.
5. **Different sub-styles for marketing vs product** is fine — Linear-style marketing, Mercury-style dashboard, etc. They share typography and tokens.
---
## What to read next
- For typography system setup → `typography.md`
- For color token implementation → `color.md`
- For component patterns (buttons, forms, tables) → `components.md`
- For motion principles → `motion.md`
- For anti-patterns to reject → `anti-patterns.md`
- For final QA → `checklist.md`