Skip to content

Design Tokens Reference

This reference documents all design tokens defined in src/styles/_design-tokens.scss. These tokens provide a consistent design language across the application using CSS custom properties.

The primary color palette is used for brand colors, primary actions, and interactive elements.

—color-primary-50
#f0f9ff
Lightest shade
—color-primary-100
#e0f2fe
Very light backgrounds
—color-primary-200
#bae6fd
Light backgrounds
—color-primary-300
#7dd3fc
Subtle elements
—color-primary-400
#38bdf8
Hover states
—color-primary-500
#0ea5e9
Base brand color
—color-primary-600
#0284c7
Active states
—color-primary-700
#0369a1
Dark accents
—color-primary-800
#075985
Darker accents
—color-primary-900
#0c4a6e
Darkest shade

The navy palette provides deeper, more professional tones for headers, navigation, and important content.

—color-navy-50
#eff6ff
Lightest navy
—color-navy-100
#dce6ff
Very light navy
—color-navy-200
#b9ccff
Light navy
—color-navy-300
#7aa3ff
Medium light
—color-navy-400
#4d7acc
Medium navy
—color-navy-500
#2d5aa8
Base navy
—color-navy-600
#003366
Dark navy
—color-navy-700
#002952
Darker navy
—color-navy-800
#001f3d
Very dark navy
—color-navy-900
#00142b
Darkest navy

The neutral palette provides grays for text, borders, backgrounds, and subtle UI elements.

—color-neutral-50
#fafafa
Lightest gray
—color-neutral-100
#f4f4f5
Subtle backgrounds
—color-neutral-200
#e4e4e7
Light borders
—color-neutral-300
#d4d4d8
Default borders
—color-neutral-400
#a1a1aa
Disabled text
—color-neutral-500
#71717a
Muted text
—color-neutral-600
#52525b
Secondary text
—color-neutral-700
#3f3f46
Body text
—color-neutral-800
#27272a
Headings
—color-neutral-900
#18181b
Darkest text

Semantic colors convey meaning for success, warning, error, and informational states.

—color-success
#22c55e
Success messages
—color-success-light
#dcfce7
Success backgrounds
—color-success-dark
#166534
Dark success
—color-warning
#f59e0b
Warning messages
—color-warning-light
#fef3c7
Warning backgrounds
—color-warning-dark
#92400e
Dark warning
—color-error
#ef4444
Error messages
—color-error-light
#fee2e2
Error backgrounds
—color-error-dark
#991b1b
Dark error
—color-info
#3b82f6
Info messages
—color-info-light
#dbeafe
Info backgrounds
—color-info-dark
#1d4ed8
Dark info
--font-family-sans: ui-sans-serif, system-ui, -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
"Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol", "Noto Color Emoji";

Usage: Default for body text and UI elements

Based on a modular scale for consistent typography hierarchy.

TokenValuePixelsUsage
--font-size-xs0.75rem12pxFine print, captions
--font-size-sm0.875rem14pxSmall text, labels
--font-size-base1rem16pxBody text (default)
--font-size-lg1.125rem18pxLead paragraphs
--font-size-xl1.25rem20pxSubheadings
--font-size-2xl1.5rem24pxH3 headings
--font-size-3xl1.875rem30pxH2 headings
--font-size-4xl2.25rem36pxH1 headings
--font-size-5xl3rem48pxHero headings
--font-size-6xl3.75rem60pxDisplay headings
TokenValueUsage
--font-weight-thin100Very light text
--font-weight-light300Light text
--font-weight-normal400Body text (default)
--font-weight-medium500Emphasized text
--font-weight-semibold600Subheadings
--font-weight-bold700Headings, buttons
--font-weight-extrabold800Strong emphasis
--font-weight-black900Maximum emphasis
TokenValueUsage
--line-height-none1Single line elements
--line-height-tight1.25Compact text
--line-height-snug1.375Headings
--line-height-normal1.5Body text (default)
--line-height-relaxed1.625Comfortable reading
--line-height-loose2Spaced paragraphs

All spacing follows an 8-point grid for consistent rhythm and alignment.

—space-1 (0.25rem)
4px
—space-2 (0.5rem)
8px
—space-3 (0.75rem)
12px
—space-4 (1rem)
16px
—space-6 (1.5rem)
24px
—space-8 (2rem)
32px
—space-12 (3rem)
48px
—space-16 (4rem)
64px
TokenValuePixelsCommon Usage
--space-000pxReset spacing
--space-px1px1pxHairline borders
--space-0-50.125rem2pxMicro spacing
--space-10.25rem4pxTight spacing
--space-20.5rem8pxComponent padding
--space-30.75rem12pxSmall gaps
--space-41rem16pxDefault spacing
--space-61.5rem24pxSection padding
--space-82rem32pxCard padding
--space-123rem48pxSection margins
--space-164rem64pxLarge sections
--space-246rem96pxPage sections
TokenValuePixelsUsage
--radius-none00pxSharp corners
--radius-sm0.125rem2pxSubtle rounding
--radius-base0.25rem4pxDefault rounding
--radius-md0.375rem6pxMedium rounding
--radius-lg0.5rem8pxCards, buttons
--radius-xl0.75rem12pxLarge cards
--radius-2xl1rem16pxHero elements
--radius-3xl1.5rem24pxDecorative
--radius-full9999pxFullPills, circles
TokenValueUsage
--border-width-00No border
--border-width-11pxDefault borders
--border-width-22pxEmphasized borders
--border-width-44pxStrong emphasis
--border-width-88pxDecorative

Shadows create depth and hierarchy in the interface.

—shadow-sm
Subtle elevation
—shadow-base
Default cards
—shadow-md
Elevated cards
—shadow-lg
Dropdowns
—shadow-xl
Modals
—shadow-2xl
Hero elements

Consistent z-index values for proper layering.

TokenValueUsage
--z-index-hide-1Hidden behind
--z-index-autoautoNormal flow
--z-index-base0Base level
--z-index-docked10Docked elements
--z-index-dropdown1000Dropdowns
--z-index-sticky1100Sticky headers
--z-index-banner1200Banners
--z-index-overlay1300Overlays
--z-index-modal1400Modals
--z-index-popover1500Popovers
--z-index-skipLink1600Skip links
--z-index-toast1700Toast notifications
--z-index-tooltip1800Tooltips (highest)
TokenValueUsage
--transition-duration-7575msInstant feedback
--transition-duration-100100msQuick transitions
--transition-duration-150150msSmooth interactions
--transition-duration-200200msDefault duration
--transition-duration-300300msModerate animations
--transition-duration-500500msSlow animations
--transition-duration-700700msDeliberate motion
--transition-duration-10001000msAttention-grabbing
TokenValueUsage
--transition-timing-linearlinearConstant speed
--transition-timing-incubic-bezier(0.4, 0, 1, 1)Ease in
--transition-timing-outcubic-bezier(0, 0, 0.2, 1)Ease out
--transition-timing-in-outcubic-bezier(0.4, 0, 0.2, 1)Ease in-out
TokenValuePixelsUsage
--max-width-nonenone-Full width
--max-width-xs20rem320pxNarrow forms
--max-width-sm24rem384pxSmall cards
--max-width-md28rem448pxMedium content
--max-width-lg32rem512pxLarge cards
--max-width-xl36rem576pxForm layouts
--max-width-2xl42rem672pxArticle width
--max-width-3xl48rem768pxBlog posts
--max-width-4xl56rem896pxWide content
--max-width-5xl64rem1024pxPage content
--max-width-6xl72rem1152pxLarge layouts
--max-width-7xl80rem1280pxMain container
TokenValueUsage
--max-width-screen-sm640pxSmall screens
--max-width-screen-md768pxMedium screens
--max-width-screen-lg1024pxLarge screens
--max-width-screen-xl1280pxExtra large
--max-width-screen-2xl1536px2X large

All color tokens automatically adjust for dark mode using a prefers-color-scheme: dark media query. The color scales are inverted to maintain proper contrast.

Pre-configured token combinations for common components.

TokenValueDescription
--card-backgroundvar(--color-neutral-50)Card background
--card-bordervar(--color-neutral-200)Card border
--card-radiusvar(--radius-lg)Card rounding
--card-shadowvar(--shadow-base)Card elevation
--card-gapvar(--space-4)Inner spacing
--card-paddingvar(--space-6)Card padding
TokenValueDescription
--button-radiusvar(--radius-base)Button rounding
--button-padding-xvar(--space-4)Horizontal padding
--button-padding-yvar(--space-2)Vertical padding
--button-font-weightvar(--font-weight-medium)Button text weight
TokenValueDescription
--input-radiusvar(--radius-base)Input rounding
--input-bordervar(--color-neutral-300)Input border
--input-focus-bordervar(--color-primary-500)Focus state
--input-padding-xvar(--space-3)Horizontal padding
--input-padding-yvar(--space-2)Vertical padding
.button {
background-color: var(--color-primary-500);
color: white;
padding: var(--button-padding-y) var(--button-padding-x);
border-radius: var(--button-radius);
font-weight: var(--button-font-weight);
transition-duration: var(--transition-duration-200);
transition-timing-function: var(--transition-timing-in-out);
&:hover {
background-color: var(--color-primary-600);
box-shadow: var(--shadow-md);
}
}

Source File: src/styles/_design-tokens.scss