
primary
#FFFFFF
--color-primary
on primary
#000000
--color-on-primary
accent blue
#0099FF
--color-accent-blue
ink
#FFFFFF
--color-ink
ink muted
#999999
--color-ink-muted
canvas
#090909
--color-canvas
surface 1
#141414
--color-surface-1
surface 2
#1C1C1C
--color-surface-2
hairline
#262626
--color-hairline
hairline soft
#1A1A1A
--color-hairline-soft
inverse canvas
#FFFFFF
--color-inverse-canvas
inverse ink
#000000
--color-inverse-ink
gradient magenta
#D44DF0
--color-gradient-magenta
gradient violet
#6A4CF5
--color-gradient-violet
gradient orange
#FF7A3D
--color-gradient-orange
gradient coral
#FF5577
--color-gradient-coral
semantic success
#22C55E
--color-semantic-success
字体家族
GT Walsheim Framer Medium / GT Walsheim Medium / Inter / Inter Variable
字重
备注
4 个字体家族,完整字阶、行高和字距见 DESIGN.md
品牌设计系统的完整 Markdown 文档
Framer — Style Reference
> A confident dark-canvas builder marketing site that treats the page like a working artboard — pure black surfaces, white display type set in GT Walsheim Medium with aggressive negative tracking, and a single confident blue (#0099ff) reserved for hyperlinks and selection states. The page rhythm is broken by oversized vibrant gradient atmosphere panels — magenta, violet, orange spotlights — that act as living showcase tiles, not decoration. Every CTA is a white pill on dark; every card is a translucent or charcoal surface; every section title pulls letter-spacing tight enough to feel like a poster.
**Theme:** dark
**Source website:** [https://www.framer.com/](https://www.framer.com/)
Use the live official website to compare and validate this extracted snapshot. The current source website remains authoritative.
Tokens — Colors
| Name | Value | Token | Role |
|---|---|---|---|
| primary | `#ffffff` | `--color-primary` | primary role extracted from the source design |
| on primary | `#000000` | `--color-on-primary` | on primary role extracted from the source design |
| accent blue | `#0099ff` | `--color-accent-blue` | accent blue role extracted from the source design |
| ink | `#ffffff` | `--color-ink` | ink role extracted from the source design |
| ink muted | `#999999` | `--color-ink-muted` | ink muted role extracted from the source design |
| canvas | `#090909` | `--color-canvas` | canvas role extracted from the source design |
| surface 1 | `#141414` | `--color-surface-1` | surface 1 role extracted from the source design |
| surface 2 | `#1c1c1c` | `--color-surface-2` | surface 2 role extracted from the source design |
| hairline | `#262626` | `--color-hairline` | hairline role extracted from the source design |
| hairline soft | `#1a1a1a` | `--color-hairline-soft` | hairline soft role extracted from the source design |
| inverse canvas | `#ffffff` | `--color-inverse-canvas` | inverse canvas role extracted from the source design |
| inverse ink | `#000000` | `--color-inverse-ink` | inverse ink role extracted from the source design |
| gradient magenta | `#d44df0` | `--color-gradient-magenta` | gradient magenta role extracted from the source design |
| gradient violet | `#6a4cf5` | `--color-gradient-violet` | gradient violet role extracted from the source design |
| gradient orange | `#ff7a3d` | `--color-gradient-orange` | gradient orange role extracted from the source design |
| gradient coral | `#ff5577` | `--color-gradient-coral` | gradient coral role extracted from the source design |
| semantic success | `#22c55e` | `--color-semantic-success` | semantic success role extracted from the source design |
Tokens — Typography
GT Walsheim Framer Medium · `--font-primary`
GT Walsheim Medium · `--font-family-2`
Inter · `--font-family-3`
Inter Variable · `--font-family-4`
Type Scale
| Role | Size | Line Height | Letter Spacing | Token |
|---|---|---|---|---|
| display-xxl | 110px | 0.85 | -5.5px | `--text-display-xxl` |
| display-xl | 85px | 0.95 | -4.25px | `--text-display-xl` |
| display-lg | 62px | 1 | -3.1px | `--text-display-lg` |
| display-md | 32px | 1.13 | -1.0px | `--text-display-md` |
| headline | 22px | 1.2 | -0.8px | `--text-headline` |
| subhead | 24px | 1.3 | -0.01px | `--text-subhead` |
| body-lg | 18px | 1.3 | -0.18px | `--text-body-lg` |
| body | 15px | 1.3 | -0.15px | `--text-body` |
| body-sm | 14px | 1.4 | -0.14px | `--text-body-sm` |
| caption | 13px | 1.2 | -0.13px | `--text-caption` |
| micro | 12px | 1.2 | -0.12px | `--text-micro` |
| button | 14px | 1 | -0.14px | `--text-button` |
Tokens — Spacing & Shapes
**Density:** comfortable
Spacing Scale
| Name | Value | Token |
|---|---|---|
| hair | 1px | `--spacing-hair` |
| xxs | 4px | `--spacing-xxs` |
| xs | 8px | `--spacing-xs` |
| sm | 12px | `--spacing-sm` |
| md | 15px | `--spacing-md` |
| lg | 20px | `--spacing-lg` |
| xl | 30px | `--spacing-xl` |
| xxl | 40px | `--spacing-xxl` |
| section | 96px | `--spacing-section` |
Border Radius
| Name | Value | Token |
|---|---|---|
| xs | 4px | `--radius-xs` |
| sm | 6px | `--radius-sm` |
| md | 10px | `--radius-md` |
| lg | 15px | `--radius-lg` |
| xl | 20px | `--radius-xl` |
| xxl | 30px | `--radius-xxl` |
| pill | 100px | `--radius-pill` |
| full | 9999px | `--radius-full` |
Layout
Components
button primary
**Role:** button primary component
button primary pressed
**Role:** button primary pressed component
button secondary
**Role:** button secondary component
button translucent
**Role:** button translucent component
button icon circular
**Role:** button icon circular component
pricing tab default
**Role:** pricing tab default component
pricing tab selected
**Role:** pricing tab selected component
text input
**Role:** text input component
text input focused
**Role:** text input focused component
pricing card
**Role:** pricing card component
pricing card featured
**Role:** pricing card featured component
template card
**Role:** template card component
gradient spotlight card
**Role:** gradient spotlight card component
gradient spotlight card magenta
**Role:** gradient spotlight card magenta component
gradient spotlight card orange
**Role:** gradient spotlight card orange component
product mockup tile
**Role:** product mockup tile component
feature row
**Role:** feature row component
comparison row
**Role:** comparison row component
top nav
**Role:** top nav component
faq row
**Role:** faq row component
footer
**Role:** footer component
Do's and Don'ts
Do
Don't
Layout
Use the documented spacing scale and component geometry as the implementation baseline. Validate responsive composition and current page rhythm against [the live source](https://www.framer.com/).