10 color roles
Every color has a defined purpose. Use the buttons on the right to copy it in any format.
primary#8d55a5rgb(141, 85, 165)hsl(282, 32%, 49%)primaryDark#663a78rgb(102, 58, 120)hsl(282.6, 34.8%, 34.9%)primaryLight#d2c6d7rgb(210, 198, 215)hsl(282.4, 17.5%, 81%)secondary#a97366rgb(169, 115, 102)hsl(11.6, 28%, 53.1%)accent#b0c757rgb(176, 199, 87)hsl(72.3, 50%, 56.1%)success#2fa761rgb(47, 167, 97)hsl(145, 56.1%, 42%)warning#eba314rgb(235, 163, 20)hsl(39.9, 84.3%, 50%)danger#d93b30rgb(217, 59, 48)hsl(3.9, 69%, 52%)text#272329rgb(39, 35, 41)hsl(280, 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.
The lead color sits in the middle of the lightness range, which makes it the most adaptable: both light and dark themes are easy to build on.
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.72:1 | AAA | AAA |
| Brand color / page background | 5.03: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: #8d55a5; /* Primary */
--color-primaryDark: #663a78; /* Primary dark */
--color-primaryLight: #d2c6d7; /* Primary light */
--color-secondary: #a97366; /* Secondary */
--color-accent: #b0c757; /* Accent */
--color-success: #2fa761; /* Success */
--color-warning: #eba314; /* Warning */
--color-danger: #d93b30; /* Danger */
--color-text: #272329; /* Text */
--color-bg: #faf9fa; /* Page background */
}SCSS variables
$color-primary: #8d55a5; // Primary
$color-primaryDark: #663a78; // Primary dark
$color-primaryLight: #d2c6d7; // Primary light
$color-secondary: #a97366; // Secondary
$color-accent: #b0c757; // Accent
$color-success: #2fa761; // Success
$color-warning: #eba314; // Warning
$color-danger: #d93b30; // Danger
$color-text: #272329; // Text
$color-bg: #faf9fa; // Page backgroundTailwind config
// tailwind.config.js: Violet Fog
module.exports = {
theme: {
extend: {
colors: {
'primary': '#8d55a5',
'primaryDark': '#663a78',
'primaryLight': '#d2c6d7',
'secondary': '#a97366',
'accent': '#b0c757',
'success': '#2fa761',
'warning': '#eba314',
'danger': '#d93b30',
'text': '#272329',
'bg': '#faf9fa',
},
},
},
};Machine-readable JSON
{
"name": "Violet Fog",
"platform": "app",
"tags": [
"Vibrant",
"Purple"
],
"advice": {
"family": "Purple",
"depth": "The lead color sits in the middle of the lightness range, which makes it the most adaptable: both light and dark themes are easy to build on.",
"muted": null,
"suit": "For creative, beauty, content and membership products — the more emotional end of the spectrum.",
"avoid": "Highly saturated purple quickly looks gaudy, so be careful in B2B and utility products.",
"pair": "A hint of gold reinforces the sense of quality."
},
"roles": {
"primary": "#8d55a5",
"primaryDark": "#663a78",
"primaryLight": "#d2c6d7",
"secondary": "#a97366",
"accent": "#b0c757",
"success": "#2fa761",
"warning": "#eba314",
"danger": "#d93b30",
"text": "#272329",
"bg": "#faf9fa"
},
"contrast": {
"textOnBg": {
"ratio": 14.72,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 5.03,
"level": "AAA"
}
}
}