Colour palette
The Spiris Design System provides a comprehensive colour palette with CSS custom properties for consistent theming across your application.
Colour scale
Each colour palette uses a consistent 3-digit scale from 100 (lightest) to 1000 (darkest). The neutral palette extends to 1100 for additional contrast options.
| Level | Usage |
|---|---|
white (neutral only) |
Pure white (#FFFFFF) |
100 |
Backgrounds, subtle fills |
200 |
Light backgrounds, hover states |
300 |
Light accents, disabled states |
400 |
Borders, secondary elements |
500 |
Mid-tone elements |
600 |
Primary actions, key elements |
700 |
Hover states for primary elements |
800 |
Active states, pressed elements |
900 |
Dark accents, text on light backgrounds |
1000 |
Darkest tones, high contrast elements |
1100 (neutral only) |
Maximum contrast, near-black |
black (neutral only) |
Pure black (#000000) |
Neutral palette
The neutral palette provides grayscale colours that adapt to light and dark modes. Use the shorthand --neutral-* properties which automatically select the appropriate values for the current colour mode.
Note: The --neutral-100 through --neutral-1100 properties automatically adapt to light or dark mode. For explicit mode-specific values, use --neutral-light-* or --neutral-dark-*.
Light mode
$neutral-black
--neutral-black
#000000
$neutral-1100
--neutral-light-1100
$primary-neutral
--primary-neutral
#1D1D1E
$neutral-1000
--neutral-light-1000
#39393C
$neutral-900
--neutral-light-900
#56565A
$neutral-800
--neutral-light-800
#707073
$neutral-700
--neutral-light-700
#8B8B8B
$neutral-600
--neutral-light-600
#C3C1BB
$neutral-500
--neutral-light-500
#D4D3CD
$neutral-400
--neutral-light-400
#E8E6E3
$neutral-300
--neutral-light-300
#EEECE9
$neutral-200
--neutral-light-200
#F5F3F0
$neutral-100
#FBFAF9
$neutral-white
--neutral-white
#FFFFFF
Dark mode
$neutral-black
--neutral-black
#000000
$neutral-1100
--neutral-dark-1100
$primary-neutral
--primary-neutral
#1D1D1E
$neutral-1000
--neutral-dark-1000
#39393C
$neutral-900
--neutral-dark-900
#56565A
$neutral-800
--neutral-dark-800
#707073
$neutral-700
--neutral-dark-700
#8B8B8B
$neutral-600
--neutral-dark-600
#C3C1BB
$neutral-500
--neutral-dark-500
#D4D3CD
$neutral-400
--neutral-dark-400
#E8E6E3
$neutral-300
--neutral-dark-300
#EEECE9
$neutral-200
--neutral-dark-200
#F5F3F0
$neutral-100
#FBFAF9
$neutral-white
--neutral-white
#FFFFFF
Brand colour palettes
Purple (Primary)
The primary brand colour, used for key UI elements and branding.
$primary-1000
--purple-1000
#2C0753
$primary-900
--purple-900
#441774
$primary-800
--purple-800
$primary-primary
--primary-purple
#5C2A98
$primary-700
--purple-700
#743CBA
$primary-600
--purple-600
#8E59D3
$primary-500
--purple-500
#A777E8
$primary-400
--purple-400
#BE95F7
$primary-300
--purple-300
#D5B3FF
$primary-200
--purple-200
#E3CCFF
$primary-100
--purple-100
#F2E7FF
Blue
Used for links, informational elements, and secondary branding.
$blue-1000
--blue-1000
#081754
$blue-900
--blue-900
#172875
$blue-800
--blue-800
#2A4097
$blue-700
--blue-700
$primary-blue
--primary-blue
#3C57B9
$blue-600
--blue-600
#5975D3
$blue-500
--blue-500
#7793E8
$blue-400
--blue-400
#95ADF7
$blue-300
--blue-300
#B3C3FF
$blue-200
--blue-200
#CCD7FF
$blue-100
--blue-100
#E7ECFF
Green
Used for success states, positive actions, and confirmations.
$green-1000
--green-1000
#063B13
$green-900
--green-900
#0F631F
$green-800
--green-800
#1D872B
$green-700
--green-700
$primary-green
--primary-green
#30A639
$green-600
--green-600
#47BC4C
$green-500
--green-500
#60CF63
$green-400
--green-400
#7EDE7D
$green-300
--green-300
#9FEB9D
$green-200
--green-200
#C2F5BF
$green-100
--green-100
#E7FCE6
Red (Secondary)
Used for error states, destructive actions, and warnings.
$secondary-1000
--red-1000
#661712
$secondary-900
--red-900
#992A25
$secondary-800
--red-800
#CC433C
$secondary-700
--red-700
$primary-secondary
--primary-red
#FF5E57
$secondary-600
--red-600
#FF706A
$secondary-500
--red-500
#FF8680
$secondary-400
--red-400
#FFA19C
$secondary-300
--red-300
#FFC2BE
$secondary-200
--red-200
#FFE9E7
$secondary-100
--red-100
#FFF5F4
Orange (Yellow)
Used for warning states and attention-grabbing elements.
$yellow-1000
--orange-1000
#732A00
$yellow-900
--orange-900
#A24800
$yellow-800
--orange-800
$primary-yellow
--primary-orange
#D06A00
$yellow-700
--orange-700
#EC8D00
$yellow-600
--orange-600
#FFA024
$yellow-500
--orange-500
#FFB348
$yellow-400
--orange-400
#FFC46C
$yellow-300
--orange-300
#FFD491
$yellow-200
--orange-200
#FFE3B5
$yellow-100
--orange-100
#FFF1D9
Usage
CSS custom properties
Use CSS custom properties directly in your stylesheets:
/* Using the neutral palette */
.my-component {
background-color: var(--neutral-100);
border-color: var(--neutral-400);
color: var(--neutral-1100);
}
/* Using brand colours */
.my-button {
background-color: var(--purple-700);
color: var(--neutral-100);
}
.my-button:hover {
background-color: var(--purple-800);
}
SCSS colour-scale() function
When working with SCSS, use the colour-scale() helper function for a cleaner syntax:
@use 'spiris' as *;
.my-component {
background-color: colour-scale(neutral, 100);
border-color: colour-scale(neutral, 400);
color: colour-scale(neutral, 1100);
}
.my-button {
background-color: colour-scale(purple, 700);
color: colour-scale(neutral, 100);
&:hover {
background-color: colour-scale(purple, 800);
}
}