Pulse  · V 0.1
Foundations Components

Foundations

Pulse · Foundations

The building blocks

Visual language, tokens and primitives that inform every component in the Pulse Design System. Start here to understand the decisions underneath the surface.

Colours
12 palettes · 10 steps each
Icons
Lucide · 24×24 grid
0px 4px 8px 14px
Radius
0 · 2 · 4 · 6 · 8 · 10 · 12 · 16 · 20 · 24 · 32 · 96
4px 8px 16px 32px 64px scale
Spacing
2 · 4 · 6 · 8 · 12 · 16 · 20 · 24 · 32 · 40 · 48 · 64 · 80 · 96
Aa
Typography
Manrope · H1–H6 · B1–B2

Colours · Base

Foundational palette

The raw colour primitives every semantic token points to. These are never used in components directly — they exist solely as the source of truth that semantic aliases reference, keeping themes swappable without touching component code.

Grey

base-50
#F4F7FA
base-100
#D8E3EE
base-200
#B2C1D7
base-300
#8DA4BE
base-400
#6E8AAB
base-500
#576A84
base-600
#4B5768
base-700
#384352
base-800
#242E3C
base-900
#151B23

Brand

base-50
#E8F0FC
base-100
#D1E3FA
base-200
#A4C7F4
base-300
#77ABEE
base-400
#2577E5
base-500
#1960BD
base-600
#1851A0
base-700
#124287
base-800
#0B2D66
base-900
#041943

Green

base-50
#ECFDF1
base-100
#C8F9E0
base-200
#93F0C5
base-300
#61E5B1
base-400
#36D39A
base-500
#10BC83
base-600
#059E6F
base-700
#047857
base-800
#065F46
base-900
#064E3B

Orange

base-50
#FFF7ED
base-100
#FFE9CC
base-200
#FED09A
base-300
#FDAF5E
base-400
#FA8423
base-500
#E56106
base-600
#B84509
base-700
#903009
base-800
#64220C
base-900
#471A0A

Red

base-50
#FEECEC
base-100
#FED8D8
base-200
#FECACA
base-300
#FCA5A5
base-400
#F87171
base-500
#EF4444
base-600
#DC2626
base-700
#B91C1C
base-800
#991B1B
base-900
#7F1D1D

Blue

base-50
#EBF8FF
base-100
#B9E7FE
base-200
#9ADDFE
base-300
#67CBFE
base-400
#2BB7FD
base-500
#028CE9
base-600
#0274C0
base-700
#025B97
base-800
#01436F
base-900
#01253D

Yellow

base-50
#FFFBEB
base-100
#FEF2C3
base-200
#FDE791
base-300
#FCD75F
base-400
#FBBC19
base-500
#D88B09
base-600
#B36205
base-700
#883F07
base-800
#5D2909
base-900
#3F1C08

Teal

base-50
#F0FDFA
base-100
#B8F9EC
base-200
#93F5E2
base-300
#61EAD5
base-400
#34D5C1
base-500
#15BDAA
base-600
#0E9B8E
base-700
#0E6D65
base-800
#105652
base-900
#0E3936

Purple

base-50
#FAF5FF
base-100
#DFD8FD
base-200
#BDAFFD
base-300
#987EFC
base-400
#794FF7
base-500
#5A17F2
base-600
#5813CE
base-700
#4E1C9C
base-800
#381470
base-900
#270F4D

Magenta

base-50
#FDF4FF
base-100
#F6D6FF
base-200
#EEAFFD
base-300
#E87FFA
base-400
#DF46F7
base-500
#D11EEC
base-600
#AD22BE
base-700
#93199E
base-800
#72157A
base-900
#501353

Colours · Semantic

Meaning-bearing tokens

Semantic tokens bind base palette shades to roles in the UI. Component code never references a base colour directly — it always asks for a semantic role (e.g. --semantic-color/typography/primary) so themes can swap underneath.

Typography 11 tokens

Text colours for headings, body, labels, states and on-surface values.

--semantic-color/typography/primary→grey-800
#384352
--semantic-color/typography/secondary→grey-700
#576A84
--semantic-color/typography/tag→grey-600
#4B5768
--semantic-color/typography/disable→grey-500
#6E8AAB
--semantic-color/typography/placeholder→grey-400
#8DA4BE
--semantic-color/typography/on-surface→white
#FFFFFF
--semantic-color/typography/brand→brand-500
#1960BD
--semantic-color/typography/info→blue-800
#025B97
--semantic-color/typography/success→green-500
#059E6F
--semantic-color/typography/warning→orange-500
#E56106
--semantic-color/typography/error→red-500
#EF4444
Background 24 tokens

Fill colours for surfaces, cards, state containers and semantic feedback regions.

Neutral
--semantic-color/background/neutral/white→white
#FFFFFF
--semantic-color/background/neutral/subtle→grey-50
#F4F7FA
--semantic-color/background/neutral/disable→grey-200
#D8E3EE
--semantic-color/background/neutral/black→black
#000000
Brand
--semantic-color/background/brand/brand-subtle→brand-50
#E8F0FC
--semantic-color/background/brand/brand-medium→brand-100
#D1E3FA
--semantic-color/background/brand/brand-primary→brand-400
#2577E5
--semantic-color/background/brand/brand-semibold→brand-500
#1960BD
--semantic-color/background/brand/brand-bold→brand-600
#1851A0
Success
--semantic-color/background/success/success-subtle→green-50
#ECFDF1
--semantic-color/background/success/success-mute→green-100
#C8F9E0
--semantic-color/background/success/success-primary→green-500
#059E6F
--semantic-color/background/success/success-hover→green-600
#047857
Warning
--semantic-color/background/warning/warning-subtle→orange-50
#FFF7ED
--semantic-color/background/warning/warning-mute→orange-100
#FFE9CC
--semantic-color/background/warning/warning-primary→orange-500
#E56106
--semantic-color/background/warning/warning-hover→orange-600
#B84509
--semantic-color/background/warning/warning-clicked→orange-700
#903009
Error
--semantic-color/background/error/error-subtle→red-50
#FEECEC
--semantic-color/background/error/error-mute→red-100
#FED8D8
--semantic-color/background/error/error-primary→red-500
#EF4444
--semantic-color/background/error/error-hover→red-600
#DC2626
--semantic-color/background/error/error-clicked→red-700
#B91C1C
Border 8 tokens

Stroke colours for inputs, dividers, focus rings and decorative rules.

--semantic-color/border/default→grey-200
#D8E3EE
--semantic-color/border/disable→grey-300
#B2C1D7
--semantic-color/border/brand-primary→brand-400
#2577E5
--semantic-color/border/brand-semibold→brand-500
#1960BD
--semantic-color/border/brand-bold→brand-600
#1851A0
--semantic-color/border/success-primary→green-500
#059E6F
--semantic-color/border/error-primary→red-500
#EF4444
--semantic-color/border/warning-primary→orange-500
#E56106

Foundations · Typography

Type system

Manrope across 15 styles — six heading levels, two body sizes and three label tiers. Every style maps to a semantic token so swapping a typeface never requires touching component code.

Style Sample
Headings
H1
48px · Bold · 110% LH
The Quick Brown Fox
H2
40px · Bold · 110% LH
The Quick Brown Fox
H3
36px · Bold · 110% LH
The Quick Brown Fox
H4
32px · Bold · 110% LH
The Quick Brown Fox
H5
28px · Bold · 110% LH
The Quick Brown Fox
H6
24px · Bold · 110% LH
The Quick Brown Fox
Body
B1
20px · Bold · 125% LH
The quick brown fox jumps over the lazy dog.
B2
16px · Regular · 125% LH
The quick brown fox jumps over the lazy dog.
Labels
L1 Regular
14px · Regular · 130% LH
Button Label · Navigation · Status Indicator
L1 Medium
14px · Medium · 130% LH
Button Label · Navigation · Status Indicator
L1 SemiBold
14px · SemiBold · 130% LH
Button Label · Navigation · Status Indicator
L2 Regular
12px · Regular · 140% LH
Tag · Badge · Chip · Caption Text
L2 Medium
12px · Medium · 140% LH
Tag · Badge · Chip · Caption Text
L2 SemiBold
12px · SemiBold · 140% LH
Tag · Badge · Chip · Caption Text
L3 Regular
11px · Regular · 150% LH
Helper text · Footnote · Placeholder · Error message

Foundations · Corner Radius

Rounded corners

A consistent radius scale applied across every component — from the sharpest card edge to a fully-rounded pill. Rounding signals component type and hierarchy without relying on colour alone.

0
0px
2
2px
4
4px
6
6px
8
8px
10
10px
12
12px
16
16px
20
20px
24
24px
32
32px
Full
96px

Foundations · Spacing

Spatial system

A base-4 grid underlies every gap, padding and margin in the system. Snapping to this scale keeps layouts consistent and ensures visual rhythm is preserved as components combine.

2
2px
4
4px
6
6px
8
8px
12
12px
16
16px
20
20px
24
24px
32
32px
40
40px
48
48px
64
64px
80
80px
96
96px

Foundations · Icons

Icon library

200+ Lucide glyphs across 18 categories, rendered at 24 × 24 with a 1.5px stroke. Consistent weight and grid keep icons legible and cohesive at every size they appear in the UI.

Foundations · Shadows

Elevation scale

Four shadow levels communicate depth and layer priority — from the subtle lift of a card to the focused presence of a modal or popover sitting above the rest of the page.

Shadow / sm

0 1px 3px rgba(0,0,0,.08)

Shadow / md

0 4px 12px rgba(0,0,0,.10)

Shadow / lg

0 8px 24px rgba(0,0,0,.12)

Shadow / xl

0 16px 48px rgba(0,0,0,.14)