vuejs.org is built on a pure-white canvas (rgb(255, 255, 255)).
The system uses rgb(66, 184, 131) as the accent for primary actions and brand signals.
Generously rounded CTAs (40px) suggest approachable, content-first design alongside Inter var experimental as the primary typeface.
Inter var experimental is paired with Inter var for secondary roles.
A restrained elevation system (2 distinct shadows) — shadows reserved for the few elements that must lift off the page.
Motion is a first-class concern — 5 keyframe animations plus transition-driven interactions.
01
Color — roles, semantics & the full census
8 colors measured · click any swatch to copy
Canvas
#ffffff
AAA 12.61:1
Ink
#213547
AAA 12.61:1
Accent
#42b883
Fail 2.5:1
Line
#3c3c3c
AAA 11.03:1
Semantic states
No semantic state colors detected — this system signals state through weight & motion, not hue.
8 colors mined from the live renderexpand
02
Type — the ladder, in the real face
5 roles · rendered live in the real Inter (captured woff2) · lines are editable, click any spec to copy
display xl
display-xl76px · 900
headline
headline16px · 500 · ×4.75
body
body16px · 400 · ×1.00
body sm
body-sm14.4px · 700 · ×1.11
button
button14px · 400 · ×1.03
04
Depth — elevation is extracted, not invented
2 box-shadows measured on the live page · click a tile to copy its raw value
shadow-1
shadow-2
05
Motion — easings, transitions & live keyframes
0 easing curves · 5 keyframes · hover a tile to preview
No distinct @media breakpoints captured at the desktop/mobile pass — this layout is fluid, adapting by ratio rather than hard stops.
09
Do's & Don'ts
20 enforceable rules pulled verbatim from the spec
Do
Use Charcoal (`#213547`) for text — not pure black, it's warmer and more readable
Use Inter var experimental as the primary typeface — it defines the brand personality
Use negative letter-spacing (-1.5px) at display sizes for compressed, editorial headlines
Use the extracted shadow patterns for elevation — they are tuned to match the brand palette
Use #42b883 (`#42b883`) as the primary accent — it's the brand's signature interactive color
Use 40px border-radius on primary buttons — the brand uses generously-rounded CTAs
Maintain nav height at 55px — consistent vertical space for the navigation bar
Include exactly 4 CTAs in the hero (primary + secondary) — this design pattern is multi-action, not single-purpose
Each card includes a top image — imagery is part of the card identity, not optional
Use a 5-column grid on desktop — density matters for this content type
Don't
Don't use pure black (`#000000`) for text — the near-black adds warmth
Don't substitute with generic sans-serif or serif — the custom font carries the brand
Don't increase letter-spacing on headings — the type is designed to run tight at scale
Don't invent new shadow values — use only the extracted shadow levels
Don't introduce additional saturated accent colors — the palette is intentionally controlled
Don't use sharp-cornered or pill buttons — 40px is the CTA border-radius standard
Don't collapse or hide the nav on scroll without an explicit scroll-triggered animation — the design uses fixed nav presence
Don't make the nav sticky — this design lets it scroll away to maximize content focus
Don't put a CTA button in the nav — this design uses links only at the top
Don't over-build the footer — this design keeps it minimal (1 cols, 1 links)
10
Agent guide & export
Paste-ready prompt + the real files behind this page
Build a UI in the vuejs.org design system.
Canvas #ffffff · ink #213547 · accent #42b883.
Type: Inter var experimental — respect the size/weight ladder in §3.
Radius, spacing, shadow: use only the extracted scales (no magic numbers).
Full spec follows — paste the DESIGN.md below into your agent.