getdesign.mdgetdesign/hashicorp

HashiCorp

Enterprise infrastructure aesthetic with dual light/dark modes, tight brand-font headings, and per-product color tokens layered over a restrained whisper-shadow system.

install

npx designkit-cli add getdesign/hashicorp
source ↗
previewtemplates · HashiCorp

Typography

Every text element the kit ships — headings through code

elements

Headings

The quick brown fox

Section heading

Subsection heading

Minor heading

Overline heading

Body text

Lead paragraph.Body text sits at the backbone of any interface — if it reads well, everything else has a chance. If it doesn't, nothing else matters.

Standard paragraph at the body size. Type hierarchies work best when the jump from body to subheading is clear but not disruptive — around 1.25-1.5× works across most contexts. Inline elements like a link, inline code, emphasis, strong, and highlighted text should all feel native to the kit.

Small / caption text — used for metadata, timestamps, descriptions under labels. Usually 14px or slightly smaller.

Lists

Unordered

  • Token-driven styling
  • Agent-readable format
  • Composable kits
    • Colors
    • Typography
    • Component stylings
  • Portable between projects

Ordered

  1. Describe the kit in prose
  2. Extract colors and typography
  3. Apply to a sample UI
  4. Iterate on token values

Blockquote

“Good design is as little design as possible. Less, but better — because it concentrates on the essential aspects, and the products are not burdened with non-essentials.”
— Dieter Rams

Code

// install a kit
$ npx designkit-cli add airbnb

// apply it to your project
import { applyKit } from "@designkit/theme"
applyKit("airbnb")

Rule


Buttons

Primary, secondary, outline, ghost — every state the kit ships

elements

Default

Sizes

With icon

Form fields

Every input control the kit ships — text, select, checkboxes, radios, switches, file

elements

Text inputs

Textarea

Select

Checkboxes

Radio group

Billing cadence

Toggle switch

File input

Feedback

Alerts, badges, progress, tooltips, avatars — the signal surface of every UI

elements

Alerts

!

Scheduled maintenance

We'll be rolling out a new version on Friday at 22:00 UTC. Expect a short read-only window.

!

Kit published

Your DESIGN.md is live. Anyone can now install it with `npx designkit-cli add you/my-kit`.

!

Deprecated API

You're calling /v1/kits which will be removed in 30 days. Migrate to /v2/kits.

!

Build failed

Two component tokens reference an undefined color. Run `designkit lint` to see them.

Badges & tags

OfficialCommunityv2.0BetaDeprecatedOutlineOutline alt

Avatars

JD

Jeremy Dupont

Author

ALMTKPSJ+6

Progress

Upload32%
Build78%
Complete100%

Spinner

Loading…

Tooltip (static)

Tooltip text

Keyboard shortcut

Press K to open the command palette, or Esc to dismiss.

Data display

Table, definition list, empty state — how the kit shows structured data

app

Table

KitAuthorInstallsUpdatedStatus
airbnbgetdesign12.4K2d agoActive
claudegetdesign8.1K5d agoActive
stripegetdesign7.9K1w agoActive
linear.appgetdesign6.2K2w agoBeta
heritagedk2.1K1mo agoDraft

Definition list

Name
Airbnb
Author
getdesign · Claude
Format
DESIGN.md (Google Stitch spec)
Primary font
Nunito (substitute for Airbnb Cereal VF)
Installs
12,408
License
MIT

Empty state

No kits yet

You haven't published any kits on this account. Drop a DESIGN.md in a public repo to get started.

Breadcrumbs

Tabs

Sign in

Centered auth card — the most scrutinised surface in any app

app

Welcome back

Sign in with your work email to continue.

or

New here? Create an account

Dashboard KPIs

Four-card stat row — the staple of every internal dashboard

app

Overview

Performance for the last 30 days

Active users

12,408

+4.2% vs last period

MRR

$28.9K

+12.1% vs last period

Churn

1.8%

-0.3% vs last period

NPS

72

+5 vs last period

[chart placeholder]

Chat thread

Agent + user turn-based chat — bubbles, avatar, timestamp

app
A

Design Agent

online · responds in seconds

Hey — what's the goal of today's session?
I want to ship a pricing page that matches our brand.
Got it. Sharing three variants in a sec — each in your brand tokens so it'll feel native. Which fits better: conversion-first, feature-first, or transparency-first?
Let's try conversion-first.

Hero

Landing-page headline + subtitle + primary CTA

marketing
New · v2.0

Designed for humans. Built for agents.

Ship a brand-aligned product in hours. Coding agents write UI that matches your design system — no brief, no handoff.

Pricing

Three-tier comparison grid with a highlighted middle tier

marketing

Simple pricing

Pay for what you use. Change plans any time.

Hobby

$0forever
  • 1 project
  • Community support
  • Public kits only

Pro

Popular
$19per month
  • Unlimited projects
  • Private kits
  • Priority support
  • AI kit generator

Team

$49per seat / mo
  • Everything in Pro
  • Shared workspace
  • SSO + audit logs
  • Dedicated support

source

---
name: HashiCorp
description:
  Enterprise infrastructure aesthetic with dual light/dark modes, tight
  brand-font headings, and per-product color tokens layered over a restrained
  whisper-shadow system.
originalFonts:
  primary: "HashiCorp Sans"
  fallbacks:
    - "system-ui"
    - "-apple-system"
    - "BlinkMacSystemFont"
    - "Segoe UI"
    - "Helvetica"
    - "Arial"
colors:
  black: "#000000"
  dark-charcoal: "#15181e"
  near-black: "#0d0e12"
  light-gray: "#f1f2f3"
  mid-gray: "#d5d7db"
  cool-gray: "#b2b6bd"
  dark-gray: "#656a76"
  charcoal: "#3b3d45"
  near-white: "#efeff1"
  terraform-purple: "#7b42bc"
  vault-yellow: "#ffcf25"
  waypoint-teal: "#14c6cb"
  waypoint-teal-hover: "#12b6bb"
  vagrant-blue: "#1868f2"
  purple-accent: "#911ced"
  visited-purple: "#a737ff"
  action-blue: "#1060ff"
  link-blue: "#2264d6"
  bright-blue: "#2b89ff"
  amber: "#bb5a00"
  amber-light: "#fbeabf"
  vault-faint-yellow: "#fff9cf"
  orange: "#a9722e"
  red: "#731e25"
  navy: "#101a59"
  background: "#ffffff"
  surface: "#f1f2f3"
  ink: "#000000"
  ink-muted: "#3b3d45"
  accent: "#2264d6"
  accent-alt: "#7b42bc"
  border: "rgba(178, 182, 189, 0.4)"
  link: "#2264d6"
typography:
  h1:
    family: "Inter"
    size: "5.125rem"
    weight: 600
    lineHeight: 1.17
  h2:
    family: "Inter"
    size: "3.25rem"
    weight: 600
    lineHeight: 1.19
  h3:
    family: "Inter"
    size: "2.625rem"
    weight: 700
    lineHeight: 1.19
    letterSpacing: "-0.42px"
  body:
    family: "system-ui"
    size: "1rem"
    weight: 400
    lineHeight: 1.63
  label:
    family: "Inter"
    size: "0.8125rem"
    weight: 600
    lineHeight: 1.69
    letterSpacing: "1.3px"
  code:
    family: "JetBrains Mono"
spacing:
  xs: "4px"
  sm: "8px"
  md: "16px"
  lg: "24px"
  xl: "48px"
rounded:
  sm: "2px"
  md: "5px"
  lg: "8px"
  xl: "12px"
shadows:
  sm:
    "rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px"
  md:
    "rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px"
components:
  button-primary:
    background: "{colors.dark-charcoal}"
    color: "{colors.mid-gray}"
    border: "1px solid rgba(178, 182, 189, 0.4)"
    radius: "{rounded.md}"
    padding: "9px 9px 9px 15px"
  button-secondary:
    background: "#ffffff"
    color: "{colors.charcoal}"
    border: "1px solid {colors.mid-gray}"
    radius: "{rounded.sm}"
    padding: "8px 12px"
  card:
    background: "#ffffff"
    border: "none"
    radius: "{rounded.lg}"
    padding: "1.5rem"
  input:
    background: "{colors.near-black}"
    color: "{colors.near-white}"
    border: "1px solid rgb(97, 104, 117)"
    radius: "{rounded.md}"
    padding: "11px"
---

<!-- source: VoltAgent/awesome-design-md @ 80bbbc2 (MIT) — see ATTRIBUTION.md -->

# Design System Inspiration of HashiCorp

## 1. Visual Theme & Atmosphere

HashiCorp's website is enterprise infrastructure made tangible — a design system
that must communicate the complexity of cloud infrastructure management while
remaining approachable. The visual language splits between two modes: a clean
white light-mode for informational sections and a dramatic dark-mode (`#15181e`,
`#0d0e12`) for hero areas and product showcases, creating a day/night duality
that mirrors the "build in light, deploy in dark" developer workflow.

The typography is anchored by a custom brand font (HashiCorp Sans, loaded as
`__hashicorpSans_96f0ca`) that carries substantial weight — literally. Headings
use 600–700 weights with tight line-heights (1.17–1.19), creating dense,
authoritative text blocks that communicate enterprise confidence. The hero
headline at 82px weight 600 with OpenType `"kern"` enabled is not decorative —
it's infrastructure-grade typography.

What distinguishes HashiCorp is its multi-product color system. Each product in
the portfolio has its own brand color — Terraform purple (`#7b42bc`), Vault
yellow (`#ffcf25`), Waypoint teal (`#14c6cb`), Vagrant blue (`#1868f2`) — and
these colors appear throughout as accent tokens via a CSS custom property system
(`--mds-color-*`). This creates a design system within a design system: the
parent brand is black-and-white with blue accents, while each child product
injects its own chromatic identity.

The component system uses the `mds` (Markdown Design System) prefix, indicating
a systematic, token-driven approach where colors, spacing, and states are all
managed through CSS variables. Shadows are remarkably subtle — dual-layer
micro-shadows using `rgba(97, 104, 117, 0.05)` that are nearly invisible but
provide just enough depth to separate interactive surfaces from the background.

**Key Characteristics:**

- Dual-mode: clean white sections + dramatic dark (`#15181e`) hero/product areas
- Custom HashiCorp Sans font with 600–700 weights and `"kern"` feature
- Multi-product color system via `--mds-color-*` CSS custom properties
- Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant
  blue
- Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing)
- Micro-shadows: dual-layer at 0.05 opacity — depth through whisper, not shout
- Token-driven `mds` component system with semantic variable names
- Tight border radius: 2px–8px, nothing pill-shaped or circular
- System-ui fallback stack for secondary text

## 2. Color Palette & Roles

### Brand Primary

- **Black** (`#000000`): Primary brand color, text on light surfaces,
  `--mds-color-hcp-brand`
- **Dark Charcoal** (`#15181e`): Dark mode backgrounds, hero sections
- **Near Black** (`#0d0e12`): Deepest dark mode surface, form inputs on dark

### Neutral Scale

- **Light Gray** (`#f1f2f3`): Light backgrounds, subtle surfaces
- **Mid Gray** (`#d5d7db`): Borders, button text on dark
- **Cool Gray** (`#b2b6bd`): Border accents (at 0.1–0.4 opacity)
- **Dark Gray** (`#656a76`): Helper text, secondary labels,
  `--mds-form-helper-text-color`
- **Charcoal** (`#3b3d45`): Secondary text on light, button borders
- **Near White** (`#efeff1`): Primary text on dark surfaces

### Product Brand Colors

- **Terraform Purple** (`#7b42bc`): `--mds-color-terraform-button-background`
- **Vault Yellow** (`#ffcf25`): `--mds-color-vault-button-background`
- **Waypoint Teal** (`#14c6cb`): `--mds-color-waypoint-button-background-focus`
- **Waypoint Teal Hover** (`#12b6bb`):
  `--mds-color-waypoint-button-background-hover`
- **Vagrant Blue** (`#1868f2`): `--mds-color-vagrant-brand`
- **Purple Accent** (`#911ced`): `--mds-color-palette-purple-300`
- **Visited Purple** (`#a737ff`): `--mds-color-foreground-action-visited`

### Semantic Colors

- **Action Blue** (`#1060ff`): Primary action links on dark
- **Link Blue** (`#2264d6`): Primary links on light
- **Bright Blue** (`#2b89ff`): Active links, hover accent
- **Amber** (`#bb5a00`): `--mds-color-palette-amber-200`, warning states
- **Amber Light** (`#fbeabf`): `--mds-color-palette-amber-100`, warning
  backgrounds
- **Vault Faint Yellow** (`#fff9cf`):
  `--mds-color-vault-radar-gradient-faint-stop`
- **Orange** (`#a9722e`): `--mds-color-unified-core-orange-6`
- **Red** (`#731e25`): `--mds-color-unified-core-red-7`, error states
- **Navy** (`#101a59`): `--mds-color-unified-core-blue-7`

### Shadows

- **Micro Shadow**
  (`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`):
  Default card/button elevation
- **Focus Outline**: `3px solid var(--mds-color-focus-action-external)` —
  systematic focus ring

## 3. Typography Rules

### Font Families

- **Primary Brand**: `__hashicorpSans_96f0ca` (HashiCorp Sans), with fallback:
  `__hashicorpSans_Fallback_96f0ca`
- **System UI**:
  `system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial`

### Hierarchy

| Role            | Font           | Size           | Weight  | Line Height         | Letter Spacing | Notes                       |
| --------------- | -------------- | -------------- | ------- | ------------------- | -------------- | --------------------------- |
| Display Hero    | HashiCorp Sans | 82px (5.13rem) | 600     | 1.17 (tight)        | normal         | `"kern"` enabled            |
| Section Heading | HashiCorp Sans | 52px (3.25rem) | 600     | 1.19 (tight)        | normal         | `"kern"` enabled            |
| Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700     | 1.19 (tight)        | -0.42px        | Negative tracking           |
| Sub-heading     | HashiCorp Sans | 34px (2.13rem) | 600–700 | 1.18 (tight)        | normal         | Feature blocks              |
| Card Title      | HashiCorp Sans | 26px (1.63rem) | 700     | 1.19 (tight)        | normal         | Card and panel headings     |
| Small Title     | HashiCorp Sans | 19px (1.19rem) | 700     | 1.21 (tight)        | normal         | Compact headings            |
| Body Emphasis   | HashiCorp Sans | 17px (1.06rem) | 600–700 | 1.18–1.35           | normal         | Bold body text              |
| Body Large      | system-ui      | 20px (1.25rem) | 400–600 | 1.50                | normal         | Hero descriptions           |
| Body            | system-ui      | 16px (1.00rem) | 400–500 | 1.63–1.69 (relaxed) | normal         | Standard body text          |
| Nav Link        | system-ui      | 15px (0.94rem) | 500     | 1.60 (relaxed)      | normal         | Navigation items            |
| Small Body      | system-ui      | 14px (0.88rem) | 400–500 | 1.29–1.71           | normal         | Secondary content           |
| Caption         | system-ui      | 13px (0.81rem) | 400–500 | 1.23–1.69           | normal         | Metadata, footer links      |
| Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600     | 1.69 (relaxed)      | 1.3px          | `text-transform: uppercase` |

### Principles

- **Brand/System split**: HashiCorp Sans for headings and brand-critical text;
  system-ui for body, navigation, and functional text. The brand font carries
  the weight, system-ui carries the words.
- **Kern always on**: All HashiCorp Sans text enables OpenType `"kern"` —
  letterfitting is non-negotiable.
- **Tight headings**: Every heading uses 1.17–1.21 line-height, creating dense,
  stacked text blocks that feel infrastructural — solid, load-bearing.
- **Relaxed body**: Body text uses 1.50–1.69 line-height (notably generous),
  creating comfortable reading rhythm beneath the dense headings.
- **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing
  serves as the systematic category/section marker — always HashiCorp Sans
  weight 600.

## 4. Component Stylings

### Buttons

**Primary Dark**

- Background: `#15181e`
- Text: `#d5d7db`
- Padding: 9px 9px 9px 15px (asymmetric, more left padding)
- Radius: 5px
- Border: `1px solid rgba(178, 182, 189, 0.4)`
- Shadow:
  `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`
- Focus: `3px solid var(--mds-color-focus-action-external)`
- Hover: uses `--mds-color-surface-interactive` token

**Secondary White**

- Background: `#ffffff`
- Text: `#3b3d45`
- Padding: 8px 12px
- Radius: 4px
- Hover: `--mds-color-surface-interactive` + low-shadow elevation
- Focus: `3px solid transparent` outline
- Clean, minimal appearance

**Product-Colored Buttons**

- Terraform: background `#7b42bc`
- Vault: background `#ffcf25` (dark text)
- Waypoint: background `#14c6cb`, hover `#12b6bb`
- Each product button follows the same structural pattern but uses its brand
  color

### Badges / Pills

- Background: `#42225b` (deep purple)
- Text: `#efeff1`
- Padding: 3px 7px
- Radius: 5px
- Border: `1px solid rgb(180, 87, 255)`
- Font: 16px

### Inputs

**Text Input (Dark Mode)**

- Background: `#0d0e12`
- Text: `#efeff1`
- Border: `1px solid rgb(97, 104, 117)`
- Padding: 11px
- Radius: 5px
- Focus: `3px solid var(--mds-color-focus-action-external)` outline

**Checkbox**

- Background: `#0d0e12`
- Border: `1px solid rgb(97, 104, 117)`
- Radius: 3px

### Links

- **Action Blue on Light**: `#2264d6`, hover → blue-600 variable, underline on
  hover
- **Action Blue on Dark**: `#1060ff` or `#2b89ff`, underline on hover
- **White on Dark**: `#ffffff`, transparent underline → visible underline on
  hover
- **Neutral on Light**: `#3b3d45`, transparent underline → visible underline on
  hover
- **Light on Dark**: `#efeff1`, similar hover pattern
- All links use `var(--wpl-blue-600)` as hover color

### Cards & Containers

- Light mode: white background, micro-shadow elevation
- Dark mode: `#15181e` or darker surfaces
- Radius: 8px for cards and containers
- Product showcase cards with gradient borders or accent lighting

### Navigation

- Clean horizontal nav with mega-menu dropdowns
- HashiCorp logo left-aligned
- system-ui 15px weight 500 for links
- Product categories organized by lifecycle management group
- "Get started" and "Contact us" CTAs in header
- Dark mode variant for hero sections

## 5. Layout Principles

### Spacing System

- Base unit: 8px
- Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px,
  40px, 48px

### Grid & Container

- Max content width: ~1150px (xl breakpoint)
- Full-width dark hero sections with contained content
- Card grids: 2–3 column layouts
- Generous horizontal padding at desktop scale

### Breakpoints

| Name          | Width       | Key Changes                |
| ------------- | ----------- | -------------------------- |
| Mobile Small  | <375px      | Tight single column        |
| Mobile        | 375–480px   | Standard mobile            |
| Small Tablet  | 480–600px   | Minor adjustments          |
| Tablet        | 600–768px   | 2-column grids begin       |
| Small Desktop | 768–992px   | Full nav visible           |
| Desktop       | 992–1120px  | Standard layout            |
| Large Desktop | 1120–1440px | Max-width content          |
| Ultra-wide    | >1440px     | Centered, generous margins |

### Whitespace Philosophy

- **Enterprise breathing room**: Generous vertical spacing between sections
  (48px–80px+) communicates stability and seriousness.
- **Dense headings, spacious body**: Tight line-height headings sit above
  relaxed body text, creating visual "weight at the top" of each section.
- **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D
  illustrations and gradients breathe.

### Border Radius Scale

- Minimal (2px): Links, small inline elements
- Subtle (3px): Checkboxes, small inputs
- Standard (4px): Secondary buttons
- Comfortable (5px): Primary buttons, badges, inputs
- Card (8px): Cards, containers, images

## 6. Depth & Elevation

| Level             | Treatment                                                                    | Use                                    |
| ----------------- | ---------------------------------------------------------------------------- | -------------------------------------- |
| Flat (Level 0)    | No shadow                                                                    | Default surfaces, text blocks          |
| Whisper (Level 1) | `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` | Cards, buttons, interactive surfaces   |
| Focus (Level 2)   | `3px solid var(--mds-color-focus-action-external)` outline                   | Focus rings — color-matched to context |

**Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in
modern web design. The dual-layer shadows at 5% opacity are nearly invisible —
they exist not to create visual depth but to signal interactivity. If you can
see the shadow, it's too strong. This restraint communicates the enterprise
value of stability — nothing floats, nothing is uncertain.

## 7. Do's and Don'ts

### Do

- Use HashiCorp Sans for headings and brand text, system-ui for body and UI text
- Enable `"kern"` on all HashiCorp Sans text
- Use product brand colors ONLY for their respective products (Terraform =
  purple, Vault = yellow, etc.)
- Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for
  section markers
- Keep shadows at the "whisper" level (0.05 opacity dual-layer)
- Use the `--mds-color-*` token system for consistent color application
- Maintain the tight-heading / relaxed-body rhythm (1.17–1.21 vs 1.50–1.69
  line-heights)
- Use `3px solid` focus outlines for accessibility

### Don't

- Don't use product brand colors outside their product context (no Terraform
  purple on Vault content)
- Don't increase shadow opacity above 0.1 — the whisper level is intentional
- Don't use pill-shaped buttons (>8px radius) — the sharp, minimal radius is
  structural
- Don't skip the `"kern"` feature on headings — the font requires it
- Don't use HashiCorp Sans for small body text — it's designed for 17px+ heading
  use
- Don't mix product colors in the same component — each product has one color
- Don't use pure black (`#000000`) for dark backgrounds — use `#15181e` or
  `#0d0e12`
- Don't forget the asymmetric button padding — 9px 9px 9px 15px is intentional

## 8. Responsive Behavior

### Breakpoints

| Name    | Width      | Key Changes                                |
| ------- | ---------- | ------------------------------------------ |
| Mobile  | <768px     | Single column, hamburger nav, stacked CTAs |
| Tablet  | 768–992px  | 2-column grids, nav begins expanding       |
| Desktop | 992–1150px | Full layout, mega-menu nav                 |
| Large   | >1150px    | Max-width centered, generous margins       |

### Collapsing Strategy

- Hero: 82px → 52px → 42px heading sizes
- Navigation: mega-menu → hamburger
- Product cards: 3-column → 2-column → stacked
- Dark sections maintain full-width but compress padding
- Buttons: inline → full-width stacked on mobile

## 9. Agent Prompt Guide

### Quick Color Reference

- Light bg: `#ffffff`, `#f1f2f3`
- Dark bg: `#15181e`, `#0d0e12`
- Text light: `#000000`, `#3b3d45`
- Text dark: `#efeff1`, `#d5d7db`
- Links: `#2264d6` (light), `#1060ff` (dark), `#2b89ff` (active)
- Helper text: `#656a76`
- Borders: `rgba(178, 182, 189, 0.4)`, `rgb(97, 104, 117)`
- Focus: `3px solid` product-appropriate color

### Example Component Prompts

- "Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans
  weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px
  system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary
  dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px
  radius, 8px 12px padding)."
- "Design a product card: white background, 8px radius, dual-layer shadow at
  rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px
  system-ui weight 400 line-height 1.63."
- "Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height
  1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color."
- "Create a product-specific CTA button: Terraform → #7b42bc background, Vault →
  #ffcf25 with dark text, Waypoint → #14c6cb. All: 5px radius, 500 weight text,
  16px system-ui."
- "Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid
  rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid
  accent-color outline."

### Iteration Guide

1. Always start with the mode decision: light (white) for informational, dark
   (#15181e) for hero/product
2. HashiCorp Sans for headings only (17px+), system-ui for everything else
3. Shadows are at whisper level (0.05 opacity) — if visible, reduce
4. Product colors are sacred — each product owns exactly one color
5. Focus rings are always 3px solid, color-matched to product context
6. Uppercase labels are the systematic wayfinding pattern — 13px, 600, 1.3px
   tracking