Skip to content

Colours

The FastTrack colour system is built on CSS custom properties defined in public/assets/styles/colors.css. All colours are available globally and should be referenced via var() — never hardcode hex values.

Brand Palette

Seven colour families, each with 5 shades (200–600). Shade 400 is the default/base for each family.

Brand Colours

Pink

200#FAD7E4
300#F4B0C8
400#E96092
500#D52454
600#C21030

Purple

200#E0C6E0
300#C18EC0
400#831F82
500#440743
600#230123

Blue

200#D8EDF9
300#B0DAF2
400#63B6E6
500#2782CF
600#105DBA

Yellow

200#FFF6C9
300#FEED93
400#FFDB14
500#FDBC25
600#FCA122

Red

200#F9D3CC
300#F2A699
400#E54F35
500#CD1913
600#B80E11

Orange

200#FCE8C7
300#F9D18F
400#F4A321
500#E9681A
600#DF4317

Green

200#D4E9D4
300#A9D3A9
400#3AAA3F
500#2E7D2E
600#1A5A1A
css
/* Usage */
.my-element {
  background-color: var(--color-brand-pink-400);
  color: var(--color-brand-blue-600);
}
/* Usage */
.my-element {
  background-color: var(--color-brand-pink-400);
  color: var(--color-brand-blue-600);
}

Mono / Neutrals

Nine neutral shades from white to black.

Mono Palette

White#FFF
100#FAFAFA
200#F5F5F5
300#E5E5E5
400#CACACA
500#959595
600#666666
700#2C2C2C
Black#000
css
/* Usage */
.surface { background-color: var(--color-mono-white); }
.text    { color: var(--color-mono-700); }
.border  { border-color: var(--color-mono-300); }
/* Usage */
.surface { background-color: var(--color-mono-white); }
.text    { color: var(--color-mono-700); }
.border  { border-color: var(--color-mono-300); }

Semantic Colours

Functional aliases that map to brand palette tokens. Defined in tokens/semantic.tokens.json.

Semantic Colours

Primary

lighter
light
base
dark
darker

Maps to pink 200–600

Secondary

lightest
light
base

Maps to blue 200, 500, 600

Tertiary

light
base
dark

Maps to purple 300–500

Success

lightest
light
base
dark

Maps to green 200–500

Warning

lightest
light
base
dark

Maps to yellow 200–500

Error

lightest
light
base
dark

Maps to red 200, 400, 500, 600

Info

lightest
light
base
dark

Maps to blue 200, 400, 500, 600

Neutral

lightest
lighter
light
base
dark

Maps to mono 200–700

Surface, Text & Border

Semantic tokens for surfaces, text and interactive states.

TokenValueUsage
surface.basemono.whiteDefault background
surface.secondarymono.100Secondary container background
surface.tertiarymono.200Nested content background
surface.inversemono.blackInverse/dark background
on-surface.basemono.700Default text on light surfaces
on-surface.secondarymono.600Secondary text
on-surface.tertiarymono.500Tertiary text
on-surface.disabledmono.400Disabled text
on-surface.inversemono.whiteText on dark surfaces
border.basemono.300Default border
border.subtlemono.200Subtle border
border.strongmono.500Emphasis border
border.focusblue.600Focused element border
focus-ring.baseblue.600Focus ring for keyboard navigation
link.baseblue.600Default link colour
link.hoverblue.500Hovered link colour
link.visitedpurple.300Visited link colour
accent.primaryorange.500Primary accent highlights
accent.secondarypurple.400Secondary accent
overlay.basergba(0,0,0,0.5)Default overlay backdrop