Design Language System
Button Components · 2026
Tokens sourced from Primitives.json + Semantic.json
Design Tokens
Token Reference
All values sourced from Primitives.json + Semantic.json. Component uses 3-layer token architecture: Primitives → Semantic → Component (--btn-*). Switch tabs to view tokens for Solid (Light Mode Blue + Dark Mode Inverted) or Outline (Light Mode Blue + Dark Mode White) variants. Foundation rows (sizing, typography, radius) apply to all variants.
| Property | CSS Token | Value | Notes |
|---|---|---|---|
| Foundation — applies to all variants | |||
| Size — sm | --btn-w-sm × --btn-h-sm | 144px × 40px / px 16px | Buttons/Width+Height/Small |
| Size — md | --btn-w-md × --btn-h-md | 172px × 48px / px 20px | Buttons/Width+Height/Medium/Regular |
| Size — lg | --btn-w-lg × --btn-h-lg | 366px × 48px / px 20px | Buttons/Width+Height/CTA/Large |
| Size — full | --btn-w-full × --btn-h-full | 100% × 48px / px 20px | Buttons/Width+Height/Full Width |
| Label font | --btn-font-family | Proxima Nova | Medium 500 |
| Label type | --btn-font-size / line-height | 16px / 20px · 0.02em · capitalize | Buttons/Font |
| Border radius | --btn-radius | 4px | Buttons/Radius/Default |
| Light Mode — Solid Blue (Primary) | |||
| Default | --btn-solid-default | #142D51 | Buttons/Solid/Default → Blue-900 |
| Hover | --btn-solid-hover | #255090 | Buttons/Solid/Hover → Blue-700 |
| Active | --btn-solid-active | #2F71D4 | Buttons/Solid/Active-Pressed |
| Focus bg | --btn-solid-focus-fill | #E4EAF4 | Buttons/Solid/Focus-Fill → Blue-100 |
| Focus ring | --btn-solid-focus-ring | #90A5C3 | Buttons/Solid/Focus-Ring |
| Disabled | --btn-solid-disabled | #C5C5C5 | Buttons/Solid/Disabled → Neutral-300 |
| Dark Mode — Inverted / White Solid (Primary on dark) | |||
| Default | --btn-inverted-default | #FFFFFF · text #142D51 | Buttons-Solid/Dark Mode → Inverted_Primary |
| Hover | --btn-inverted-hover | #E4EAF4 | Blue-100 fill on dark bg |
| Active | --btn-inverted-active | #BDC9DD | Blue-200 fill on dark bg |
| Focus bg | --btn-inverted-focus-fill | #FFFFFF | Stays white — relies on focus ring |
| Focus ring | --btn-inverted-focus-ring | #90A5C3 | Same ring as Light Mode |
| Disabled | --btn-inverted-disabled | #C5C5C5 · text #9B9B9B | Neutral-300 bg, Neutral-400 text |
Token Sync
Token Changes
Values corrected from updated Primitives.json + Semantic.json. 3 primitive values updated.
| Token | Value | Note |
|---|---|---|
--color-blue-700 | #255090 | Hover state (Blue-Brand 1/Blue-700) |
--color-neutral-300 | #C5C5C5 | Disabled bg / border |
--color-success | #24882D | Feedback/success (Green-900) |
--btn-solid-hover | #255090 | Button hover (inherits Blue-700) |
Design Tokens
Color
Primitive palette extracted from Primitives.json. Semantic mappings from Semantic.json.
Blue Scale
Blue-100
#E4EAF4
Solid/Focus-Fill, Outline/Focus-Fill
Blue-200
#BDC9DD
Inverted Active
Blue-300
#90A5C3
Focus Ring
Blue-400
#5A84BC
Blue-500
#2F71D4
Active / Pressed
Blue-600
#2A60B2
Blue-700
#255090
Hover
Blue-800
#1C3E70
Blue-900
#142D51
Default (Navy)
Neutral Scale
Neutral-100
#FBFBFB
Neutral-200
#EAEAEA
Neutral-300
#C5C5C5
Disabled BG / Border
Neutral-400
#9B9B9B
Disabled Text
Neutral-500
#7C7C7C
Neutral-600
#686868
Neutral-700
#4A4A4A
Neutral-800
#333333
Neutral-900
#181818
Brand & Feedback
Navy
#142D51
Maroon
#8E2231
Success
#24882D
Error
#C02321
Typography
Font: Proxima Nova · Weights: Regular 400, Medium 500, Semibold 600
Headers
Body Text
Spacing Scale
15-step scale derived from Scale/* primitive tokens.