<!--
ROLE: You are a senior product designer + frontend engineer pair.
TASK: Treat the DESIGN.md below as the SINGLE SOURCE OF TRUTH for visual style.
Every component you produce in this codebase must:
  • Reuse the color tokens declared in YAML frontmatter (no ad-hoc hex values)
  • Use the typography scale (display / h1 / h2 / body / label / mono) verbatim
  • Match the radius scale (button / card / pill) to the named tier
  • Honor the elevation table for shadows
  • Respect the motion section (durations, easings, reduced-motion)
  • Pass the contrast pairs in the accessibility section
INPUT: Project files at ${CWD}.
OUTPUT: Code, not paragraphs. Quote the relevant section number when you cite a token (e.g. "per §3 Typography Rules").
PRINCIPLE: A token used once is a one-off; a token used three times is a system. Prefer system fidelity over local cleverness.
-->

---
name: Gitpod
tagline: Editorial dev-tool calm — light canvas, near-black navy text, ABC Diatype sans + Martina Plantijn serif, 8px radius.
updated_at: 2026-05-28T23:12:29.333Z
published_at: 2026-05-28T23:12:29.333Z
author: webdesignhot
source_url: https://www.gitpod.io
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [dev-tools]
tags: [light, structured, sans, serif, developer, cloud-dev, editorial]
preview_swatch: ['#f9f9f9', '#0a0e19', '#ffae33']
related: [vercel, linear, stripe]
description: 'Gitpod — now rebranding to **Ona** (gitpod.io currently resolves to the Ona product, "Ona · Run background agents") — ships a deliberately editorial take on the developer-tool aesthetic. Where most cloud-dev sites lean dark-terminal, Gitpod commits to a light canvas (`#f9f9f9` near-white) with near-black *navy* text `#0a0e19` — a deep blue-black rather than neutral charcoal, which gives the whole surface a cooler, more considered cast than a true grayscale system. The typographic signature is the pairing: **ABC Diatype** (a grotesque sans by Dinamo) carries body and UI at a calm 18px / 400 / 1.55, while **Martina Plantijn** — a contemporary serif revival — sets the display headlines. That sans-grotesque-plus-serif-display pairing is unusual in dev tooling, where the convention is sans-only or sans-plus-mono; it reads as magazine-grade editorial confidence rather than terminal utility. CTAs come in a high-contrast inverted pair: a dark `#0a0e19` pill (white text, 8px radius) for the primary action and a translucent white `rgba(255, 255, 255, 0.85)` pill (dark text, 8px radius) for the secondary — both at the brand''s consistent 8px corner. The historical Gitpod orange (`#FFAE33`) survives as the brand accent — a single warm hue against the cool navy-and-near-white field, used for emphasis, links, and the occasional highlight rather than as a button fill. The result: a developer-product site that reads like an editorial spread, not a code editor.'

# Canonical 8-role aliases (bg / text / brand / border / accent / muted / surface / danger).
# Maps role names to this entry's actual token names so role-aware
# downstream tools resolve `theme.background` → entry's `bg`, etc.
# Auto-generated by scripts/add-aliases.mjs — do not edit manually;
# regenerate after changing color token names.
aliases:
  background: bg
  foreground: text
  primary: brand
  primary-foreground: on-brand
  muted: text-secondary
  border: border
  ring: brand

colors:
  bg: '#f9f9f9'                   # page canvas — near-white at ~98% lightness, faintly cool
  bg-pure: '#ffffff'             # card / panel surface, pure white tier
  bg-elev: '#f2f2f3'             # subtle elevation — section bands, inset blocks
  bg-deeper: '#ebebed'           # third tier — code-fill, muted stripe rows
  bg-ink: '#0a0e19'              # near-black navy inversion band, dark hero, footer
  surface: 'rgba(255, 255, 255, 0.85)' # translucent white card / secondary-CTA fill
  text: '#0a0e19'                # primary text & headlines — near-black NAVY, not charcoal
  text-secondary: '#3a3f4b'      # supporting copy, dense-row body
  text-tertiary: '#5b606c'       # captions, meta
  text-faint: '#9499a3'          # placeholder, disabled, faintest meta
  text-on-dark: '#f5f5f7'        # text on the near-black navy band
  text-on-dark-soft: '#a7abb5'   # secondary text on the dark band
  brand: '#ffae33'               # Gitpod orange — the single warm accent (historical brand hue)
  brand-deep: '#ff8a00'          # deeper orange for hover / pressed emphasis
  brand-soft: 'rgba(255, 174, 51, 0.12)' # soft orange wash — badges, highlight aura
  brand-tint: 'rgba(255, 174, 51, 0.06)' # subtlest orange tint
  link: '#0a0e19'                # inline links — navy text, underline carries the affordance
  link-hover: '#ff8a00'          # hover shifts to deeper orange
  on-brand: '#0a0e19'            # navy text on the orange accent (orange is light)
  cta-bg: '#0a0e19'              # primary CTA fill — inverted near-black navy
  cta-text: '#ffffff'            # white text on the dark pill
  cta-bg-secondary: 'rgba(255, 255, 255, 0.85)' # secondary CTA — translucent white pill
  cta-text-secondary: '#0a0e19'  # navy text on the white pill
  border: 'rgba(10, 14, 25, 0.12)'        # default hairline — navy at 12% opacity
  border-soft: 'rgba(10, 14, 25, 0.06)'   # quietest separation
  border-strong: 'rgba(10, 14, 25, 0.24)' # outlined buttons, focused inputs
  shadow-ambient: 'rgba(10, 14, 25, 0.04)'
  shadow-card: 'rgba(10, 14, 25, 0.06)'
  shadow-elev: 'rgba(10, 14, 25, 0.10)'
  scrim: 'rgba(10, 14, 25, 0.45)'
  success: '#1f9d55'             # advisory green — build / agent success
  success-soft: 'rgba(31, 157, 85, 0.12)'
  warning: '#ffae33'             # warnings reuse the brand orange
  warning-soft: 'rgba(255, 174, 51, 0.12)'
  danger: '#e5484d'              # error / destructive
  danger-soft: 'rgba(229, 72, 77, 0.12)'

typography:
  display:
    family: '"Martina Plantijn", Georgia, "Times New Roman", serif'
    weights: [300, 400, 500]
  body:
    family: '"ABC Diatype", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'
    weights: [400, 500, 600]
  mono:
    family: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace'
    weights: [400, 500]
  scale:
    display-hero:    { size: 80, weight: 400, lineHeight: 1.02, tracking: '-0.02em',  family: display }
    display-lg:      { size: 56, weight: 400, lineHeight: 1.06, tracking: '-0.018em', family: display }
    h1:              { size: 40, weight: 400, lineHeight: 1.1,  tracking: '-0.015em', family: display }
    h2:              { size: 32, weight: 400, lineHeight: 1.18, tracking: '-0.012em', family: display }
    h3:              { size: 24, weight: 500, lineHeight: 1.25, tracking: '-0.006em', family: display }
    h4:              { size: 20, weight: 600, lineHeight: 1.3,  tracking: '0',        family: body }
    eyebrow:         { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0.06em',   family: body, transform: uppercase }
    body-lg:         { size: 18, weight: 400, lineHeight: 1.55, tracking: '0',        family: body }
    body:            { size: 16, weight: 400, lineHeight: 1.55, tracking: '0',        family: body }
    body-sm:         { size: 14, weight: 400, lineHeight: 1.5,  tracking: '0',        family: body }
    label:           { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0',        family: body }
    button:          { size: 15, weight: 500, lineHeight: 1.2,  tracking: '0',        family: body }
    caption:         { size: 12, weight: 500, lineHeight: 1.4,  tracking: '0.02em',   family: body }
    code:            { size: 14, weight: 400, lineHeight: 1.6,  tracking: '0',        family: mono }

radius:
  micro: 2
  sm: 4
  md: 8
  lg: 12
  xl: 16
  pill: 9999

spacing:
  base: 4
  scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96]

layout:
  page-width: 1280
  prose-width: 720
  header-height: 64

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  duration-fast: 150
  duration-standard: 240
  duration-slow: 320
  reduced-motion: 'respects prefers-reduced-motion: reduce'

breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536

components:
  button-primary:   { bg: cta-bg, text: cta-text, padding: '12px 20px', radius: 8 }
  button-secondary: { bg: cta-bg-secondary, text: cta-text-secondary, border: border, padding: '12px 20px', radius: 8 }
  button-ghost:     { bg: transparent, text: text, padding: '12px 16px', radius: 8 }
  card:             { bg: bg-pure, border: border, radius: 12, padding: 24 }
  input:            { bg: bg-pure, border: border, text: text, radius: 8, padding: '10px 14px' }

shadows:
  none: 'none'
  ambient: 'rgba(10, 14, 25, 0.04) 0 1px 2px'
  card: 'rgba(10, 14, 25, 0.06) 0 2px 4px, rgba(10, 14, 25, 0.04) 0 8px 24px -6px'
  elevated: 'rgba(10, 14, 25, 0.08) 0 6px 12px, rgba(10, 14, 25, 0.06) 0 16px 40px -10px'
  popover: 'rgba(10, 14, 25, 0.14) 0 12px 32px -8px'
  modal: 'rgba(10, 14, 25, 0.24) 0 28px 64px -16px'

accessibility:
  contrast-text-on-bg: 17.8        # #0a0e19 on #f9f9f9 — AAA at all sizes
  contrast-text-on-pure: 18.6      # #0a0e19 on #ffffff — AAA
  contrast-text-secondary-on-bg: 10.2  # #3a3f4b on #f9f9f9 — AAA at body
  contrast-text-tertiary-on-bg: 6.4    # #5b606c on #f9f9f9 — AAA at body / AA all
  contrast-cta-text-on-cta: 17.6   # #ffffff on #0a0e19 — AAA at all sizes
  contrast-brand-on-bg: 1.6        # #ffae33 on #f9f9f9 — decorative only, never text
  contrast-text-on-brand: 11.0     # #0a0e19 on #ffae33 — AAA; navy-on-orange is the safe direction
  focus-ring: '2px solid rgba(255, 174, 51, 0.55) + 2px outline-offset'
  reduced-motion-honored: true
  touch-target-min: 44

dark-mode: optional   # near-black navy band exists as a section treatment; full dark theme not the default

lineage:
  summary: 'Gitpod (rebranding to Ona) draws its design DNA from editorial publishing more than from developer-terminal convention. The defining move is the type pairing — ABC Diatype, a clean grotesque sans by Swiss foundry Dinamo, against Martina Plantijn, a contemporary serif revival — which lands the site in magazine territory rather than IDE territory. The near-black NAVY text (`#0a0e19`, a blue-black rather than neutral charcoal) on a faintly cool near-white canvas (`#f9f9f9`) is a deliberate softening of the high-contrast dev-tool look pioneered by Vercel and Linear; Gitpod keeps the light canvas and the 8px geometry of that lineage but warms the system with a single orange accent (`#FFAE33`, the historical Gitpod brand hue) and cools the ink toward navy. The CTA pattern — an inverted dark pill paired with a translucent-white pill, both at 8px radius — is the contemporary dev-tool consensus (Vercel, Linear), executed here at a slightly larger, calmer scale. As the product transitions to Ona (background coding agents), the visual system carries forward: same editorial type pairing, same navy-and-near-white field, same orange accent.'
  influences:
    - name: 'ABC Diatype (Dinamo)'
      role: 'Body and UI grotesque — the calm, slightly mechanical sans that carries every paragraph and control'
      url: 'https://abcdinamo.com/typefaces/diatype'
    - name: 'Martina Plantijn (Dinamo)'
      role: 'Serif display face — the editorial headline voice that distinguishes the brand from sans-only dev tools'
      url: 'https://abcdinamo.com/typefaces/martina-plantijn'
    - name: 'Vercel'
      role: 'Light-canvas dev-tool register — inverted dark-pill primary CTA, hairline borders, 8px geometry on a near-white field'
      url: 'https://vercel.com'
    - name: 'Linear'
      role: 'Contrast-pill CTA discipline and restrained accent usage adapted to a light, editorial surface'
      url: 'https://linear.app'
    - name: 'Stripe'
      role: 'Developer-product-as-magazine register — editorial typography and generous whitespace in a technical product'
      url: 'https://stripe.com'
    - name: 'Gitpod brand (historical orange identity)'
      role: 'The warm orange accent (`#FFAE33`) that survives the Ona rebrand as the single chromatic flourish'
      url: 'https://www.gitpod.io'
---

## 1. Visual Theme & Atmosphere

Gitpod's site reads like an editorial spread that happens to sell cloud development environments. The first thing that registers is the *light canvas* — a faintly cool near-white `#f9f9f9` — which immediately separates Gitpod from the dark-terminal convention that dominates developer tooling. Most cloud-dev products reach for a black or charcoal IDE-feeling surface; Gitpod commits to white-page calm. The second thing is the type. Headlines are set in **Martina Plantijn**, a contemporary serif revival, while body and UI run in **ABC Diatype**, a clean grotesque sans. That serif-display-plus-grotesque-body pairing is editorial-magazine grammar, not software-product grammar, and it gives every page a considered, published feeling.

The ink is the third tell, and it's subtle. Body text is `#0a0e19` — not a neutral charcoal but a near-black *navy*, a deep blue-black. Against the cool near-white canvas the whole surface reads slightly cooler and more composed than a true grayscale system would; there's a quiet blue undertone running through the contrast. This is the same high-contrast light-mode discipline that Vercel and Linear established, but Gitpod cools it toward navy and warms the accent toward orange, landing somewhere more humane than either.

The accent is deliberately rationed. The historical **Gitpod orange** (`#FFAE33`) is the single warm hue in an otherwise navy-and-near-white field. It appears as link-hover colour, emphasis highlight, badge fills, and the occasional illustrated flourish — but it never fills the primary button. The primary action is an inverted dark navy pill; the orange is a spice, not a staple. One warm hue against a cool field is the entire chromatic strategy.

The CTA pattern is a clean inverted pair. The primary is a dark `#0a0e19` navy pill with white text at 8px radius ("Download", "Get started"); the secondary is a translucent white `rgba(255, 255, 255, 0.85)` pill with navy text at the same 8px radius ("Request a demo"). Both pills sit at the brand's consistent 8px corner — softer than Vercel's 6px, gentler than a true pill, squarely in the modern dev-tool comfort zone. The contrast pair carries the visual hierarchy without color: dark-on-light versus light-on-light.

The brand is mid-transition. `gitpod.io` now resolves to **Ona** — the background-coding-agents product — and the page title reads "Ona · Run background agents." The slug and name remain Gitpod here for continuity, but the entry documents a system in motion: the visual language (editorial type pairing, navy ink, near-white canvas, orange accent, 8px geometry) carries forward intact into the Ona identity. The atmosphere is best summarized as *editorial-calm, navy-cooled, orange-spiced, serif-headlined, light-canvas, considered.*

**Key Characteristics**

- Light canvas — faintly cool near-white `#f9f9f9`, the opposite of the dark-terminal dev-tool default
- Near-black **navy** text `#0a0e19` (blue-black, not neutral charcoal) — a cooler, more composed contrast
- Editorial type pairing: **Martina Plantijn** serif display + **ABC Diatype** grotesque body
- Single warm accent — historical Gitpod **orange** `#FFAE33` — rationed for emphasis, never a button fill
- Inverted CTA pair: dark navy pill (white text) + translucent white pill (navy text), both 8px radius
- Consistent **8px** radius across buttons and inputs — softer than Vercel's 6px, gentler than full pills
- Hairline borders at navy-12%-opacity — quiet separation that keeps the ink-tone consistent
- Calm 18px / 1.55 body — larger and airier than dense dashboard SaaS
- Magazine-grade whitespace; the page breathes rather than packs
- Rebranding to **Ona** — same system carried forward to the background-agents product

## 2. Color Palette & Roles

### Canvas / Surface

- **Canvas** (`#f9f9f9`): the page background — faintly cool near-white at ~98% lightness. The single dominant surface; never cream, never warm. The cool cast pairs with the navy ink.
- **Pure White** (`#ffffff`): card, panel, and modal surface — the elevation contrast against the canvas is the primary lift signal.
- **Bg Elev** (`#f2f2f3`): subtle elevation — section bands, inset blocks, alternating stripes.
- **Bg Deeper** (`#ebebed`): third tier — code-fill backgrounds, muted comparison rows.
- **Surface (translucent)** (`rgba(255, 255, 255, 0.85)`): translucent white — the secondary-CTA fill and glassy nav/overlay surface.
- **Bg Ink** (`#0a0e19`): the near-black navy inversion band — dark hero sections, footer, inverted feature blocks.

### Text

- **Text** (`#0a0e19`): primary text and headlines — near-black *navy*, the brand's defining ink. 17.8:1 on canvas.
- **Text Secondary** (`#3a3f4b`): supporting copy, dense-row body — a desaturated navy-grey.
- **Text Tertiary** (`#5b606c`): captions, meta, timestamps.
- **Text Faint** (`#9499a3`): placeholder, disabled, faintest meta — never load-bearing text.
- **Text on Dark** (`#f5f5f7`): near-white text on the navy inversion band.
- **Text on Dark Soft** (`#a7abb5`): secondary text on the dark band.

### Brand & Accent

- **Brand Orange** (`#ffae33`): the historical Gitpod brand hue and the single warm accent — emphasis highlights, badge fills, illustrated flourishes, link-hover. Light enough that it always takes *navy* text, never white.
- **Brand Deep** (`#ff8a00`): deeper orange for hover / pressed emphasis and for orange text that needs more weight against the light canvas.
- **Brand Soft** (`rgba(255, 174, 51, 0.12)`): soft orange wash — badge backgrounds, highlight aura, selected-row tint.
- **Brand Tint** (`rgba(255, 174, 51, 0.06)`): subtlest orange tint for very quiet emphasis.

### Interactive

- **Link** (`#0a0e19`): inline links read as navy body with an underline carrying the affordance — color isn't the link signal at rest.
- **Link Hover** (`#ff8a00`): hover shifts the link to deeper orange — the one place the accent touches running text.
- **CTA Bg** (`#0a0e19`): primary CTA fill — inverted near-black navy.
- **CTA Text** (`#ffffff`): white text on the dark pill.
- **CTA Bg Secondary** (`rgba(255, 255, 255, 0.85)`): secondary CTA — translucent white pill.
- **CTA Text Secondary** (`#0a0e19`): navy text on the white pill.

### Borders

- **Border** (`rgba(10, 14, 25, 0.12)`): default hairline — navy at 12% opacity, keeping the divider tone within the ink family.
- **Border Soft** (`rgba(10, 14, 25, 0.06)`): quietest separation, faint section dividers.
- **Border Strong** (`rgba(10, 14, 25, 0.24)`): outlined buttons, focused inputs, high-emphasis dividers.

### Shadow Colors

Shadows are navy-tinted (`rgba(10, 14, 25, …)`) rather than pure black, so elevation stays inside the ink family rather than reading as a neutral grey lift.

- `rgba(10, 14, 25, 0.04) 0 1px 2px` — ambient
- `rgba(10, 14, 25, 0.06) 0 2px 4px, rgba(10, 14, 25, 0.04) 0 8px 24px -6px` — card (dual-layer)
- `rgba(10, 14, 25, 0.08) 0 6px 12px, rgba(10, 14, 25, 0.06) 0 16px 40px -10px` — elevated
- `rgba(10, 14, 25, 0.14) 0 12px 32px -8px` — popover
- `rgba(10, 14, 25, 0.24) 0 28px 64px -16px` — modal

### Semantic

- **Success** (`#1f9d55` on `rgba(31, 157, 85, 0.12)`): advisory green — build success, agent task complete, healthy status.
- **Warning** (`#ffae33` on `rgba(255, 174, 51, 0.12)`): warnings reuse the brand orange — the accent doubles as the caution hue.
- **Danger** (`#e5484d` on `rgba(229, 72, 77, 0.12)`): errors, destructive actions, failed builds.

## 3. Typography Rules

### Font Family

**Display**: `"Martina Plantijn", Georgia, "Times New Roman", serif`. Martina Plantijn is a contemporary serif revival from Swiss foundry Dinamo, used for hero and section headlines. Set at a light weight (the live probe shows display copy at weight 300), it gives headlines an editorial, almost literary register that is rare in developer tooling. The serif is the brand's single biggest differentiator: where peers set everything in a grotesque or geometric sans, Gitpod headlines with a serif.

**Body**: `"ABC Diatype", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`. ABC Diatype is a clean grotesque sans, also from Dinamo — slightly mechanical, highly legible, neutral enough to disappear into long-form reading. It carries body copy, UI labels, buttons, and captions at a calm 18px / 400 / 1.55. The grotesque-against-serif contrast is the editorial pairing's whole point: the serif sings, the sans recedes.

**Mono**: `ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace`. A system monospace stack for code samples, CLI commands, and environment-variable references. Gitpod doesn't ship a proprietary mono; the system stack keeps code blocks neutral so the serif/sans pairing stays the identity.

The defining discipline is the **two-face editorial pairing**: serif display, grotesque body. No third face; mono is reserved for literal code.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Tracking | Notes |
|------|------|------|--------|-------------|----------|-------|
| display-hero | Martina Plantijn | 80px | 400 | 1.02 | -0.02em | Hero headline — light serif, the brand's signature |
| display-lg | Martina Plantijn | 56px | 400 | 1.06 | -0.018em | Major section opener |
| h1 | Martina Plantijn | 40px | 400 | 1.10 | -0.015em | Page title, article title |
| h2 | Martina Plantijn | 32px | 400 | 1.18 | -0.012em | Marketing section H2 |
| h3 | Martina Plantijn | 24px | 500 | 1.25 | -0.006em | Card heading, sub-section |
| h4 | ABC Diatype | 20px | 600 | 1.30 | 0 | Sub-card heading — switches to sans for small headings |
| eyebrow | ABC Diatype | 13px | 500 | 1.40 | 0.06em | Uppercase section pre-label |
| body-lg | ABC Diatype | 18px | 400 | 1.55 | 0 | Hero deck, lede — the brand's default body size |
| body | ABC Diatype | 16px | 400 | 1.55 | 0 | Standard body |
| body-sm | ABC Diatype | 14px | 400 | 1.50 | 0 | Card body, dense-row copy |
| label | ABC Diatype | 13px | 500 | 1.40 | 0 | Form field label |
| button | ABC Diatype | 15px | 500 | 1.20 | 0 | Button copy — slightly larger than dense SaaS |
| caption | ABC Diatype | 12px | 500 | 1.40 | 0.02em | Image caption, footer micro |
| code | mono | 14px | 400 | 1.60 | 0 | Code block / inline code |
| inline-code | mono | 14px | 500 | 1.40 | 0 | Inline `code` references |
| nav-link | ABC Diatype | 15px | 500 | 1.20 | 0 | Top-nav links |

### Principles

- **Serif headlines, sans body.** The editorial pairing is the brand. Setting headlines in the sans collapses Gitpod into generic dev-tool grammar.
- **Display weight stays light.** Martina Plantijn headlines run at 300–400, not 600–800. The serif reads as confident at light weights; bolding it loses the literary calm.
- **Body holds at 18px / 400 / 1.55.** Larger and airier than dense dashboard SaaS — the page is meant to be read, not scanned.
- **Sans takes over below H3.** H4 and smaller headings switch to ABC Diatype at 600 — the serif is reserved for the larger display tiers.
- **Negative tracking compresses with size.** `-0.02em` at the hero, easing toward zero by H3; body and below sit at neutral tracking.
- **Uppercase eyebrows in sans.** Section pre-labels use ABC Diatype 13px / 500 / 0.06em uppercase — the one place tracking opens up.
- **Mono is for literal code only.** CLI commands, env vars, code snippets. Never used for eyebrows or labels — that would dilute the two-face system.
- **No italic in display.** Serif headlines are set roman; italics carry quoted titles in body only.

## 4. Component Stylings

### Buttons

**Primary (Dark Pill)** — `#0a0e19` navy fill, white text at 15px / 500, **8px radius**, 12×20px padding. The dominant action — "Download", "Get started", "Start free". Hover deepens subtly or lifts to pure black; **no scale transform** — the contrast carries the affordance. The inverted dark-on-light pill is the modern dev-tool primary, executed here at a calm 8px corner.

**Secondary (Translucent White)** — `rgba(255, 255, 255, 0.85)` translucent white fill, navy `#0a0e19` text at 15px / 500, **8px radius**, 12×20px padding, optional 1px hairline border. The paired secondary — "Request a demo", "Talk to sales". The translucency lets the canvas read through faintly, giving it a glassier feel than the solid primary.

**Outlined** — Transparent or canvas fill, navy text at 15px / 500, 1px `rgba(10, 14, 25, 0.24)` border, 8px radius, 12×20px padding. Hover deepens the border and adds a faint canvas fill. Use case: tertiary actions paired with the primary/secondary pair.

**Ghost (Quiet)** — Transparent background, navy text at 15px / 500, 8px radius, 12×16px padding. Hover fills with `bg-elev` (`#f2f2f3`). Use case: nav links, footer secondaries, in-card actions.

**Accent (rare)** — When the brand orange is used as a button (rare; reserved for high-emphasis moments like a launch banner), it's `#ffae33` fill with *navy* `#0a0e19` text at 8px radius — never white text, since the orange is too light for white to pass contrast. This is the exception, not the rule: the primary action is almost always the dark navy pill.

### Cards

**Default Card** — `#ffffff` pure-white fill, 1px hairline border at `rgba(10, 14, 25, 0.12)`, **12px radius**, 24px padding, dual-layer navy-tinted shadow. The signature card across feature grids, integration tiles, and pricing. The white-on-canvas brightness contrast plus the hairline does most of the elevation work; the shadow is a quiet reinforcement.

**Flat Card** — Same as default with `shadow: none`. Used for pricing cards and dense data tiles where multiple cards stack tightly; the border alone carries elevation.

**Dark Card** — `#0a0e19` navy fill, `#f5f5f7` text, 1px border at `rgba(255, 255, 255, 0.08)`, 12px radius, 32px padding. Used for inverted highlight or testimonial blocks on the otherwise-light page; one or two per page.

### Inputs / Forms

**Text Input** — `#ffffff` fill, navy text at 16px / 400, 1px border at `rgba(10, 14, 25, 0.12)`, **8px radius**, 10×14px padding (~44px height). Placeholder at `#9499a3` faint. On focus: border shifts to `border-strong` and a 2px orange focus ring appears (`rgba(255, 174, 51, 0.55)`) — the accent's primary functional role.

**Select** — Same shape as the text input with a chevron at right (12px) in tertiary-text colour.

**Textarea** — Same as text input, min-height ~96px, top-aligned placeholder.

### Badges / Tags / Pills

**Accent Badge** — `rgba(255, 174, 51, 0.12)` soft-orange fill, deep-orange `#ff8a00` text at 12px / 500 / 0.02em, 4px radius, 2×8px padding. Use case: `NEW`, `BETA`, status flags — the one place the warm accent reliably appears.

**Neutral Tag** — `#ebebed` (bg-deeper) fill, secondary-text colour, 13px / 500 ABC Diatype, 4px radius, 2×8px padding. Use case: integration labels, region tags, version chips.

**Status Pill** — A 6px status dot (`success` green / `danger` red / `warning` orange) at left with a 13px / 500 label — used for environment / agent status.

### Navigation

**Top Nav** — `rgba(255, 255, 255, 0.85)` translucent white fill with `backdrop-filter: blur(12px)`, **64px height**, 1px bottom hairline at `rgba(10, 14, 25, 0.12)`. Wordmark left. Center: nav links in ABC Diatype 15px / 500 ghost style. Right: ghost link + translucent-white secondary CTA + dark navy primary CTA pill.

**Footer** — `#0a0e19` navy inversion band (or canvas, depending on page), multi-column link grid in ABC Diatype 14px / 400 at `text-on-dark-soft`, wordmark + status indicator + social links at the bottom.

## 5. Layout Principles

### Spacing System

- Base unit: **4px**
- Scale: `0 · 4 · 8 · 12 · 16 · 24 · 32 · 48 · 64 · 96`
- Section padding (vertical): 96px+ for major marketing bands; 48–64px between sub-sections; 24–32px between content blocks
- Card internal padding: 24px on default cards; 32px on dark highlight cards
- Inter-card gutters: 24px in 2-up grids; 16–24px in 3-up grids

### Grid & Container

- Page width caps at **1280px** — generous but not dense; the editorial layout favours breathing room over information density
- Reading column caps at **720px** (~70 characters) even inside the wider container
- 12-column grid with 24px gutters
- Hero treatment: light-canvas full-bleed, serif headline (often left-aligned), inverted CTA pair below, illustration or product still to one side

### Whitespace Philosophy

Gitpod favours editorial breathing room over dashboard density. Hero sections carry 96px+ vertical padding; sections are generously guttered; the 18px body with 1.55 line-height keeps paragraphs airy. Where Vercel packs changelog rows at 88px and customer logos 4-up, Gitpod spaces content for *reading*, not scanning — the magazine register demands room. The page never feels packed.

### Section Cadence

A typical page runs:

1. **Hero** — light canvas, 80px serif headline, 18px sans deck, inverted CTA pair (dark pill + translucent-white pill)
2. **Feature Grid** — white cards on canvas, hairline borders, serif card headings, sans body
3. **Code / Workflow Band** — `bg-elev` or `bg-deeper` background, mono code block at reading width, sans prose introducing it
4. **Dark Highlight Band** — rare `#0a0e19` navy inversion with near-white text and a single orange accent
5. **Integration / Logo Grid** — white tiles on canvas, monochrome logos
6. **Pricing** — flat cards in 3-up, hairline borders, navy primary CTA per card
7. **Closing CTA** — centered inverted pill on canvas, single dominant action
8. **Footer** — navy inversion band, multi-column link grid

The alternation is brightness-and-warmth-based: canvas → white → elevated grey → navy → canvas, with the orange accent appearing as a single warm point per section.

## 6. Shapes & Radius Scale

| Tier | Value | Use |
|------|-------|-----|
| Micro | 2px | Decorative dividers, focus indicators inside chips |
| Small | 4px | Badges, tag chips |
| Standard | 8px | Buttons, inputs, code chips — the dominant Gitpod radius |
| Comfortable | 12px | Cards, panels, modals |
| Large | 16px | Hero panels, large surfaces |
| Pill | 9999px | Rare full-pill chips, status pills |

Gitpod's signature shape is the **8px radius** — softer than Vercel's 6px button corner and gentler than a true pill, sitting squarely in the modern dev-tool comfort zone. It's consistent across buttons and inputs; cards step up to 12px. The 8px corner is the brand's tactile signature: rounded enough to feel friendly, square enough to feel engineered.

## 7. Depth & Elevation

| Level | Treatment | Use |
|-------|-----------|-----|
| 0 — Flat | no shadow, canvas bg | Page canvas, body sections |
| 1 — Hairline | 1px `rgba(10, 14, 25, 0.12)` border | Flat cards, pricing tiles, dense data |
| 2 — Card | 1px border + `rgba(10, 14, 25, 0.06) 0 2px 4px, 0 8px 24px -6px` | Default feature cards |
| 3 — Elevated | `rgba(10, 14, 25, 0.08) 0 6px 12px, 0 16px 40px -10px` | Dropdowns, hover-lifted cards |
| 4 — Popover | `rgba(10, 14, 25, 0.14) 0 12px 32px -8px` | Menus, command palette |
| 5 — Modal | scrim `rgba(10, 14, 25, 0.45)` + `rgba(10, 14, 25, 0.24) 0 28px 64px -16px` | Dialogs, sign-up modals |

### Shadow Philosophy

Gitpod uses **navy-tinted, low-opacity shadows** rather than pure-black drops. Tinting the shadow with the ink colour (`rgba(10, 14, 25, …)`) keeps elevation inside the brand's cool ink family — a black shadow on this navy-and-near-white field would read as a foreign neutral. Cards lift primarily via the white-on-canvas brightness contrast plus the hairline border; the dual-layer shadow (a tight 2–4px ambient plus a wide 24px diffusion) is a quiet reinforcement, not the main signal. Heavy shadows are reserved for true overlay UI — popovers and modals — where the element needs to read as floating above the page rather than resting on it.

## 8. Interaction & Motion

### Easing Curves

- **Standard**: `cubic-bezier(0.4, 0, 0.2, 1)` — default for hover, focus, color transitions
- **Emphasized**: `cubic-bezier(0.2, 0, 0, 1)` — modal entry, toast slide-in

### Duration Buckets

| Bucket | Value | Use |
|--------|-------|-----|
| Fast | 150ms | Focus ring fade, link-underline grow, hover color |
| Standard | 240ms | Button hover, card border/shadow deepen |
| Slow | 320ms | Scroll-reveal fade, dropdown reveal, modal content |

### Per-Component Recipes

- **Primary CTA hover**: navy fill deepens toward pure black over 240ms standard. No scale, no shadow jump — the contrast carries it.
- **Secondary CTA hover**: translucent-white fill firms toward opaque white + faint hairline border over 240ms.
- **Link hover**: navy text shifts to deep orange `#ff8a00` over 150ms; underline holds.
- **Card hover**: border deepens and shadow intensifies one tier over 240ms — minimal or no translate.
- **Input focus**: 2px orange ring (`rgba(255, 174, 51, 0.55)`) fades in over 150ms; border firms to `border-strong`.
- **Scroll-reveal**: sections fade + rise ~8px over 320ms emphasized when entering viewport — one-shot.
- **Modal entry**: scrim fades over 240ms; content fades + scales 0.97→1.0 over 320ms emphasized.

### Page Transitions

Anchor links use smooth-scroll; route changes feel near-instant with client-side prefetch. The sticky nav stays static across navigation. Motion is restrained throughout — the editorial calm extends to interaction; nothing bounces or overshoots.

### Reduced Motion

Respects `prefers-reduced-motion: reduce`. All `translate` and `scale` transforms suppress, replaced with opacity-only fades or instant render. Scroll-reveal becomes static on mount. Modal scale-in becomes an instant fade. Durations halve. Nothing breaks; nothing disappears.

## 9. Accessibility & A11y

### Contrast Pairs

| Pair | Ratio | Level |
|------|-------|-------|
| `#0a0e19` text on `#f9f9f9` canvas | 17.8 | AAA at all sizes |
| `#0a0e19` text on `#ffffff` card | 18.6 | AAA at all sizes |
| `#3a3f4b` secondary on `#f9f9f9` | 10.2 | AAA at body sizes |
| `#5b606c` tertiary on `#f9f9f9` | 6.4 | AAA at body / AA all |
| `#9499a3` faint on `#f9f9f9` | 3.0 | Fails AA body — placeholder/disabled only |
| `#ffffff` CTA text on `#0a0e19` pill | 17.6 | AAA at all sizes |
| `#0a0e19` navy text on `#ffae33` orange | 11.0 | AAA — navy-on-orange is the safe direction |
| `#ffae33` orange on `#f9f9f9` canvas | 1.6 | Fails — decorative/fill only, NEVER text |
| `#ff8a00` deep-orange link-hover on `#f9f9f9` | 2.6 | Fails AA at body — reinforce with underline |
| `#f5f5f7` text on `#0a0e19` dark band | 17.0 | AAA at all sizes |

The critical discipline: **the brand orange is never used as text on the light canvas** — at 1.6:1 it fails badly. Orange is a fill colour (badges, accents, focus rings) where navy text rides on top, or a link-hover reinforced by an underline so the affordance survives for low-vision and color-blind users. The navy-on-orange direction (11.0:1) is the only safe text-and-orange combination.

### Focus Indicators

Focus ring is **2px solid `rgba(255, 174, 51, 0.55)` orange with 2px outline-offset** — the accent's single most important functional job. Against the cool navy-and-near-white field, the warm orange ring is unmistakable, and using the accent here (rather than a neutral) ties keyboard focus to the brand. On dark bands, the ring brightens to full-opacity orange for legibility.

### ARIA Patterns

- **Top nav**: `<nav aria-label="Primary">` landmark with skip-link to `<main>`. Dropdowns use `aria-haspopup` / `aria-expanded`.
- **CTA pair**: both buttons are real `<button>` / `<a>` elements with descriptive text; the translucent-white secondary isn't distinguished by colour alone.
- **Code blocks**: `<pre><code tabindex="0" aria-label="Terminal command">` — focusable and labelled.
- **Pricing**: `<table>` semantics with `<th scope>` for tiers and features.
- **Modal**: `role="dialog" aria-modal="true" aria-labelledby` with focus trap and Esc-to-close.
- **Status indicators**: `aria-live="polite"` for environment / agent status updates.

### Keyboard Navigation

- Tab order: skip-link → wordmark → primary nav → auth CTAs → main content → footer
- `Esc` closes modals, menus, command palette
- Code blocks are focusable (`tabindex="0"`)
- Arrow keys navigate inside dropdown menus and any command palette

### Screen Reader Hints

- Uppercase eyebrows use CSS `text-transform` so screen readers announce natural case
- Decorative illustrations and the orange accent flourishes carry `aria-hidden="true"`
- The wordmark uses `aria-label` reflecting the current brand ("Gitpod" / "Ona" during transition)
- Status values announce in human-readable form regardless of visual abbreviation

### Reduced Motion

All transitions degrade to opacity-only or instant. Scroll-reveal becomes static on mount; modal scale-in becomes an instant fade; link-hover underline appears instantly. The brand experience stays visually consistent under reduced-motion.

## 10. Responsive Behavior

### Breakpoints

| Name | Width | Key Changes |
|------|-------|-------------|
| Mobile | <640px | Nav collapses to logo + CTA + hamburger; hero serif drops 80→40px; cards 1-up; CTA pair stacks vertically |
| Tablet | 640–1024px | Inline nav links return; hero serif at 56px; cards 2-up |
| Desktop | 1024–1280px | Full nav; hero serif at 64–80px; cards 3-up; full layout |
| Wide | >1280px | Content caps at 1280px; gutters absorb the rest |

### Touch Targets

- Buttons: ~44px effective height via 12px vertical padding — meets the 44px tap minimum without separate mobile sizing
- Nav links: 44×44px minimum tap area even at 15px text
- Tag chips: padded to a 44px effective tap area where interactive

### Collapsing Strategy

- **Top nav** at <1024px: links collapse into a hamburger sheet; the CTA pair stays visible (or moves into the sheet head)
- **Hero CTA pair** at <640px: stacks vertically — primary dark pill above, translucent-white secondary below
- **Card grids**: 3 → 2 → 1 columns
- **Dark highlight band**: padding compresses but the navy inversion holds
- **Serif headlines**: scale down aggressively but never switch to the sans on mobile — the serif is the brand even small

### Image Behavior

Logos and icons use SVG with `currentColor` where possible so they inherit text colour. Product stills use `aspect-ratio` to prevent layout shift. Below-fold imagery is lazy-loaded; the hero is eager. Serif headlines never become images — always live text for accessibility and reflow.

## 11. Content & Voice

### Tone

**Editorial, calm, technically credible.** Gitpod (and now Ona) writes like a thoughtful engineering publication, not a hype-cycle landing page. The serif headlines set a considered, almost literary register; the body copy is precise and developer-fluent without jargon-flexing. The voice trusts the reader to be technical, explains the *why* before the *how*, and avoids exclamation-heavy enthusiasm. With the Ona transition, headlines lean into the background-agents story ("Run background agents") — declarative, capability-first.

### Microcopy Patterns

- **Button verbs**: *Download*, *Get started*, *Start free*, *Request a demo*, *Talk to sales*. Direct, outcome-focused.
- **Error messages**: specific and actionable — name the failure and the next step ("Workspace failed to start — check your `.gitpod.yml` and retry").
- **Success confirmations**: brief and declarative — "Environment ready.", "Agent finished." No exclamation.
- **Empty states**: instruction-led — "No environments yet. Connect a repository to spin one up."
- **Field labels**: single-word where possible — *Repository*, *Branch*, *Region*.
- **Loading states**: context-specific — "Starting environment…", "Running agent…" — never bare "Loading…".

### Empty States

Empty states explain the state and offer the exact next action: "No background agents running. Start one from any repository." The pattern mirrors the dev-tool convention — state, then the concrete verb — but delivered in the brand's calmer editorial register.

### CTA Verb Conventions

- Primary: *Download*, *Get started*, *Start free*
- Secondary: *Request a demo*, *Talk to sales*, *Read the docs*
- Tertiary text: *See how it works*, *View pricing*, *Explore integrations*
- Avoided: *Click here*, *Submit*, exclamation-heavy enthusiasm, hype superlatives. The voice is measured and engineering-credible.

## 12. Dark Mode & Theming

**Light canvas is the default.** Gitpod / Ona presents primarily on the near-white `#f9f9f9` canvas with near-black navy ink — there is no full system-wide dark theme as the default experience. However, the **near-black navy band** (`#0a0e19`) is a first-class *section treatment*: dark hero variants, footers, and highlight blocks invert to navy with near-white text (`#f5f5f7`) and the orange accent. This is band-level inversion within a light page, not a global theme swap.

If a full dark theme were derived, the token swap would be:

- **canvas**: `#f9f9f9` → `#0a0e19` (the existing navy ink becomes the ground)
- **surface**: `#ffffff` → `#12172a` (a lifted navy panel)
- **text**: `#0a0e19` → `#f5f5f7` (near-white)
- **text-secondary**: `#3a3f4b` → `#a7abb5`
- **brand**: `#ffae33` (unchanged — the orange reads strongly on both grounds, and on dark it can carry white or navy text depending on size)
- **cta-bg**: `#0a0e19` → `#ffffff` (CTA inverts to a white pill with navy text on dark)
- **border**: `rgba(10, 14, 25, 0.12)` → `rgba(255, 255, 255, 0.10)`

The orange accent is the constant across both modes — it's the one hue tuned to read on navy *and* near-white, which is exactly why it survives the band inversions and the Ona rebrand.

## 13. Lineage & Influences

Gitpod's design lineage runs through *editorial publishing* far more than through developer-terminal convention. The defining move is the type pairing — **ABC Diatype** (a clean grotesque sans) set against **Martina Plantijn** (a contemporary serif revival), both from Swiss foundry Dinamo. That serif-display-plus-grotesque-body grammar is the language of considered magazines and design publications, not IDEs, and it's what gives the site its calm, published feeling. Most cloud-dev competitors set everything in a sans or sans-plus-mono; Gitpod's serif headline is an immediate, deliberate departure.

The colour system descends from the light-canvas dev-tool register that Vercel and Linear established — high-contrast text on a near-white field, hairline borders, inverted dark-pill primary CTAs, 8px geometry — but Gitpod cools and warms it in two specific ways. The ink is pulled toward *navy* (`#0a0e19`, a blue-black rather than a neutral charcoal), which gives the whole surface a cooler, more composed cast. And the accent is the historical **Gitpod orange** (`#FFAE33`) — a single warm hue rationed against the cool field, never filling a primary button. The result reads as more humane and editorial than the strict grayscale-plus-blue of its peers.

The CTA pattern — a dark inverted pill paired with a translucent-white pill, both at 8px radius — is the contemporary dev-tool consensus, executed at a slightly larger, calmer scale than Vercel's dense 6px chrome. The developer-product-as-magazine register (editorial typography, generous whitespace, reading-width prose in a technical product) traces back to Stripe's documentation and marketing era.

As the product transitions to **Ona** (background coding agents — `gitpod.io` now resolves to the Ona identity, titled "Ona · Run background agents"), the visual system carries forward intact: the same editorial type pairing, the same navy-and-near-white field, the same orange accent, the same 8px geometry. What Gitpod rejects: dark-terminal default surfaces (the genre convention), sans-only or sans-plus-mono typography (the dev-tool norm it departs from), heavy consumer-product shadows, and accent-as-primary-button-fill.

**Influences:**

- **ABC Diatype (Dinamo)** — Body and UI grotesque; the calm, slightly mechanical sans that carries every paragraph and control. *https://abcdinamo.com/typefaces/diatype*
- **Martina Plantijn (Dinamo)** — Serif display face; the editorial headline voice that distinguishes the brand from sans-only dev tools. *https://abcdinamo.com/typefaces/martina-plantijn*
- **Vercel** — Light-canvas dev-tool register; inverted dark-pill primary CTA, hairline borders, 8px geometry on a near-white field. *https://vercel.com*
- **Linear** — Contrast-pill CTA discipline and restrained accent usage, adapted to a light editorial surface. *https://linear.app*
- **Stripe** — Developer-product-as-magazine register; editorial typography and generous whitespace in a technical product. *https://stripe.com*
- **Gitpod brand (historical orange identity)** — The warm orange accent (`#FFAE33`) that survives the Ona rebrand as the single chromatic flourish. *https://www.gitpod.io*

## 14. Do's and Don'ts

### Do

- **Do** use the light near-white `#f9f9f9` canvas — the deliberate departure from dark-terminal dev tooling.
- **Do** set headlines in **Martina Plantijn** serif at light weights (300–400) — the editorial signature.
- **Do** carry body, UI, and buttons in **ABC Diatype** grotesque sans at a calm 18px / 1.55.
- **Do** use near-black **navy** `#0a0e19` for text — the cool blue-black, not a neutral charcoal.
- **Do** ship the inverted CTA pair — dark navy pill (white text) + translucent-white pill (navy text), both 8px.
- **Do** ration the orange `#FFAE33` as a single warm accent — badges, focus rings, link-hover, highlights.
- **Do** put **navy text on the orange**, never white — the orange is too light for white to pass contrast.
- **Do** use **8px radius** for buttons and inputs; 12px for cards — the brand's consistent geometry.
- **Do** tint shadows with navy (`rgba(10, 14, 25, …)`) so elevation stays in the ink family.
- **Do** give the page editorial breathing room — 96px+ section padding, 720px reading width.
- **Do** carry the system forward into the Ona identity — same type, ink, accent, geometry.

### Don't

- **Don't** default to a dark-terminal canvas — Gitpod is light-first; the navy is a band treatment, not the ground.
- **Don't** set headlines in the sans — the serif headline is the brand's whole differentiator.
- **Don't** bold the serif heavy — Martina Plantijn at 300–400 is the calm editorial register.
- **Don't** use the orange as text on the light canvas — at 1.6:1 it fails; reinforce link-hover with an underline.
- **Don't** fill the primary CTA with orange — the primary is the dark navy pill; orange is a rare exception.
- **Don't** put white text on the orange accent — only navy passes.
- **Don't** use a neutral charcoal for text — the navy `#0a0e19` is the cooling that defines the system.
- **Don't** pack the layout dense — Gitpod reads like a magazine, not a dashboard; keep the whitespace.
- **Don't** introduce a second accent hue — one warm orange against the navy-and-near-white field is the whole strategy.
- **Don't** use pure-black drop shadows — they read as a foreign neutral against the navy ink.
- **Don't** drop below 8px radius — the soft 8px corner is the brand's tactile signature.

## 15. Agent Prompt Guide

### Quick Color Reference

```
Canvas:           #f9f9f9   (light near-white, faintly cool)
Pure White:       #ffffff   (card / panel surface)
Bg Elev:          #f2f2f3
Bg Ink (navy):    #0a0e19   (dark band, footer)
Text (navy):      #0a0e19   (near-black NAVY, not charcoal)
Text Secondary:   #3a3f4b
Text Tertiary:    #5b606c
Brand Orange:     #ffae33   (accent only — never text, never primary button)
Brand Deep:       #ff8a00   (hover / pressed)
CTA Bg:           #0a0e19   (dark navy pill — the primary)
CTA Text:         #ffffff
CTA Secondary:    rgba(255, 255, 255, 0.85)  (translucent white pill, navy text)
Border:           rgba(10, 14, 25, 0.12)
Focus Ring:       rgba(255, 174, 51, 0.55) 2px
Radius:           8px (buttons/inputs), 12px (cards)
```

### Example Component Prompts

1. **"Create a Gitpod/Ona-style hero: light near-white `#f9f9f9` canvas, an 80px Martina Plantijn serif headline at weight 400 / `-0.02em` tracking in near-black navy `#0a0e19`, an 18px / 400 ABC Diatype body deck at 1.55 line-height in the same navy, and an inverted CTA pair below — primary dark navy pill (`#0a0e19` fill, white text 15px / 500, 8px radius, 12×20 padding) and secondary translucent-white pill (`rgba(255, 255, 255, 0.85)` fill, navy text, 8px radius). Calm, editorial, lots of whitespace."**

2. **"Design a Gitpod feature card: `#ffffff` pure-white background, 12px radius, 1px `rgba(10, 14, 25, 0.12)` hairline border, 24px padding, navy-tinted dual-layer shadow `rgba(10, 14, 25, 0.06) 0 2px 4px, rgba(10, 14, 25, 0.04) 0 8px 24px -6px`. Inside: a 24px Martina Plantijn serif heading at 500 in navy, then 14px / 400 ABC Diatype body in `#3a3f4b` secondary. Hover deepens the border and shadow one tier — no lift."**

3. **"Build a Gitpod accent badge: `rgba(255, 174, 51, 0.12)` soft-orange fill with deep-orange `#ff8a00` text at 12px / 500 / 0.02em tracking, 4px radius, 2×8 padding, label `NEW`. Remember: orange is a fill — text on top must be deep-orange or navy, never white on a light page, and the orange never becomes body text on the canvas."**

4. **"Render a Gitpod top nav: 64px height, `rgba(255, 255, 255, 0.85)` translucent white fill with `backdrop-filter: blur(12px)`, 1px bottom hairline `rgba(10, 14, 25, 0.12)`. Wordmark left in navy. Center nav links in ABC Diatype 15px / 500 ghost style. Right: ghost link + translucent-white secondary pill `Request a demo` + dark navy primary pill `Download` (`#0a0e19` fill, white text, 8px radius)."**

5. **"Compose a Gitpod dark highlight band: full-width `#0a0e19` navy background, near-white text `#f5f5f7`, a 56px Martina Plantijn serif headline at weight 400, body in ABC Diatype 18px / 400 at `#a7abb5`, and a single orange `#ffae33` accent (an underline, a small icon, or a badge) as the lone warm point. CTA inverts to a white pill with navy text."**

6. **"Build a Gitpod input field: `#ffffff` fill, navy text 16px / 400 ABC Diatype, 1px `rgba(10, 14, 25, 0.12)` border, 8px radius, 10×14 padding (~44px height), placeholder at `#9499a3`. On focus: border firms to `rgba(10, 14, 25, 0.24)` and a 2px orange ring `rgba(255, 174, 51, 0.55)` appears with 2px offset — the orange's main functional role."**

### Iteration Guide

1. **Check the canvas.** If it's dark or terminal-feeling, you've reverted to the genre convention. Gitpod is light-first — near-white `#f9f9f9` with navy ink.
2. **Set headlines in the serif.** If your headline is a sans, you've lost the brand. Martina Plantijn at weight 300–400 is the editorial signature; ABC Diatype handles body.
3. **Cool the ink to navy.** If your text is neutral charcoal `#333` or true black, shift it to `#0a0e19` — the blue-black is the cooling that defines the system.
4. **Invert the primary CTA, don't color it.** The primary is the dark navy pill; if you've filled it with orange, you've made the accent a button. Orange stays a spice.
5. **Ration the orange.** `#FFAE33` is a focus ring, a badge fill, a link-hover, a highlight — one warm point per section against the cool field. Never orange text on light, never a second accent hue.
6. **Land the 8px corner.** Below 8px feels engineered-dense (Vercel); a full pill feels consumer. 8px buttons / inputs, 12px cards is the Gitpod geometry.
7. **Give it room.** If the layout feels packed, widen the gutters and grow the body to 18px / 1.55. Gitpod reads like a magazine, not a dashboard.
8. **Tint shadows navy.** Pure-black shadows read foreign on this field — use `rgba(10, 14, 25, …)` so elevation stays in the ink family.

---

*Theme-toggle audit: score=0, signals=[none]*
