CRM Design System — Style Guide
Version 1.2 | Last Updated: December 2024
A comprehensive design system reference for building consistent, accessible, and modern CRM interfaces.
Design Principles
Color System
CRM-Specific Colors
Data Visualization
Kanban Board Specs
Activity Timeline
Typography
Spacing & Layout
Border Radius
Elevation & Shadows
Components
Icons
Grid & Breakpoints
CSS Variables Reference
Clarity First — Every element should serve a purpose. Remove visual clutter.
Data-Driven — Prioritize readability of data in tables, lists, and cards.
Consistent Rhythm — Use the 8px grid system for all spacing decisions.
Accessible — WCAG 2.0 AA compliant color contrast and interactions.
Theme-Ready — Semantic tokens enable light/dark mode switching.
We use a three-layer token system :
Base Layer (Primitives) → Semantic Layer (Purpose) → Component Layer (Usage)
Token
Hex
RGB
Usage
--color-brand-primary
#EA580C
234, 88, 12
Primary actions, CTAs, brand accent
--color-brand-dark
#404346
64, 67, 70
Primary text, dark UI elements
--color-brand-white
#FFFFFF
255, 255, 255
Backgrounds, cards, surfaces
Token
Hex
Usage
--color-grey-50
#FAFAFA
Subtle backgrounds
--color-grey-100
#F5F5F5
Hover states, zebra stripes
--color-grey-200
#EEEEEE
Subtle dividers, table rows
--color-grey-300
#E0E0E0
Default borders (--border-default)
--color-grey-400
#BDBDBD
Placeholder text
--color-grey-500
#9E9E9E
Secondary icons
--color-grey-600
#757575
Secondary text
--color-grey-700
#616161
Body text
--color-grey-800
#424242
Headings
--color-grey-900
#212121
Primary text
Category
Token
Hex
Usage
Primary
--color-primary-default
#EA580C
Primary buttons, links
--color-primary-hover
#C2410C
Primary hover state
--color-primary-active
#9A3412
Primary active/pressed
--color-primary-light
#FFF7ED
Primary backgrounds
Negative/Error
--color-negative-default
#DC3545
Error states, destructive actions
--color-negative-hover
#C82333
Error hover
--color-negative-light
#FDEAEA
Error backgrounds
Warning
--color-warning-default
#FFC107
Warning states
--color-warning-dark
#E0A800
Warning text on light bg
--color-warning-light
#FFF8E1
Warning backgrounds
Success
--color-success-default
#28A745
Success states
--color-success-light
#E8F5E9
Success backgrounds
Info
--color-info-default
#17A2B8
Informational states
--color-info-light
#E3F2FD
Info backgrounds
Token
Light Mode
Dark Mode
Usage
--surface-default
#FFFFFF
#1E1E1E
Main background
--surface-raised
#FFFFFF
#252525
Cards, elevated elements
--surface-sunken
#F5F5F5
#141414
Inset areas, sidebars
--surface-overlay
#FFFFFF
#2D2D2D
Modals, dropdowns
Token
Light Mode
Dark Mode
Usage
--text-primary
#212121
#FFFFFF
Headings, primary content
--text-secondary
#616161
#B0B0B0
Descriptions, metadata
--text-tertiary
#9E9E9E
#757575
Placeholders, hints
--text-disabled
#BDBDBD
#525252
Disabled states
--text-inverse
#FFFFFF
#212121
Text on colored backgrounds
--text-link
#EA580C
#FB923C
Links
--text-error
#DC3545
#F87171
Error messages
Token
Light Mode
Dark Mode
Usage
--border-default
#E0E0E0
#3D3D3D
Default borders
--border-strong
#BDBDBD
#525252
Emphasized borders
--border-focus
#EA580C
#FB923C
Focus rings
--border-error
#DC3545
#F87171
Error state borders
Token
Hex
Usage
--stage-new
#EA580C
New/Incoming leads
--stage-contacted
#F97316
Initial contact made
--stage-qualified
#3B82F6
Lead qualified
--stage-proposal
#8B5CF6
Proposal sent
--stage-negotiation
#F59E0B
In negotiation
--stage-won
#22C55E
Deal closed won
--stage-lost
#EF4444
Deal closed lost
Pipeline Stage Backgrounds (Kanban columns)
Token
Hex
Usage
--stage-new-bg
#FFF7ED
New column
--stage-contacted-bg
#FFEDD5
Contacted column
--stage-qualified-bg
#EFF6FF
Qualified column
--stage-proposal-bg
#F5F3FF
Proposal column
--stage-negotiation-bg
#FFFBEB
Negotiation column
--stage-won-bg
#F0FDF4
Won column
--stage-lost-bg
#FEF2F2
Lost column
Token
Hex
Icon
Usage
--activity-call
#22C55E
Phone
Phone calls
--activity-email
#3B82F6
Mail
Emails
--activity-meeting
#8B5CF6
Calendar
Meetings
--activity-task
#F59E0B
Check
Tasks/To-dos
--activity-note
#6B7280
FileText
Notes
--activity-deadline
#EF4444
Clock
Deadlines
Token
Hex
Usage
--lead-hot
#EF4444
Hot lead (high intent)
--lead-warm
#F59E0B
Warm lead (engaged)
--lead-cold
#6B7280
Cold lead (low activity)
Lead Temperature Backgrounds
Token
Hex
Usage
--lead-hot-bg
#FEF2F2
Hot lead badge/tag
--lead-warm-bg
#FFFBEB
Warm lead badge
--lead-cold-bg
#F3F4F6
Cold lead badge
Token
Hex
Usage
--priority-urgent
#DC2626
Urgent priority
--priority-high
#F97316
High priority
--priority-medium
#FBBF24
Medium priority
--priority-low
#22C55E
Low priority
--priority-none
#9CA3AF
No priority set
Deal Health / Probability
Token
Hex
Usage
--probability-high
#22C55E
70-100% close probability
--probability-mid
#F59E0B
40-69% probability
--probability-low
#EF4444
0-39% probability
Token
Hex
Usage
--task-overdue
#EF4444
Past due date
--task-due-today
#F59E0B
Due today
--task-upcoming
#3B82F6
Due in future
--task-completed
#22C55E
Completed
--task-cancelled
#9CA3AF
Cancelled
Token
Hex
Usage
--task-overdue-bg
#FEF2F2
Overdue task badge
--task-due-today-bg
#FFFBEB
Due today badge
--task-upcoming-bg
#EFF6FF
Upcoming task badge
--task-completed-bg
#F0FDF4
Completed task badge
--task-cancelled-bg
#F3F4F6
Cancelled task badge
Chart Color Palette (Sequential)
For single-metric charts and gradients:
Token
Hex
Usage
--chart-1
#EA580C
Primary series
--chart-2
#F97316
Secondary
--chart-3
#FB923C
Tertiary
--chart-4
#FDBA74
Fourth
--chart-5
#FED7AA
Fifth
Chart Color Palette (Categorical)
For multi-metric/comparison charts:
Token
Hex
Usage
--cat-1
#EA580C
Category 1 (Orange)
--cat-2
#3B82F6
Category 2 (Blue)
--cat-3
#22C55E
Category 3 (Green)
--cat-4
#8B5CF6
Category 4 (Purple)
--cat-5
#EC4899
Category 5 (Pink)
--cat-6
#14B8A6
Category 6 (Teal)
Token
Hex
Usage
--progress-default
#EA580C
Standard progress
--progress-success
#22C55E
Goal achieved
--progress-warning
#F59E0B
Behind target
--progress-danger
#EF4444
Critical/at risk
--progress-bg
#E5E7EB
Progress track
Property
Value
Column Width
280px - 320px
Column Gap
12px
Card Gap
8px
Column Header Height
48px
Card Min Height
80px
Card Padding
12px
Card Border Radius
--radius-lg (8px)
Column Border Radius
--radius-lg (8px)
Drop Zone Highlight
2px dashed --border-focus
Drag Shadow
--shadow-lg
Property
Value
Timeline Line Width
2px
Timeline Line Color
--border-default
Node Size
32px
Node Border
2px solid (activity color)
Node Background
--surface-default
Entry Gap
16px
Content Offset
48px from timeline
Geist font from google fonts
--font-family-sans : "Geist" , -apple-system, BlinkMacSystemFont, "Segoe UI" , Roboto,
sans-serif;
--font-family-mono : "Geist Mono" , "SF Mono" , "Fira Code" , Consolas, monospace;
Token
Size
Weight
Line Height
Letter Spacing
Usage
--text-display
40px
700
1.2
-0.02em
Hero sections
--text-h1
32px
600
1.25
-0.01em
Page titles
--text-h2
24px
600
1.3
-0.01em
Section headers
--text-h3
20px
600
1.35
0
Subsection headers
--text-h4
16px
600
1.4
0
Card titles
--text-h5
14px
600
1.4
0
Small headers
--text-body-lg
16px
400
1.5
0
Primary body text
--text-body
14px
400
1.5
0
Default body text
--text-body-sm
13px
400
1.45
0
Secondary body text
--text-caption
12px
400
1.4
0.01em
Captions, metadata
--text-label
12px
500
1.3
0.02em
Form labels, badges
--text-overline
11px
600
1.4
0.08em
Overlines (uppercase)
Token
Value
Usage
--font-weight-regular
400
Body text, descriptions
--font-weight-medium
500
Labels, emphasis
--font-weight-semibold
600
Headings, buttons
--font-weight-bold
700
Strong emphasis
Body text : 14px for dense UI, 16px for reading-focused areas
Minimum size : 12px (never go below for accessibility)
Line length : 60-80 characters maximum for readability
Paragraph spacing : Use --space-300 (24px) between paragraphs
All spacing is based on an 8px grid system .
Token
Value
Usage
--space-0
0px
No spacing
--space-25
2px
Micro adjustments, borders
--space-50
4px
Tight spacing, icon gaps
--space-100
8px
Base unit, compact layouts
--space-150
12px
Default internal padding
--space-200
16px
Component padding, gaps
--space-250
20px
Medium spacing
--space-300
24px
Section padding
--space-400
32px
Section margins
--space-500
40px
Large component spacing
--space-600
48px
Page sections
--space-700
56px
Large section gaps
--space-800
64px
Major section breaks
--space-900
72px
Extra-large spacing
--space-1000
80px
Page-level spacing
Context
Recommended Tokens
Icon to text gap
--space-50 to --space-100 (4-8px)
Button padding (horizontal)
--space-200 to --space-300 (16-24px)
Button padding (vertical)
--space-100 to --space-150 (8-12px)
Card internal padding
--space-200 to --space-300 (16-24px)
Form field gap
--space-200 (16px)
Section gap
--space-400 to --space-600 (32-48px)
Page margins
--space-300 to --space-400 (24-32px)
Token
Value
Usage
--radius-none
0px
Sharp corners
--radius-xs
2px
Subtle rounding
--radius-sm
4px
Inputs, small buttons
--radius-md
6px
Buttons, dropdowns
--radius-lg
8px
Cards, containers
--radius-xl
12px
Modals, large cards
--radius-2xl
16px
Large containers
--radius-full
9999px
Pills, avatars, tags
Component
Radius Token
Buttons
--radius-md (6px)
Input fields
--radius-sm (4px)
Cards
--radius-lg (8px)
Modals
--radius-xl (12px)
Avatars
--radius-full
Tags/Badges
--radius-full
Tooltips
--radius-sm (4px)
Dropdowns
--radius-md (6px)
Token
Value
Usage
--shadow-none
none
Flat elements
--shadow-xs
0 1px 2px rgba(0,0,0,0.04)
Subtle lift
--shadow-sm
0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04)
Cards (resting)
--shadow-md
0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05)
Cards (hover), dropdowns
--shadow-lg
0 10px 15px rgba(0,0,0,0.08), 0 4px 6px rgba(0,0,0,0.05)
Modals, popovers
--shadow-xl
0 20px 25px rgba(0,0,0,0.10), 0 10px 10px rgba(0,0,0,0.04)
Full overlays
Level
Shadow Token
Z-Index
Usage
Base
--shadow-none
0
Page background
Raised
--shadow-sm
10
Cards, sections
Dropdown
--shadow-md
100
Dropdowns, tooltips
Sticky
--shadow-md
200
Sticky headers
Modal
--shadow-lg
300
Modals, dialogs
Overlay
--shadow-xl
400
Full overlays
Toast
--shadow-lg
500
Notifications
--focus-ring : 0 0 0 2px var (--surface-default ), 0 0 0 4px var (--color-primary-default );
Variant
Background
Text
Border
Usage
Primary
--color-primary-default
--text-inverse
none
Main actions
Secondary
transparent
--color-primary-default
--color-primary-default
Alternative actions
Tertiary
transparent
--text-secondary
none
Low emphasis
Destructive
--color-negative-default
--text-inverse
none
Dangerous actions
Ghost
transparent
--text-primary
none
Minimal UI
Size
Height
Padding (H)
Font Size
Icon Size
XS
24px
8px
11px
14px
SM
28px
12px
12px
16px
MD
36px
16px
14px
18px
LG
44px
20px
16px
20px
XL
52px
24px
18px
24px
State
Opacity/Change
Default
100%
Hover
Darken 8% or overlay
Active
Darken 12%
Disabled
50% opacity, no pointer
Loading
Show spinner, disable
.btn {
font-weight : 600 ;
border-radius : var (--radius-md );
transition : all 150ms ease;
cursor : pointer;
display : inline-flex;
align-items : center;
justify-content : center;
gap : var (--space-100 );
}
┌─────────────────────────────────────┐
│ Label * (Helper) │
├─────────────────────────────────────┤
│ [Icon] Placeholder text [Icon] │
├─────────────────────────────────────┤
│ Helper text or error message │
└─────────────────────────────────────┘
Property
Value
Height
40px (default), 36px (compact), 48px (large)
Padding
12px horizontal, centered vertical
Border
1px solid --border-default
Border Radius
--radius-sm (4px)
Font Size
14px
Label Font Size
12px
Helper Font Size
12px
State
Border Color
Background
Default
--border-default
--surface-default
Hover
--border-strong
--surface-default
Focus
--border-focus (2px)
--surface-default
Error
--border-error
--color-negative-light
Disabled
--border-default
--surface-sunken
Read-only
--border-default
--surface-sunken
Property
Value
Background
--surface-raised
Border
1px solid --border-default (optional)
Border Radius
--radius-lg (8px)
Padding
--space-200 to --space-300 (16-24px)
Shadow (resting)
--shadow-sm
Shadow (hover)
--shadow-md
Type
Description
Shadow
Flat
Border only, no shadow
--shadow-none
Elevated
Subtle lift
--shadow-sm
Interactive
Hover lift
--shadow-sm → --shadow-md
Size
Width
Max Height
Usage
SM
400px
80vh
Confirmations, alerts
MD
560px
80vh
Forms, standard content
LG
720px
85vh
Complex forms
XL
900px
90vh
Data-heavy content
Full
100% - 48px
100% - 48px
Wizards, editors
Property
Value
Border Radius
--radius-xl (12px)
Padding (Header)
--space-200 to --space-300
Padding (Body)
--space-300
Padding (Footer)
--space-200 to --space-300
Shadow
--shadow-lg
Overlay Background
rgba(0, 0, 0, 0.5)
┌─────────────────────────────────────┐
│ Header [×] │
├─────────────────────────────────────┤
│ │
│ Body content │
│ │
├─────────────────────────────────────┤
│ [Secondary] [Primary] │
└─────────────────────────────────────┘
Property
Value
Trigger Height
40px (matches input)
Trigger Padding
12px horizontal
Trigger Border Radius
--radius-sm (4px)
Dropdown Border Radius
--radius-md (6px)
Dropdown Shadow
--shadow-md
Item Height
36px
Item Padding
12px horizontal
Max Dropdown Height
320px (scrollable)
Property
Value
Header Height
44px
Row Height
52px (default), 40px (compact), 64px (comfortable)
Cell Padding
16px horizontal, centered vertical
Border
1px solid --border-default
Header Background
--surface-sunken
Row Background
--surface-default
Zebra Stripe
Alternating --surface-default / --surface-sunken
Hover Row
--color-grey-100
Selected Row
--color-primary-light
Content Type
Min Width
Recommended
Checkbox
48px
48px
Avatar
56px
56px
Short text
100px
150px
Medium text
150px
200px
Long text
200px
300px
Actions
80px
120px
Size
Height
Padding (H)
Font Size
Border Radius
SM
20px
6px
11px
--radius-full
MD
24px
8px
12px
--radius-full
LG
28px
10px
13px
--radius-full
Variant
Background
Text
Default
--color-grey-200
--text-primary
Primary
--color-primary-light
--color-primary-default
Success
--color-success-light
--color-success-default
Warning
--color-warning-light
--color-warning-dark
Error
--color-negative-light
--color-negative-default
Info
--color-info-light
--color-info-default
Size
Dimensions
Font Size
Usage
XS
24px
10px
Inline mentions
SM
32px
12px
Lists, compact UI
MD
40px
14px
Default, cards
LG
56px
20px
Profile headers
XL
80px
28px
Profile pages
2XL
120px
40px
Account settings
Property
Value
Border Radius
--radius-full (circle)
Background (fallback)
--color-grey-300
Text Color (initials)
--text-primary
Border (optional)
2px solid --surface-default
Property
Value
Min Width
300px
Max Width
500px
Padding
12px 16px
Border Radius
--radius-md (6px)
Shadow
--shadow-lg
Position
Bottom-left, 24px from edges
Duration
4000ms (default), 8000ms (with action)
Variant
Icon
Left Border
Default
Info
None
Success
Check
--color-success-default
Warning
Warning
--color-warning-default
Error
Error
--color-negative-default
Property
Value
Max Width
240px
Padding
8px 12px
Border Radius
--radius-sm (4px)
Background
--color-grey-900
Text Color
--text-inverse
Font Size
12px
Shadow
--shadow-md
Arrow Size
6px
Style : Line/outline icons (1.5px stroke weight)
Corners : Rounded corners (2px radius on strokes)
Grid : Designed on 24px grid with 2px padding
Consistency : Uniform stroke weight across all icons
Token
Size
Usage
--icon-xs
12px
Inline with small text
--icon-sm
16px
Buttons, form fields
--icon-md
20px
Navigation, default
--icon-lg
24px
Headers, emphasis
--icon-xl
32px
Empty states
--icon-2xl
48px
Illustrations
Context
Color Token
Default
--text-secondary
Interactive
--text-primary
Primary action
--color-primary-default
Success
--color-success-default
Warning
--color-warning-default
Error
--color-negative-default
Disabled
--text-disabled
Token
Width
Columns
Margin
Gutter
--breakpoint-xs
0-479px
4
16px
16px
--breakpoint-sm
480-767px
8
16px
16px
--breakpoint-md
768-1023px
12
24px
24px
--breakpoint-lg
1024-1279px
12
32px
24px
--breakpoint-xl
1280-1439px
12
40px
24px
--breakpoint-2xl
1440px+
12
auto
24px
Token
Max Width
Usage
--container-sm
640px
Narrow content
--container-md
768px
Forms, articles
--container-lg
1024px
Standard content
--container-xl
1280px
Wide content
--container-full
100%
Full width
Sidebar Layout
┌────────────┬────────────────────────────┐
│ │ │
│ Sidebar │ Main Content │
│ (240px) │ (flex: 1) │
│ │ │
└────────────┴────────────────────────────┘
Element
Width
Sidebar (collapsed)
64px
Sidebar (expanded)
240px
Secondary panel
320px - 400px
Main content
Remaining space
: root {
/* Colors - Brand */
--color-brand-primary : # ea580c ;
--color-brand-dark : # 404346 ;
--color-brand-white : # ffffff ;
/* Colors - Primary */
--color-primary-default : # ea580c ;
--color-primary-hover : # c2410c ;
--color-primary-active : # 9a3412 ;
--color-primary-light : # fff7ed ;
/* Colors - Negative */
--color-negative-default : # dc3545 ;
--color-negative-hover : # c82333 ;
--color-negative-light : # fdeaea ;
/* Colors - Warning */
--color-warning-default : # ffc107 ;
--color-warning-dark : # e0a800 ;
--color-warning-light : # fff8e1 ;
/* Colors - Success */
--color-success-default : # 28a745 ;
--color-success-light : # e8f5e9 ;
/* Colors - Info */
--color-info-default : # 17a2b8 ;
--color-info-light : # e3f2fd ;
/* Colors - Grey Scale */
--color-grey-50 : # fafafa ;
--color-grey-100 : # f5f5f5 ;
--color-grey-200 : # eeeeee ;
--color-grey-300 : # e0e0e0 ;
--color-grey-400 : # bdbdbd ;
--color-grey-500 : # 9e9e9e ;
--color-grey-600 : # 757575 ;
--color-grey-700 : # 616161 ;
--color-grey-800 : # 424242 ;
--color-grey-900 : # 212121 ;
/* Surface */
--surface-default : # ffffff ;
--surface-raised : # ffffff ;
--surface-sunken : # f5f5f5 ;
--surface-overlay : # ffffff ;
/* Text */
--text-primary : # 212121 ;
--text-secondary : # 616161 ;
--text-tertiary : # 9e9e9e ;
--text-disabled : # bdbdbd ;
--text-inverse : # ffffff ;
--text-link : # ea580c ;
--text-error : # dc3545 ;
/* Border */
--border-default : # e0e0e0 ;
--border-strong : # bdbdbd ;
--border-focus : # ea580c ;
--border-error : # dc3545 ;
/* Pipeline Stages */
--stage-new : # ea580c ;
--stage-contacted : # f97316 ;
--stage-qualified : # 3b82f6 ;
--stage-proposal : # 8b5cf6 ;
--stage-negotiation : # f59e0b ;
--stage-won : # 22c55e ;
--stage-lost : # ef4444 ;
/* Pipeline Stage Backgrounds */
--stage-new-bg : # fff7ed ;
--stage-contacted-bg : # ffedd5 ;
--stage-qualified-bg : # eff6ff ;
--stage-proposal-bg : # f5f3ff ;
--stage-negotiation-bg : # fffbeb ;
--stage-won-bg : # f0fdf4 ;
--stage-lost-bg : # fef2f2 ;
/* Activity Types */
--activity-call : # 22c55e ;
--activity-email : # 3b82f6 ;
--activity-meeting : # 8b5cf6 ;
--activity-task : # f59e0b ;
--activity-note : # 6b7280 ;
--activity-deadline : # ef4444 ;
/* Lead Temperature */
--lead-hot : # ef4444 ;
--lead-warm : # f59e0b ;
--lead-cold : # 6b7280 ;
/* Lead Temperature Backgrounds */
--lead-hot-bg : # fef2f2 ;
--lead-warm-bg : # fffbeb ;
--lead-cold-bg : # f3f4f6 ;
/* Priority */
--priority-urgent : # dc2626 ;
--priority-high : # f97316 ;
--priority-medium : # fbbf24 ;
--priority-low : # 22c55e ;
--priority-none : # 9ca3af ;
/* Deal Probability */
--probability-high : # 22c55e ;
--probability-mid : # f59e0b ;
--probability-low : # ef4444 ;
/* Task Status */
--task-overdue : # ef4444 ;
--task-due-today : # f59e0b ;
--task-upcoming : # 3b82f6 ;
--task-completed : # 22c55e ;
--task-cancelled : # 9ca3af ;
/* Task Status Backgrounds */
--task-overdue-bg : # fef2f2 ;
--task-due-today-bg : # fffbeb ;
--task-upcoming-bg : # eff6ff ;
--task-completed-bg : # f0fdf4 ;
--task-cancelled-bg : # f3f4f6 ;
/* Charts - Sequential */
--chart-1 : # ea580c ;
--chart-2 : # f97316 ;
--chart-3 : # fb923c ;
--chart-4 : # fdba74 ;
--chart-5 : # fed7aa ;
/* Charts - Categorical */
--cat-1 : # ea580c ;
--cat-2 : # 3b82f6 ;
--cat-3 : # 22c55e ;
--cat-4 : # 8b5cf6 ;
--cat-5 : # ec4899 ;
--cat-6 : # 14b8a6 ;
/* Progress */
--progress-default : # ea580c ;
--progress-success : # 22c55e ;
--progress-warning : # f59e0b ;
--progress-danger : # ef4444 ;
--progress-bg : # e5e7eb ;
/* Typography */
--font-family-sans : "Geist" , -apple-system, BlinkMacSystemFont, "Segoe UI" , Roboto,
sans-serif;
--font-family-mono : "Geist Mono" , "SF Mono" , "Fira Code" , Consolas, monospace;
--font-weight-regular : 400 ;
--font-weight-medium : 500 ;
--font-weight-semibold : 600 ;
--font-weight-bold : 700 ;
/* Spacing */
--space-0 : 0px ;
--space-25 : 2px ;
--space-50 : 4px ;
--space-100 : 8px ;
--space-150 : 12px ;
--space-200 : 16px ;
--space-250 : 20px ;
--space-300 : 24px ;
--space-400 : 32px ;
--space-500 : 40px ;
--space-600 : 48px ;
--space-700 : 56px ;
--space-800 : 64px ;
--space-900 : 72px ;
--space-1000 : 80px ;
/* Border Radius */
--radius-none : 0px ;
--radius-xs : 2px ;
--radius-sm : 4px ;
--radius-md : 6px ;
--radius-lg : 8px ;
--radius-xl : 12px ;
--radius-2xl : 16px ;
--radius-full : 9999px ;
/* Shadows */
--shadow-none : none;
--shadow-xs : 0 1px 2px rgba (0 , 0 , 0 , 0.04 );
--shadow-sm : 0 1px 3px rgba (0 , 0 , 0 , 0.06 ), 0 1px 2px rgba (0 , 0 , 0 , 0.04 );
--shadow-md : 0 4px 6px rgba (0 , 0 , 0 , 0.07 ), 0 2px 4px rgba (0 , 0 , 0 , 0.05 );
--shadow-lg : 0 10px 15px rgba (0 , 0 , 0 , 0.08 ), 0 4px 6px rgba (0 , 0 , 0 , 0.05 );
--shadow-xl : 0 20px 25px rgba (0 , 0 , 0 , 0.1 ), 0 10px 10px rgba (0 , 0 , 0 , 0.04 );
/* Focus Ring */
--focus-ring : 0 0 0 2px var (--surface-default ), 0 0 0 4px var (--color-primary-default );
/* Icon Sizes */
--icon-xs : 12px ;
--icon-sm : 16px ;
--icon-md : 20px ;
--icon-lg : 24px ;
--icon-xl : 32px ;
--icon-2xl : 48px ;
/* Z-Index Scale */
--z-base : 0 ;
--z-raised : 10 ;
--z-dropdown : 100 ;
--z-sticky : 200 ;
--z-modal : 300 ;
--z-overlay : 400 ;
--z-toast : 500 ;
/* Transitions */
--transition-fast : 100ms ease;
--transition-normal : 150ms ease;
--transition-slow : 300ms ease;
/* Breakpoints (for reference in JS) */
--breakpoint-xs : 0px ;
--breakpoint-sm : 480px ;
--breakpoint-md : 768px ;
--breakpoint-lg : 1024px ;
--breakpoint-xl : 1280px ;
--breakpoint-2xl : 1440px ;
/* Containers */
--container-sm : 640px ;
--container-md : 768px ;
--container-lg : 1024px ;
--container-xl : 1280px ;
}
/* Dark Mode Override */
[data-theme = "dark" ] {
--surface-default : # 1e1e1e ;
--surface-raised : # 252525 ;
--surface-sunken : # 141414 ;
--surface-overlay : # 2d2d2d ;
--text-primary : # ffffff ;
--text-secondary : # b0b0b0 ;
--text-tertiary : # 757575 ;
--text-disabled : # 525252 ;
--text-inverse : # 212121 ;
--text-link : # fb923c ;
--text-error : # f87171 ;
--border-default : # 3d3d3d ;
--border-strong : # 525252 ;
--border-focus : # fb923c ;
--border-error : # f87171 ;
--color-primary-default : # fb923c ;
--color-primary-hover : # fdba74 ;
--color-primary-active : # f97316 ;
--color-primary-light : # 431407 ;
}
Version
Date
Changes
1.2
Dec 2024
Fixed font import, added spacing tokens, fixed dark mode hover states
1.1
Dec 2024
Orange primary color, CRM-specific tokens (pipeline, activities, etc.)
1.0
Dec 2024
Initial release
Questions? Contact the Design System team.