10 colour roles
Every colour has a defined purpose. Use the buttons on the right to copy it in any format.
primary#63249ergb(99, 36, 158)hsl(271, 62.9%, 38%)primaryDark#3e1565rgb(62, 21, 101)hsl(270.8, 65.6%, 23.9%)primaryLight#b48dd8rgb(180, 141, 216)hsl(271.2, 49%, 70%)secondary#9c3a9argb(156, 58, 154)hsl(301.2, 45.8%, 42%)accent#8cea34rgb(140, 234, 52)hsl(91, 81.2%, 56.1%)success#23a459rgb(35, 164, 89)hsl(145.1, 64.8%, 39%)warning#e69d0argb(230, 157, 10)hsl(40.1, 91.7%, 47.1%)danger#e12619rgb(225, 38, 25)hsl(3.9, 80%, 49%)text#262329rgb(38, 35, 41)hsl(270, 7.9%, 14.9%)bg#faf9fargb(250, 249, 250)hsl(300, 9.1%, 97.8%)How to use it
Written by hand for the hue family and lightness of this palette, not assembled from a template.
This palette's lead colour is deep and carries weight — suited to dark themes, or interfaces that need to feel professional and steady.
What it looks like in a real interface
The same palette rendered across all three platforms — the fastest way to judge whether it works.
Sample body copy, used to check how secondary text reads on a card background.
Read more →Accessibility contrast check
Calculated to WCAG 2.1. AA is the accessibility baseline, AAA the enhanced level.
| Foreground / background | Ratio | Body text | Large text |
|---|---|---|---|
| Body text / page background | 14.76:1 | AAA | AAA |
| Brand colour / page background | 8.78:1 | AAA | AAA |
Export to your project
Four formats, ready to paste. Or fetch them by URL from your tooling or AI agent.
CSS variables
:root {
--color-primary: #63249e; /* Primary */
--color-primaryDark: #3e1565; /* Primary dark */
--color-primaryLight: #b48dd8; /* Primary light */
--color-secondary: #9c3a9a; /* Secondary */
--color-accent: #8cea34; /* Accent */
--color-success: #23a459; /* Success */
--color-warning: #e69d0a; /* Warning */
--color-danger: #e12619; /* Danger */
--color-text: #262329; /* Text */
--color-bg: #faf9fa; /* Page background */
}SCSS variables
$color-primary: #63249e; // Primary
$color-primaryDark: #3e1565; // Primary dark
$color-primaryLight: #b48dd8; // Primary light
$color-secondary: #9c3a9a; // Secondary
$color-accent: #8cea34; // Accent
$color-success: #23a459; // Success
$color-warning: #e69d0a; // Warning
$color-danger: #e12619; // Danger
$color-text: #262329; // Text
$color-bg: #faf9fa; // Page backgroundTailwind config
// tailwind.config.js: Violet Hour
module.exports = {
theme: {
extend: {
colors: {
'primary': '#63249e',
'primaryDark': '#3e1565',
'primaryLight': '#b48dd8',
'secondary': '#9c3a9a',
'accent': '#8cea34',
'success': '#23a459',
'warning': '#e69d0a',
'danger': '#e12619',
'text': '#262329',
'bg': '#faf9fa',
},
},
},
};Machine-readable JSON
{
"name": "Violet Hour",
"platform": "app",
"tags": [
"Coffee",
"Purple"
],
"advice": {
"family": "Purple",
"depth": "This palette's lead colour is deep and carries weight — suited to dark themes, or interfaces that need to feel professional and steady.",
"muted": null,
"suit": "Its sense of prestige suits memberships, privileges and exclusivity.",
"avoid": "Purple, red and blue can blur together; keep enough lightness between them.",
"pair": "Pale pink and cream soften it; deep blue grounds it."
},
"roles": {
"primary": "#63249e",
"primaryDark": "#3e1565",
"primaryLight": "#b48dd8",
"secondary": "#9c3a9a",
"accent": "#8cea34",
"success": "#23a459",
"warning": "#e69d0a",
"danger": "#e12619",
"text": "#262329",
"bg": "#faf9fa"
},
"contrast": {
"textOnBg": {
"ratio": 14.76,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 8.78,
"level": "AAA"
}
}
}