update design.md v2
This commit is contained in:
+489
-216
@@ -1,253 +1,526 @@
|
||||
# Design System Inspired by Warp
|
||||
---
|
||||
version: alpha
|
||||
name: Warp Inspired
|
||||
description: An inspired interpretation of Warp's design language — an agentic terminal-and-development-environment brand whose surface is a warm near-charcoal canvas (a tint warmer than pure black), broken only by clean Inter typography, the occasional Instrument Serif italic moment, and dense terminal-mockup imagery; CTAs are unusually understated, with shape geometry running tighter than most marketing sites.
|
||||
|
||||
## 1. Visual Theme & Atmosphere
|
||||
colors:
|
||||
primary: "#f7f5f0"
|
||||
on-primary: "#2b2622"
|
||||
ink: "#f7f5f0"
|
||||
body: "#c9c0ad"
|
||||
body-strong: "#dad2c1"
|
||||
mute: "#aea69c"
|
||||
canvas: "#2b2622"
|
||||
canvas-soft: "#383330"
|
||||
hairline: "#3f3a36"
|
||||
|
||||
Warp's website feels like sitting at a campfire in a deep forest — warm, dark, and alive with quiet confidence. Unlike the cold, blue-tinted blacks favored by most developer tools, Warp wraps everything in a warm near-black that feels like charred wood or dark earth. The text isn't pure white either — it's Warm Parchment (`#faf9f6`), a barely-perceptible cream that softens every headline and makes the dark canvas feel inviting rather than austere.
|
||||
typography:
|
||||
display-xl:
|
||||
fontFamily: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif
|
||||
fontSize: 64px
|
||||
fontWeight: 400
|
||||
lineHeight: 70.4px
|
||||
letterSpacing: -1.6px
|
||||
display-lg:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 48px
|
||||
fontWeight: 400
|
||||
lineHeight: 52.8px
|
||||
letterSpacing: -1.2px
|
||||
display-md:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 32px
|
||||
fontWeight: 500
|
||||
lineHeight: 40px
|
||||
letterSpacing: -0.8px
|
||||
display-sm:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 24px
|
||||
fontWeight: 500
|
||||
lineHeight: 32px
|
||||
letterSpacing: -0.4px
|
||||
display-serif:
|
||||
fontFamily: Instrument Serif, Georgia, "Times New Roman", serif
|
||||
fontSize: 48px
|
||||
fontWeight: 400
|
||||
lineHeight: 52px
|
||||
letterSpacing: -0.5px
|
||||
body-lg:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 18px
|
||||
fontWeight: 400
|
||||
lineHeight: 28px
|
||||
body-md:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 16px
|
||||
fontWeight: 400
|
||||
lineHeight: 24px
|
||||
body-md-strong:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 16px
|
||||
fontWeight: 500
|
||||
lineHeight: 24px
|
||||
body-sm:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 14px
|
||||
fontWeight: 400
|
||||
lineHeight: 20px
|
||||
body-sm-strong:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 14px
|
||||
fontWeight: 500
|
||||
lineHeight: 20px
|
||||
caption:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 12px
|
||||
fontWeight: 400
|
||||
lineHeight: 16px
|
||||
code:
|
||||
fontFamily: DM Mono, ui-monospace, SFMono-Regular, Menlo, monospace
|
||||
fontSize: 13px
|
||||
fontWeight: 400
|
||||
lineHeight: 18px
|
||||
code-md:
|
||||
fontFamily: DM Mono, ui-monospace, SFMono-Regular, Menlo, monospace
|
||||
fontSize: 14px
|
||||
fontWeight: 400
|
||||
lineHeight: 20px
|
||||
button-md:
|
||||
fontFamily: Inter, system-ui, -apple-system, sans-serif
|
||||
fontSize: 14px
|
||||
fontWeight: 500
|
||||
lineHeight: 20px
|
||||
|
||||
The typography is the secret weapon: Matter, a geometric sans-serif with distinctive character, deployed at Regular weight across virtually all text. The font choice is unusual for a developer tool — Matter has a softness and humanity that signals "this terminal is for everyone, not just greybeards." Combined with tight line-heights and controlled negative letter-spacing on headlines, the effect is refined and approachable simultaneously. Nature photography is woven between terminal screenshots, creating a visual language that says: this tool brings you closer to flow, to calm productivity.
|
||||
rounded:
|
||||
none: 0px
|
||||
xxs: 1px
|
||||
xs: 2px
|
||||
sm: 3px
|
||||
md: 4px
|
||||
lg: 6px
|
||||
pill: 9999px
|
||||
full: 9999px
|
||||
|
||||
The overall design philosophy is restraint through warmth. Minimal color (almost monochromatic warm grays), minimal ornamentation, and a focus on product showcases set against cinematic dark landscapes. It's a terminal company that markets like a lifestyle brand.
|
||||
spacing:
|
||||
xxs: 2px
|
||||
xs: 4px
|
||||
sm: 8px
|
||||
md: 10px
|
||||
lg: 16px
|
||||
xl: 24px
|
||||
2xl: 32px
|
||||
3xl: 48px
|
||||
4xl: 64px
|
||||
5xl: 96px
|
||||
|
||||
components:
|
||||
nav-bar:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.body-sm-strong}"
|
||||
padding: "{spacing.md} {spacing.xl}"
|
||||
nav-link:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.body-sm-strong}"
|
||||
rounded: "{rounded.sm}"
|
||||
padding: "{spacing.xs} {spacing.md}"
|
||||
button-primary:
|
||||
backgroundColor: "{colors.primary}"
|
||||
textColor: "{colors.on-primary}"
|
||||
typography: "{typography.button-md}"
|
||||
rounded: "{rounded.sm}"
|
||||
padding: "{spacing.sm} {spacing.lg}"
|
||||
button-secondary-ghost:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.button-md}"
|
||||
rounded: "{rounded.sm}"
|
||||
padding: "{spacing.sm} {spacing.lg}"
|
||||
button-icon-circular:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
rounded: "{rounded.full}"
|
||||
padding: "{spacing.xs}"
|
||||
text-input:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-sm}"
|
||||
rounded: "{rounded.sm}"
|
||||
padding: "{spacing.sm} {spacing.md}"
|
||||
card-content:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-md}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.xl}"
|
||||
card-mockup:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.code}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.lg}"
|
||||
download-tile:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-md-strong}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.xl}"
|
||||
press-row:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.body}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-md}"
|
||||
padding: "{spacing.lg} 0"
|
||||
job-row:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-md-strong}"
|
||||
padding: "{spacing.lg} 0"
|
||||
hero-band:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.display-xl}"
|
||||
padding: "{spacing.5xl} {spacing.xl}"
|
||||
content-band:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.display-md}"
|
||||
padding: "{spacing.5xl} {spacing.xl}"
|
||||
partner-logo-tile:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
typography: "{typography.body-md-strong}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.lg}"
|
||||
testimonial-card:
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
typography: "{typography.body-md}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.xl}"
|
||||
footer:
|
||||
backgroundColor: "{colors.canvas}"
|
||||
textColor: "{colors.body}"
|
||||
typography: "{typography.body-sm}"
|
||||
padding: "{spacing.3xl} {spacing.xl}"
|
||||
|
||||
# ─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───
|
||||
ex-pricing-tier:
|
||||
description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
textColor: "{colors.ink}"
|
||||
borderColor: "{colors.hairline}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
ex-pricing-tier-featured:
|
||||
description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
|
||||
backgroundColor: "{colors.ink}"
|
||||
textColor: "{colors.on-primary}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
ex-product-selector:
|
||||
description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)."
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
ex-cart-drawer:
|
||||
description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)."
|
||||
backgroundColor: "{colors.canvas}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
item-divider: "{colors.hairline}"
|
||||
ex-app-shell-row:
|
||||
description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
|
||||
backgroundColor: "{colors.canvas}"
|
||||
activeIndicator: "{colors.primary}"
|
||||
rounded: "{rounded.sm}"
|
||||
padding: "{spacing.sm} {spacing.md}"
|
||||
ex-data-table-cell:
|
||||
description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
|
||||
headerBackground: "{colors.canvas-soft}"
|
||||
headerTypography: "{typography.caption}"
|
||||
bodyTypography: "{typography.body-sm}"
|
||||
cellPadding: "{spacing.sm} {spacing.md}"
|
||||
rowBorder: "{colors.hairline}"
|
||||
ex-auth-form-card:
|
||||
description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
ex-modal-card:
|
||||
description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
|
||||
backgroundColor: "{colors.canvas}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.xl}"
|
||||
ex-empty-state-card:
|
||||
description: "Empty-state illustration frame."
|
||||
backgroundColor: "{colors.canvas-soft}"
|
||||
rounded: "{rounded.lg}"
|
||||
padding: "{spacing.2xl}"
|
||||
captionTypography: "{typography.body-md}"
|
||||
ex-toast:
|
||||
description: "Toast notification surface — feature-card shape + medium shadow."
|
||||
backgroundColor: "{colors.canvas}"
|
||||
rounded: "{rounded.md}"
|
||||
padding: "{spacing.sm} {spacing.md}"
|
||||
typography: "{typography.body-sm}"
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Overview
|
||||
|
||||
Warp is an "agentic development environment" — a terminal application that wraps an AI agent — and its marketing site mirrors the product's posture: a single dark band running the entire page, warmer than pure black (`{colors.canvas}` `#2b2622` carries a hint of brown-beige from the brand's oklch-defined warmth value), with copy set almost entirely in Inter. The page reads more like a developer's reading-mode editor than a marketing surface.
|
||||
|
||||
The decoration is restrained. Two terminal screenshots open the hero (split between the two main product modes — agent + terminal). A partner-logo strip (Anthropic / OpenAI / Google / Stanford) sits below the hero on a slightly warmer tile surface. A single testimonial card with a portrait photograph. A press-coverage list. Then the page closes with download tiles for Mac / Linux / Windows. There is no gradient, no atmospheric backdrop, no illustration system.
|
||||
|
||||
Type is the second decisive voice. Hero display sits at 64 px Inter weight 400 with `-1.6px` tracking — restrained for a hero, deliberately quiet. The brand carries DM Mono as its monospace face for code blocks, and Instrument Serif italics occasionally appear for editorial moments. Body text is 16 px Inter at line-height 1.5, very readable.
|
||||
|
||||
**Key Characteristics:**
|
||||
- Warm dark background — not cold black, but earthy near-black with warm gray undertones
|
||||
- Warm Parchment (`#faf9f6`) text instead of pure white — subtle cream warmth
|
||||
- Matter font family (Regular weight) — geometric but approachable, not the typical developer-tool typeface
|
||||
- Nature photography interleaved with product screenshots — lifestyle meets developer tool
|
||||
- Almost monochromatic warm gray palette — no bold accent colors
|
||||
- Uppercase labels with wide letter-spacing (2.4px) for categorization — editorial signaling
|
||||
- Pill-shaped dark buttons (`#353534`, 50px radius) — restrained, muted CTAs
|
||||
- A single primary "color" — really an off-white `{colors.primary}` (`#f7f5f0`) — that doubles as text on canvas and as the button-primary fill. There is no chromatic brand accent.
|
||||
- Warm dark canvas (`{colors.canvas}` `#2b2622`) is the only page surface. The brand's defining tone is the brown-warmth, not pure black.
|
||||
- Extremely tight button radii — 3 / 4 px (1 / 2× the brand's `{rounded.md}` 4 px base) — the brand never uses generous pill shapes for CTAs. Only icon containers use `{rounded.full}`.
|
||||
- Inter sans + DM Mono mono is the canonical pairing. Instrument Serif appears as a third editorial face for occasional italics.
|
||||
- Terminal-mockup imagery is the brand's only consistent decorative system — no gradients, no atmospheric overlays.
|
||||
- A subtle warm tint runs through every neutral; even body text and dividers carry a hint of warmth rather than neutral gray.
|
||||
|
||||
## 2. Color Palette & Roles
|
||||
## Colors
|
||||
|
||||
### Primary
|
||||
- **Warm Parchment** (`#faf9f6`): Primary text color — a barely-cream off-white that softens every surface
|
||||
- **Earth Gray** (`#353534`): Button backgrounds, dark interactive surfaces — warm, not cold
|
||||
- **Deep Void** (near-black, page background): The warm dark canvas derived from the body background
|
||||
### Brand & Accent
|
||||
- **Off White Primary** (`{colors.primary}` — `#f7f5f0`): The brand's "primary" is a warm off-white. Used as button-primary fill, as default text on canvas, as the wordmark color. There is no chromatic brand accent — the off-white IS the brand's distinguishing tone.
|
||||
|
||||
### Secondary & Accent
|
||||
- **Stone Gray** (`#868584`): Secondary text, muted descriptions — warm mid-gray
|
||||
- **Ash Gray** (`#afaeac`): Body text, button text — the workhorse reading color
|
||||
- **Purple-Tint Gray** (`#666469`): Link text with subtle purple undertone — underlined links in content
|
||||
### Surface
|
||||
- **Canvas** (`{colors.canvas}` — `#2b2622`): The warm dark page background. Resolved from `oklch(22.0% 0.004 84.6)`. Slightly browner than pure black, slightly warmer than a neutral gray — the warmth IS the brand's identity.
|
||||
- **Canvas Soft** (`{colors.canvas-soft}` — `#383330`): A lighter warm-dark fill used for cards, mockup chrome, and partner-logo tiles.
|
||||
- **Hairline** (`{colors.hairline}` — `#3f3a36`): 1 px solid divider on dark surfaces.
|
||||
|
||||
### Surface & Background
|
||||
- **Frosted Veil** (`rgba(255, 255, 255, 0.04)`): Ultra-subtle white overlay for surface differentiation
|
||||
- **Mist Border** (`rgba(226, 226, 226, 0.35)` / `rgba(227, 227, 227, 0.337)`): Semi-transparent borders for card containment
|
||||
- **Translucent Parchment** (`rgba(250, 249, 246, 0.9)`): Slightly transparent primary surface, allowing depth
|
||||
### Text
|
||||
- **Ink** (`{colors.ink}` — `#f7f5f0`): Default text on canvas — same off-white as the primary, intentionally unified.
|
||||
- **Body Strong** (`{colors.body-strong}` — `#dad2c1`): Mid-emphasis body text.
|
||||
- **Body** (`{colors.body}` — `#c9c0ad`): Secondary body text — captions, supporting copy, press-coverage rows.
|
||||
- **Mute** (`{colors.mute}` — `#aea69c`): Lowest-priority text — timestamps, fine print, footer secondary lines. Resolved from `oklch(71.5% 0.008 84.6)`.
|
||||
|
||||
### Neutrals & Text
|
||||
- **Warm Parchment** (`#faf9f6`): Headlines, high-emphasis text
|
||||
- **Ash Gray** (`#afaeac`): Body paragraphs, descriptions
|
||||
- **Stone Gray** (`#868584`): Secondary labels, subdued information
|
||||
- **Muted Purple** (`#666469`): Underlined links, tertiary content
|
||||
- **Dark Charcoal** (`#454545` / `#353534`): Borders, button backgrounds
|
||||
### Semantic
|
||||
The brand doesn't surface a separate error / warning / success palette in its marketing pages. Validation cues come from the unified off-white system; in-product semantic colors live in the terminal application proper.
|
||||
|
||||
### Semantic & Accent
|
||||
- Warp operates as an almost monochromatic system — no bold accent colors
|
||||
- Interactive states are communicated through opacity changes and underline decorations rather than color shifts
|
||||
- Any accent color would break the warm, restrained palette
|
||||
|
||||
### Gradient System
|
||||
- No explicit gradients on the marketing site
|
||||
- Depth is created through layered semi-transparent surfaces and photography rather than color gradients
|
||||
|
||||
## 3. Typography Rules
|
||||
## Typography
|
||||
|
||||
### Font Family
|
||||
- **Display & Body**: `Matter Regular` — geometric sans-serif with soft character. Fallbacks: `Matter Regular Placeholder`, system sans-serif
|
||||
- **Medium**: `Matter Medium` — weight 500 variant for emphasis. Fallbacks: `Matter Medium Placeholder`
|
||||
- **Square**: `Matter SQ Regular` — squared variant for select display contexts. Fallbacks: `Matter SQ Regular Placeholder`
|
||||
- **UI Supplement**: `Inter` — used for specific UI elements. Fallbacks: `Inter Placeholder`
|
||||
- **Monospace Display**: `Geist Mono` — for code/terminal display headings
|
||||
- **Monospace Body**: `Matter Mono Regular` — custom mono companion. Fallbacks: `Matter Mono Regular Placeholder`
|
||||
Three faces ladder the system:
|
||||
1. **Inter** for every display, body, button, link, and label role. Weights 400 / 500 are the working pair. Used with the brand's "Inter Fallback" custom face as the metric-compatible system fallback.
|
||||
2. **DM Mono** for terminal mockups, command snippets, and code blocks. Weight 400 only. Loaded as `--font-dm-mono`.
|
||||
3. **Instrument Serif** for occasional editorial italic moments — rare on the marketing surface, but documented as a third face for emphasised tagline-style phrases. **Abel** is also loaded as a fourth fallback for headline emphasis.
|
||||
|
||||
### Hierarchy
|
||||
|
||||
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
||||
|------|------|------|--------|-------------|----------------|-------|
|
||||
| Display Hero | Matter Regular | 80px | 400 | 1.00 | -2.4px | Maximum compression, hero impact |
|
||||
| Section Display | Matter Regular | 56px | 400 | 1.20 | -0.56px | Feature section headings |
|
||||
| Section Heading | Matter Regular | 48px | 400 | 1.20 | -0.48px to -0.96px | Alternate heading weight |
|
||||
| Feature Heading | Matter Regular | 40px | 400 | 1.10 | -0.4px | Feature block titles |
|
||||
| Sub-heading Large | Matter Regular | 36px | 400 | 1.15 | -0.72px | Sub-section headers |
|
||||
| Card Display | Matter SQ Regular | 42px | 400 | 1.00 | 0px | Squared variant for special display |
|
||||
| Sub-heading | Matter Regular | 32px | 400 | 1.19 | 0px | Content sub-headings |
|
||||
| Body Heading | Matter Regular | 24px | 400 | 1.20 | -0.72px to 0px | Bold content intros |
|
||||
| Card Title | Matter Medium | 22px | 500 | 1.14 | 0px | Emphasized card headers |
|
||||
| Body Large | Matter Regular | 20px | 400 | 1.40 | -0.2px | Primary body text, relaxed |
|
||||
| Body | Matter Regular | 18px | 400 | 1.30 | -0.18px | Standard body paragraphs |
|
||||
| Nav/UI | Matter Regular | 16px | 400 | 1.20 | 0px | Navigation links, UI text |
|
||||
| Button Text | Matter Medium | 16px | 500 | 1.20 | 0px | Button labels |
|
||||
| Caption | Matter Regular | 14px | 400 | 1.00 | 1.4px | Uppercase labels (transform: uppercase) |
|
||||
| Small Label | Matter Regular | 12px | 400 | 1.35 | 2.4px | Uppercase micro-labels (transform: uppercase) |
|
||||
| Micro | Matter Regular | 11px | 400 | 1.20 | 0px | Smallest text elements |
|
||||
| Code UI | Geist Mono | 16px | 400 | 1.00 | 0px | Terminal/code display |
|
||||
| Code Body | Matter Mono Regular | 16px | 400 | 1.00 | -0.2px | Code content |
|
||||
| UI Supplement | Inter | 16px | 500 | 1.00 | -0.2px | Specific UI elements |
|
||||
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|
||||
|---|---|---|---|---|---|
|
||||
| `{typography.display-xl}` | 64px | 400 | 70.4px | -1.6px | Hero headline ("Warp is the agentic development environment"). |
|
||||
| `{typography.display-lg}` | 48px | 400 | 52.8px | -1.2px | Section headlines. |
|
||||
| `{typography.display-md}` | 32px | 500 | 40px | -0.8px | Sub-section displays. |
|
||||
| `{typography.display-sm}` | 24px | 500 | 32px | -0.4px | Card titles and lead emphasis. |
|
||||
| `{typography.display-serif}` | 48px | 400 | 52px | -0.5px | Instrument Serif italic editorial moments. |
|
||||
| `{typography.body-lg}` | 18px | 400 | 28px | 0 | Lead paragraphs. |
|
||||
| `{typography.body-md}` | 16px | 400 | 24px | 0 | Default body. |
|
||||
| `{typography.body-md-strong}` | 16px | 500 | 24px | 0 | Bold inline body. |
|
||||
| `{typography.body-sm}` | 14px | 400 | 20px | 0 | Secondary body. |
|
||||
| `{typography.body-sm-strong}` | 14px | 500 | 20px | 0 | Nav link / button labels. |
|
||||
| `{typography.caption}` | 12px | 400 | 16px | 0 | Captions, fine print. |
|
||||
| `{typography.code}` | 13px | 400 | 18px | 0 | Terminal mockup body. |
|
||||
| `{typography.code-md}` | 14px | 400 | 20px | 0 | Inline command snippets. |
|
||||
| `{typography.button-md}` | 14px | 500 | 20px | 0 | Button labels. |
|
||||
|
||||
### Principles
|
||||
- **Regular weight dominance**: Nearly all text uses weight 400 (Regular) — even headlines. Matter Medium (500) appears only for emphasis moments like card titles and buttons. This creates a remarkably even, calm typographic texture
|
||||
- **Uppercase as editorial signal**: Small labels and categories use uppercase transform with wide letter-spacing (1.4px–2.4px), creating a magazine-editorial categorization system
|
||||
- **Warm legibility**: The combination of Matter's geometric softness + warm text colors (#faf9f6) + controlled negative tracking creates text that reads as effortlessly human on dark surfaces
|
||||
- **No bold display**: Zero use of bold (700+) weight anywhere — restraint is the philosophy
|
||||
- **Hero display at weight 400** — the brand reads as quietly confident, not as a billboard.
|
||||
- **Negative tracking is part of the voice.** `-1.6 px` at 64 px hero, scaling down through display levels.
|
||||
- **Inter for narrative, DM Mono for technical.** Strict role separation.
|
||||
|
||||
## 4. Component Stylings
|
||||
### Note on Font Substitutes
|
||||
All three faces are open or freely-loadable:
|
||||
- **Inter** — load directly from Google Fonts or Vercel-hosted CDN.
|
||||
- **DM Mono** — open-source on Google Fonts.
|
||||
- **Instrument Serif** — open-source on Google Fonts.
|
||||
|
||||
### Buttons
|
||||
- **Dark Pill**: `#353534` background, Ash Gray (`#afaeac`) text, pill shape (50px radius), `10px` padding. The primary CTA — warm, muted, understated
|
||||
- **Frosted Tag**: `rgba(255, 255, 255, 0.16)` background, black text (`rgb(0, 0, 0)`), rectangular (6px radius), `1px 6px` padding. Small inline tag-like buttons
|
||||
- **Ghost**: No visible background, text-only with underline decoration on hover
|
||||
- **Hover**: Subtle opacity or brightness shift — no dramatic color changes
|
||||
|
||||
### Cards & Containers
|
||||
- **Photography Cards**: Full-bleed nature imagery with overlay text, 8px–12px border-radius
|
||||
- **Terminal Screenshot Cards**: Product UI embedded in dark containers with rounded corners (8px–12px)
|
||||
- **Bordered Cards**: Semi-transparent border (`rgba(226, 226, 226, 0.35)`) for containment, 12px–14px radius
|
||||
- **Hover**: Minimal — content cards don't dramatically change on hover, maintaining the calm aesthetic
|
||||
|
||||
### Inputs & Forms
|
||||
- Minimal form presence on the marketing site
|
||||
- Dark background inputs with warm gray text
|
||||
- Focus: Border brightness increase, no colored rings (consistent with the monochromatic palette)
|
||||
|
||||
### Navigation
|
||||
- **Top nav**: Dark background, warm parchment brand text, Matter Regular at 16px for links
|
||||
- **Link color**: Stone Gray (`#868584`) for muted nav, Warm Parchment for active/hover
|
||||
- **CTA button**: Dark pill (#353534) at nav end — restrained, not attention-grabbing
|
||||
- **Mobile**: Collapses to simplified navigation
|
||||
- **Sticky**: Nav stays fixed on scroll
|
||||
|
||||
### Image Treatment
|
||||
- **Nature photography**: Landscapes, forests, golden-hour scenes — completely unique for a developer tool
|
||||
- **Terminal screenshots**: Product UI shown in realistic terminal window frames
|
||||
- **Mixed composition**: Nature images and terminal screenshots are interleaved, creating a lifestyle-meets-tool narrative
|
||||
- **Full-bleed**: Images often span full container width with 8px radius
|
||||
- **Video**: Video elements present with 10px border-radius
|
||||
|
||||
### Testimonial Section
|
||||
- Social proof area ("Don't take our word for it") with quotes
|
||||
- Muted styling consistent with overall restraint
|
||||
|
||||
## 5. Layout Principles
|
||||
## Layout
|
||||
|
||||
### Spacing System
|
||||
- **Base unit**: 8px
|
||||
- **Scale**: 1px, 4px, 5px, 8px, 10px, 12px, 14px, 15px, 16px, 18px, 24px, 26px, 30px, 32px, 36px
|
||||
- **Section padding**: 80px–120px vertical between major sections
|
||||
- **Card padding**: 16px–32px internal spacing
|
||||
- **Component gaps**: 8px–16px between related elements
|
||||
- **Base unit**: 4 px (with occasional 10 px and 6 px values for button padding).
|
||||
- **Tokens**: `{spacing.xxs}` 2 px · `{spacing.xs}` 4 px · `{spacing.sm}` 8 px · `{spacing.md}` 10 px · `{spacing.lg}` 16 px · `{spacing.xl}` 24 px · `{spacing.2xl}` 32 px · `{spacing.3xl}` 48 px · `{spacing.4xl}` 64 px · `{spacing.5xl}` 96 px.
|
||||
- **Section padding**: hero / content bands use `{spacing.5xl}` 96 px on desktop.
|
||||
- **Card interior**: cards sit at `{spacing.xl}` 24 px.
|
||||
|
||||
### Grid & Container
|
||||
- **Max width**: ~1500px container (breakpoint at 1500px), centered
|
||||
- **Column patterns**: Full-width hero, 2-column feature sections with photography, single-column testimonials
|
||||
- **Cinematic layout**: Wide containers that let photography breathe
|
||||
- Marketing content centres at roughly 1200 px width.
|
||||
- Hero: 2-column at desktop (split between two terminal screenshots), stacks at mobile.
|
||||
- Partner logos: 5-up wrapping flex row.
|
||||
- Download tiles: 3-up at desktop (Mac / Linux / Windows), 1-up at mobile.
|
||||
|
||||
### Whitespace Philosophy
|
||||
- **Vast and warm**: Generous spacing between sections — the dark background creates a warm void that feels contemplative rather than empty
|
||||
- **Photography as whitespace**: Nature images serve as visual breathing room between dense product information
|
||||
- **Editorial pacing**: The layout reads like a magazine — each section is a deliberate page-turn moment
|
||||
### Responsive Strategy
|
||||
|
||||
### Border Radius Scale
|
||||
- **4px**: Small interactive elements — buttons, tags
|
||||
- **5px–6px**: Standard components — links, small containers
|
||||
- **8px**: Images, video containers, standard cards
|
||||
- **10px**: Video elements, medium containers
|
||||
- **12px**: Feature cards, large images
|
||||
- **14px**: Large containers, prominent cards
|
||||
- **40px**: Large rounded sections
|
||||
- **50px**: Pill buttons — primary CTAs
|
||||
- **200px**: Progress bars — full pill shape
|
||||
#### Breakpoints
|
||||
|
||||
## 6. Depth & Elevation
|
||||
| Name | Width | Key Changes |
|
||||
|---|---|---|
|
||||
| Mobile | < 768px | Hero stacks; 1-up grids; nav hamburger. |
|
||||
| Tablet | 768–1023px | 2-up grids. |
|
||||
| Desktop | ≥ 1024px | Full hero split; 3-up download tiles. |
|
||||
|
||||
#### Touch Targets
|
||||
Buttons render at ~36 px tall (8 px vertical padding + 20 px line-height). Mobile inflates touch area through additional padding to meet WCAG 44 × 44 px floor.
|
||||
|
||||
#### Collapsing Strategy
|
||||
- Nav: full link row + Sign in / Download right cluster at desktop. Hamburger at mobile.
|
||||
- Hero terminal-mockup split: stacks vertically at mobile.
|
||||
- Press / job rows: full-width single column; stay legible at all widths.
|
||||
|
||||
#### Image Behavior
|
||||
- **Terminal mockups**: rendered as dark cards with the actual terminal UI inside (warm canvas + colored syntax). Aspect ratio ~3:2.
|
||||
- **Partner logos**: monochrome SVGs on dark tile cards.
|
||||
- **Testimonial portraits**: 1:1 square crop inside `{rounded.md}` card chrome.
|
||||
|
||||
## Elevation & Depth
|
||||
|
||||
| Level | Treatment | Use |
|
||||
|-------|-----------|-----|
|
||||
| Level 0 (Flat) | No shadow, dark background | Page canvas, most surfaces |
|
||||
| Level 1 (Veil) | `rgba(255, 255, 255, 0.04)` overlay | Subtle surface differentiation |
|
||||
| Level 2 (Border) | `rgba(226, 226, 226, 0.35) 1px` border | Card containment, section separation |
|
||||
| Level 3 (Ambient) | `rgba(0, 0, 0, 0.2) 0px 5px 15px` (inferred from design) | Image containers, floating elements |
|
||||
|---|---|---|
|
||||
| Level 0 — Flat | No shadow, no border. | Default for hero band. |
|
||||
| Level 1 — Hairline | 1 px solid `{colors.hairline}` border on `{colors.canvas-soft}`. | Default card chrome. |
|
||||
| Level 2 — Inset Card | Canvas-soft fill against canvas background with 1 px hairline. | Mockup cards, download tiles, testimonial cards. |
|
||||
|
||||
### Shadow Philosophy
|
||||
Warp's elevation system is remarkably flat — almost zero shadow usage on the marketing site. Depth is communicated through:
|
||||
- **Semi-transparent borders** instead of shadows — borders at 35% opacity create a ghostly containment
|
||||
- **Photography layering** — images create natural depth without artificial shadows
|
||||
- **Surface opacity shifts** — `rgba(255, 255, 255, 0.04)` overlays create barely-perceptible layer differences
|
||||
- The effect is calm and grounded — nothing floats, everything rests
|
||||
The brand uses surface-contrast and hairline borders for elevation; soft drop-shadows do not appear in the marketing surface.
|
||||
|
||||
### Decorative Depth
|
||||
- **Photography as depth**: Nature images create atmospheric depth that shadows cannot
|
||||
- **No glass or blur effects**: The design avoids trendy glassmorphism entirely
|
||||
- **Warm ambient**: Any glow comes from the photography's natural lighting, not artificial CSS
|
||||
## Shapes
|
||||
|
||||
## 7. Do's and Don'ts
|
||||
### Border Radius Scale
|
||||
|
||||
| Token | Value | Use |
|
||||
|---|---|---|
|
||||
| `{rounded.none}` | 0px | Full-bleed bands. |
|
||||
| `{rounded.xxs}` | 1px | Tightest in-text indicator. |
|
||||
| `{rounded.xs}` | 2px | Inline very-small chips. |
|
||||
| `{rounded.sm}` | 3px | Default button radius — extremely tight. |
|
||||
| `{rounded.md}` | 4px | Card chrome (the brand's `--radius` base). |
|
||||
| `{rounded.lg}` | 6px | Slightly larger cards. |
|
||||
| `{rounded.pill}` | 9999px | Icon containers, status pills. |
|
||||
|
||||
### Photography Geometry
|
||||
- Terminal mockups: ~3:2 inside `{rounded.md}` card chrome.
|
||||
- Partner logos: monochrome SVGs at consistent 24 px height inside tile cards.
|
||||
- Testimonial portraits: 1:1 square inside `{rounded.md}`.
|
||||
|
||||
## Components
|
||||
|
||||
### Buttons
|
||||
|
||||
**`button-primary`** — the off-white CTA on dark canvas.
|
||||
- Background `{colors.primary}` (off-white), text `{colors.on-primary}` (warm dark), label `{typography.button-md}`, padding `{spacing.sm} {spacing.lg}`, shape `{rounded.sm}` 3 px. Tight.
|
||||
|
||||
**`button-secondary-ghost`** — the ghost-style secondary used for nav and tertiary actions.
|
||||
- Background `{colors.canvas}`, text `{colors.ink}`, no border, same typography / shape.
|
||||
|
||||
**`button-icon-circular`** — the circular icon container.
|
||||
- Background `{colors.canvas}`, ink icon, shape `{rounded.full}`. Used for nav controls (search, theme).
|
||||
|
||||
### Cards & Containers
|
||||
|
||||
**`card-content`** — the default content card on canvas-soft.
|
||||
- Background `{colors.canvas-soft}`, text `{colors.ink}`, 1 px solid `{colors.hairline}`, padding `{spacing.xl}`, shape `{rounded.md}`.
|
||||
|
||||
**`card-mockup`** — the terminal-screenshot mockup card.
|
||||
- Same chrome as `card-content` but body in `{typography.code}` (DM Mono) when text appears inside.
|
||||
|
||||
**`download-tile`** — the Mac / Linux / Windows download tile.
|
||||
- Background `{colors.canvas-soft}`, text `{colors.ink}`, hairline border, padding `{spacing.xl}`, shape `{rounded.md}`. Hosts a platform icon + label + download CTA.
|
||||
|
||||
**`partner-logo-tile`** — the canvas-soft tile hosting a partner logo.
|
||||
- Background `{colors.canvas-soft}`, monochrome logo SVG inside, padding `{spacing.lg}`, shape `{rounded.md}`.
|
||||
|
||||
**`testimonial-card`** — the single quote-style card with a portrait.
|
||||
- Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.xl}`, shape `{rounded.md}`. Portrait 1:1 + body in `{typography.body-md}`.
|
||||
|
||||
**`press-row`** — the press-coverage list item.
|
||||
- Background `{colors.canvas}` (no fill — sits on the canvas band), 1 px solid bottom border `{colors.hairline}`, body in `{typography.body-md}`, padding `{spacing.lg}` 0.
|
||||
|
||||
**`job-row`** — the "Join our team" list item (single row per open role).
|
||||
- Background `{colors.canvas}`, 1 px solid bottom border, body in `{typography.body-md-strong}`, padding `{spacing.lg}` 0.
|
||||
|
||||
### Inputs & Forms
|
||||
|
||||
**`text-input`** — the dark-canvas text input.
|
||||
- Background `{colors.canvas-soft}`, text `{colors.ink}`, 1 px solid `{colors.hairline}`, body in `{typography.body-sm}`, padding `{spacing.sm} {spacing.md}`, shape `{rounded.sm}`.
|
||||
|
||||
### Navigation
|
||||
|
||||
**`nav-bar`** — the sticky top nav.
|
||||
- Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.xl}`.
|
||||
|
||||
**`nav-link`** — link items in nav.
|
||||
- Background `{colors.canvas}`, text `{colors.ink}`, body in `{typography.body-sm-strong}`, padding `{spacing.xs} {spacing.md}`, shape `{rounded.sm}`.
|
||||
|
||||
**`footer`** — the footer band.
|
||||
- Background `{colors.canvas}`, text `{colors.body}`, padding `{spacing.3xl} {spacing.xl}`. Body in `{typography.body-sm}`.
|
||||
|
||||
### Signature Components
|
||||
|
||||
**`hero-band`** — the dark hero band hosting the 64-px Inter headline.
|
||||
- Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.5xl} {spacing.xl}`. Headline `{typography.display-xl}` (64 px / 400 / `-1.6 px`). Below: a 2-column terminal-mockup split.
|
||||
|
||||
**`content-band`** — the standard content band.
|
||||
- Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.5xl} {spacing.xl}`. Section headline `{typography.display-md}`.
|
||||
|
||||
### Examples (illustrative)
|
||||
|
||||
> Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.
|
||||
|
||||
**`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
|
||||
- Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
|
||||
|
||||
**`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
|
||||
- Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
|
||||
|
||||
**`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||||
|
||||
**`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
|
||||
|
||||
**`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
|
||||
- Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
|
||||
|
||||
**`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
|
||||
- Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
|
||||
|
||||
**`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||||
|
||||
**`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||||
|
||||
**`ex-empty-state-card`** — Empty-state illustration frame.
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
|
||||
|
||||
**`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
|
||||
- Properties: `backgroundColor`, `rounded`, `padding`, `typography`
|
||||
|
||||
|
||||
## Do's and Don'ts
|
||||
|
||||
### Do
|
||||
- Use warm off-white (`#faf9f6`) for text instead of pure white — the cream undertone is essential
|
||||
- Keep buttons restrained and muted — dark fill (#353534) with muted text (#afaeac), no bright CTAs
|
||||
- Apply Matter Regular (weight 400) for nearly everything — even headlines. Reserve Medium (500) for emphasis only
|
||||
- Use uppercase labels with wide letter-spacing (1.4px–2.4px) for categorization
|
||||
- Interleave nature photography with product screenshots — this is core to the brand identity
|
||||
- Maintain the almost monochromatic warm gray palette — no bold accent colors
|
||||
- Use semi-transparent borders (`rgba(226, 226, 226, 0.35)`) for card containment instead of shadows
|
||||
- Keep negative letter-spacing on headlines (-0.4px to -2.4px) for Matter's compressed display treatment
|
||||
- Reserve `{colors.primary}` off-white for primary CTA pills and default text. There is no chromatic accent.
|
||||
- Use tight `{rounded.sm}` 3 px or `{rounded.md}` 4 px button radii. The brand never uses generous pills for CTAs.
|
||||
- Set hero headlines in Inter weight 400 with `-1.6 px` tracking. The brand reads as quietly confident.
|
||||
- Pair Inter (sentence-case) with DM Mono (code blocks, terminal mockups).
|
||||
- Keep the warm-dark canvas tone — pure black breaks the brand's identity.
|
||||
|
||||
### Don't
|
||||
- Use pure white (#ffffff) for text — it's always warm parchment (#faf9f6)
|
||||
- Add bold accent colors (blue, red, green) — the system is deliberately monochromatic warm grays
|
||||
- Apply bold weight (700+) to any text — Warp never goes above Medium (500)
|
||||
- Use heavy drop shadows — depth comes from borders, photography, and opacity shifts
|
||||
- Create cold or blue-tinted dark backgrounds — the warmth is essential
|
||||
- Add decorative gradients or glow effects — the photography provides all visual interest
|
||||
- Use tight, compressed layouts — the editorial spacing is generous and contemplative
|
||||
- Mix in additional typefaces beyond the Matter family + Inter supplement
|
||||
|
||||
## 8. Responsive Behavior
|
||||
|
||||
### Breakpoints
|
||||
| Name | Width | Key Changes |
|
||||
|------|-------|-------------|
|
||||
| Mobile | <810px | Single column, stacked sections, hero text reduces to ~48px, hamburger nav |
|
||||
| Tablet | 810px–1500px | 2-column features begin, photography scales, nav links partially visible |
|
||||
| Desktop | >1500px | Full cinematic layout, 80px hero display, side-by-side photography + text |
|
||||
|
||||
### Touch Targets
|
||||
- Pill buttons: 50px radius with 10px padding — comfortable touch targets
|
||||
- Nav links: 16px text with surrounding padding for accessibility
|
||||
- Mobile CTAs: Full-width pills on mobile for easy thumb reach
|
||||
|
||||
### Collapsing Strategy
|
||||
- **Navigation**: Full horizontal nav → simplified mobile navigation
|
||||
- **Hero text**: 80px display → 56px → 48px across breakpoints
|
||||
- **Feature sections**: Side-by-side photography + text → stacked vertically
|
||||
- **Photography**: Scales within containers, maintains cinematic aspect ratios
|
||||
- **Section spacing**: Reduces proportionally — generous desktop → compact mobile
|
||||
|
||||
### Image Behavior
|
||||
- Nature photography scales responsively, maintaining wide cinematic ratios
|
||||
- Terminal screenshots maintain aspect ratios within responsive containers
|
||||
- Video elements scale with 10px radius maintained
|
||||
- No art direction changes — same compositions across breakpoints
|
||||
|
||||
## 9. Agent Prompt Guide
|
||||
|
||||
### Quick Color Reference
|
||||
- Primary Text: Warm Parchment (`#faf9f6`)
|
||||
- Secondary Text: Ash Gray (`#afaeac`)
|
||||
- Tertiary Text: Stone Gray (`#868584`)
|
||||
- Button Background: Earth Gray (`#353534`)
|
||||
- Border: Mist Border (`rgba(226, 226, 226, 0.35)`)
|
||||
- Background: Deep warm near-black (page background)
|
||||
|
||||
### Example Component Prompts
|
||||
- "Create a hero section on warm dark background with 80px Matter Regular heading in warm parchment (#faf9f6), line-height 1.0, letter-spacing -2.4px, and a dark pill button (#353534, 50px radius, #afaeac text)"
|
||||
- "Design a feature card with semi-transparent border (rgba(226,226,226,0.35)), 12px radius, warm dark background, Matter Regular heading at 24px, and ash gray (#afaeac) body text at 18px"
|
||||
- "Build a category label using Matter Regular at 12px, uppercase transform, letter-spacing 2.4px, stone gray (#868584) color — editorial magazine style"
|
||||
- "Create a testimonial section with warm parchment quotes in Matter Regular 24px, attributed in stone gray (#868584), on dark background with minimal ornamentation"
|
||||
- "Design a navigation bar with warm dark background, Matter Regular links at 16px in stone gray (#868584), hover to warm parchment (#faf9f6), and a dark pill CTA button (#353534) at the right"
|
||||
|
||||
### Iteration Guide
|
||||
When refining existing screens generated with this design system:
|
||||
1. Verify text color is warm parchment (#faf9f6) not pure white — the warmth is subtle but essential
|
||||
2. Ensure all buttons use the restrained dark palette (#353534) — no bright or colorful CTAs
|
||||
3. Check that Matter Regular (400) is the default weight — Medium (500) only for emphasis
|
||||
4. Confirm uppercase labels have wide letter-spacing (1.4px–2.4px) — tight uppercase feels wrong here
|
||||
5. The overall tone should feel warm and calm, like a well-designed magazine — not aggressive or tech-flashy
|
||||
- Don't introduce a chromatic brand accent. The off-white-on-warm-dark IS the brand's voice.
|
||||
- Don't render the hero headline in heavy weight (700+). The brand's display is intentionally light.
|
||||
- Don't use generous pill CTAs. The brand's button radius is 3-4 px, almost rectangular.
|
||||
- Don't replace the warm dark canvas with neutral gray or pure black. The warmth IS the brand.
|
||||
- Don't drop a soft drop-shadow on cards. Hairlines + surface contrast carry elevation.
|
||||
|
||||
Reference in New Issue
Block a user