---
name: hubspot-design-reference
provider: DesignSkill (https://designskill.dev)
reference: hubspot.com
source_url: https://www.hubspot.com/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T08:33:42.356Z
mode: full-render
classification: reference_only
---

# HubSpot — Design Reference (measured)

Measured design tokens extracted from `https://www.hubspot.com/` by designskill-extract/3.2.0.
Every value below was observed in the live page (×N = observation count). Values not listed were **not observed** — do not invent them.
This document is `reference_only`: an analysis of a third-party site, not a license to its brand assets.

## Overview

- Extraction mode: **full-render** (viewports 390/768/1440px × light/dark), 1 page(s), 450 observation records.
- Primary action color observed as `#fcc6b1` (basis: declared, confidence 0.92).
- Dominant font family: **HubSpot Sans** (×1089; secondary HubSpot Serif ×56).
- Type scale observed at 8 sizes from 12px to 80px.
- Corner radius values in use: 16px, 8px, 4px, 6px.
- Not observed in this extraction: badges.

## Colors

### Role Tokens

Semantic roles inferred from observed usage. `basis` tells how the role was established (declared CSS var > cross-validated > inferred).

| Token | Value | Basis | Confidence | Observed |
|---|---|---|---|---|
| `{color.primary}` | `#fcc6b1` | declared | 0.92 | ×6 — --light-theme-badge-brand-fill-01 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×530 |
| `{color.ink}` | `#ffffff` | declared | 0.92 | ×530 — --light-theme-button-primary-text-color |
| `{color.surface}` | `#fcded2` | inferred | 0.7 | ×28 |
| `{color.accent}` | `#cfcccb` | declared | 0.9 | ×1 — --light-theme-accent-fill-01 |

### Observed Palette

Full measured palette ordered by usage share. `Used in` lists the CSS properties the color appeared on.

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#1f1f1f` | 36.1% | --light-theme-button-tertiary-fill-idle, custom-property, background-color, color, border-color | ×781 (cross-validated, 0.95) |
| `#ffffff` | 24.5% | --light-theme-button-primary-text-color, custom-property, background-color, color, border-color | ×530 (cross-validated, 0.94) |
| `#000000` | 10.8% | background-color, border-color | ×234 (observed, 0.78) |
| `#f8f5ee` | 10.0% | --dark-theme-button-secondary-border, custom-property, color, border-color | ×217 (cross-validated, 0.93) |
| `#ffffff` | 6.0% | color | ×130 (observed, 0.77) |
| `#000000` | 3.2% | background-color, border-color, outline, color | ×70 (cross-validated, 0.91) |
| `#ff4800` | 3.1% | --light-theme-button-primary-fill-idle, custom-property, background-color, color, border-color | ×67 (cross-validated, 0.91) |
| `#042729` | 1.4% | background-color | ×30 (observed, 0.75) |
| `#fcded2` | 1.3% | background-color, --light-theme-button-secondary-fill-hover, custom-property, --light-theme-number-fill-inactive | ×28 (cross-validated, 0.9) |
| `#000000` | 0.6% | color | ×12 (observed, 0.74) |
| `#caebff` | 0.3% | --cl-button-hover-background | ×6 (inferred, 0.58) |
| `#180bb1` | 0.2% | --cl-button-background | ×4 (inferred, 0.57) |
| `#213343` | 0.2% | box-shadow | ×4 (inferred, 0.57) |
| `#fcc6b1` | 0.3% | --light-theme-button-secondary-fill-pressed, custom-property | ×6 (inferred, 0.58) |
| `#c93700` | 0.1% | --light-theme-button-primary-fill-hover, custom-property | ×3 (inferred, 0.57) |
| `#9f2800` | 0.1% | --light-theme-button-primary-fill-pressed, custom-property | ×3 (inferred, 0.57) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `HubSpot Sans` | ×1089 |
| `HubSpot Serif` | ×56 |
| `HubSpot Serif Page Header Human` | ×38 |
| `Zen Kaku Gothic New` | ×5 |
| `monospace` | ×2 |

Use **HubSpot Sans** as the default family — it accounts for the overwhelming majority of observed text nodes.

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 80px | ×25 |
| `{type.h1}` | 40px | ×20 |
| `{type.h2}` | 32px | ×30 |
| `{type.h3}` | 24px | ×66 |
| `{type.body-lg}` | 18px | ×98 |
| `{type.body}` | 16px | ×494 |
| `{type.body-sm}` | 14px | ×331 |
| `{type.caption}` | 12px | ×101 |

The most frequently observed size is **16px** (×494) — treat it as the default body size.

## Spacing

| Value | Observed |
|---|---|
| `8px` | ×559 |
| `16px` | ×546 |
| `24px` | ×364 |
| `2px` | ×272 |
| `3px` | ×228 |
| `4px` | ×176 |
| `32px` | ×169 |
| `12px` | ×92 |
| `6px` | ×78 |
| `40px` | ×77 |
| `64px` | ×61 |
| `80px` | ×14 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `16px` | ×191 |
| `8px` | ×175 |
| `4px` | ×20 |
| `6px` | ×2 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgba(33, 51, 67, 0.12) 0px 2px 4px 0px` | ×11 |
| `0 0 0 1px var(--cl-card-border-color)` | ×5 |
| `#213343` | ×4 |
| `var(--global-nav-box-shadow, 0 2px 4px rgba(33, 51, 67, 0.12))` | ×2 |
| `0 0 0 1px var(--cl-color-border-02)` | ×2 |
| `0 2px 4px rgba(33,51,67,.12)` | ×1 |

## Motion

| Duration | Observed |
|---|---|
| `0.3s` | ×110 |
| `0.2s` | ×60 |
| `0.15s` | ×40 |
| `0.01s` | ×26 |
| `.3s` | ×8 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#ff4800` · text `#ffffff` · radius `8px` · padding `8px 16px` · font `14px/500` | ×3 |
| button.outline | text `#1f1f1f` · border `2px solid rgb(31, 31, 31)` · radius `8px` · padding `12px 24px` · font `16px` | ×2 |
| form.input | bg `#000000` · text `#1f1f1f` · border `0px solid rgb(31, 31, 31)` · radius `4px` · padding `3.2px 8px` · height `34` | ×1 |
| card | bg `#ffffff` · radius `16px` · border `1px solid rgba(0, 0, 0, 0.11)` · padding `32px 32px 24px` | ×10 |
| nav | bg `#ffffff` · height `108px` · position `relative` · link `#ffffff` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(257deg, rgba(251, 221, 208, 0.3) -32.4%, rgba(255, 165, 129, 0.3) -3.42%, rgba(255, 73, 0, 0.3) 23.87%, rgba(251, 223, 233, 0.3) 50.46%, rgba(253, 191, 219, 0.3) 79.15%, rgba(249, 57, 166, 0.3) 103.64%);
```

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| focus | outline-color | `rgb(31, 31, 31)` | `rgb(47, 117, 121)` |
| focus | outline-width | `3px` | `2px` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#1f1f1f` | `#ffffff` | 16.48 | pass | observed ×290 |
| `#f8f5ee` | `#1f1f1f` | 15.14 | pass | observed ×71 |
| `#ffffff` | `#1f1f1f` | 16.48 | pass | observed ×68 |
| `#1f1f1f` | `#fcfcfa` | 16.05 | pass | observed ×53 |
| `#f8f5ee` | `#042729` | 14.53 | pass | observed ×33 |
| `#ffffff` | `#ff4800` | 3.4 | fail | observed ×20 |
| `#000000` | `#ffffff` | 21 | pass | observed ×17 |
| `#ff4800` | `#ffffff` | 3.4 | fail | observed ×14 |
| `#000000` | `#fcfcfa` | 20.44 | pass | observed ×11 |
| `#1f1f1f` | `#fcded2` | 12.97 | pass | observed ×9 |
| `#ffffff` | `#ffffff` | 1 | fail | ink_on_background |
| `#ffffff` | `#fcc6b1` | 1.52 | fail | white_on_primary |

4 measured pair(s) fail AA — if you reuse those pairs, adjust lightness until the ratio reaches 4.5:1.

## Usage Rules

### Do
- Use `{color.primary}` (`#fcc6b1`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#ffffff`) on `{color.background}` (`#ffffff`).
- Set all text in `HubSpot Sans` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (16px, 8px, 4px, 6px) — no intermediate values were observed.
- Cite this file's token names (`{color.*}`, `{type.*}`) when generating UI so output stays traceable to observations.

### Don't
- Don't invent colors, sizes, shadows, or spacing not listed above — absence means *not observed*, and this document records observations only.
- Don't assume the missing blocks (badges) don't exist on the site — they were simply not captured in this run.
- Don't copy brand assets (logo, wordmark, imagery, copy) — `reference_only` covers measured style values, not brand identity.

## Provenance

- Source: https://www.hubspot.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:33:42.356Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 06, 07, 09, 10, 11, 12 · missing: badges
- Degraded stages (extraction failure ≠ design change — exclude from diffs): state-observation
- Warning: primary 불일치: static=#ff4800 vs render=#fcc6b1 — render 채택

---

<sub>Generated & served by [DesignSkill](https://designskill.dev)</sub>
