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/hashicorpTypography
Every text element the kit ships — headings through code
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
- Describe the kit in prose
- Extract colors and typography
- Apply to a sample UI
- 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.”
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
Default
Sizes
With icon
Form fields
Every input control the kit ships — text, select, checkboxes, radios, switches, file
Text inputs
Textarea
Select
Checkboxes
Radio group
Toggle switch
File input
Feedback
Alerts, badges, progress, tooltips, avatars — the signal surface of every UI
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
Avatars
Jeremy Dupont
Author
Progress
Spinner
Tooltip (static)
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
Table
| Kit | Author | Installs | Updated | Status |
|---|---|---|---|---|
| airbnb | getdesign | 12.4K | 2d ago | Active |
| claude | getdesign | 8.1K | 5d ago | Active |
| stripe | getdesign | 7.9K | 1w ago | Active |
| linear.app | getdesign | 6.2K | 2w ago | Beta |
| heritage | dk | 2.1K | 1mo ago | Draft |
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
Welcome back
Sign in with your work email to continue.
New here? Create an account
Dashboard KPIs
Four-card stat row — the staple of every internal dashboard
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
Chat thread
Agent + user turn-based chat — bubbles, avatar, timestamp
Design Agent
online · responds in seconds
Hero
Landing-page headline + subtitle + primary CTA
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
Simple pricing
Pay for what you use. Change plans any time.
Hobby
- 1 project
- Community support
- Public kits only
Pro
Popular- Unlimited projects
- Private kits
- Priority support
- AI kit generator
Team
- 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