Pick a sector and tone — or drop in your own brand color — and HexPalette derives the full role set (primary, secondary, accent, surfaces, text, and success/warning/error states) in OKLCH, with every intended text pairing checked for WCAG AA contrast. Not five swatches: a system you can ship.
Every intended pairing here — text, buttons and states — meets WCAG AA by construction.
:root {
--primary: #BD4238;
--on-primary: #FFFFFF;
--primary-hover: #A82E26;
--primary-active: #971B17;
--primary-disabled: #DDBFBB;
--secondary: #772822;
--secondary-hover: #641612;
--accent: #C46C0F;
--link: #B05A00;
--link-hover: #994500;
--focus-ring: #D27925;
--selected-bg: #FFDFD9;
--background: #FFF6F4;
--surface: #FFFCFB;
--border: #EED8D5;
--input-bg: #FFFBFA;
--input-border: #D7C1BE;
--input-focus: #D27925;
--text: #311E1C;
--muted: #876560;
--success: #008130;
--warning: #AA6000;
--error: #CC3430;
--on-success: #FFFFFF;
--success-container: #C0F9C6;
--on-success-container: #287539;
--on-warning: #FFFFFF;
--warning-container: #FFDBAA;
--on-warning-container: #935000;
--on-error: #FFFFFF;
--error-container: #FFD1C8;
--on-error-container: #9C443C;
}
[data-theme="dark"] {
--primary: #BD4238;
--on-primary: #FFFFFF;
--primary-hover: #D5584C;
--primary-active: #E7685B;
--primary-disabled: #49312E;
--secondary: #772822;
--secondary-hover: #8D3C35;
--accent: #C46C0F;
--link: #FFA558;
--link-hover: #FFBC6F;
--focus-ring: #FFA558;
--selected-bg: #3B1C18;
--background: #170C0A;
--surface: #241513;
--border: #46322F;
--input-bg: #201412;
--input-border: #594441;
--input-focus: #FFA558;
--text: #FCEAE7;
--muted: #C6A19B;
--success: #6ED889;
--warning: #FEB354;
--error: #FF7064;
--on-success: #000000;
--success-container: #063215;
--on-success-container: #A2F5B4;
--on-warning: #000000;
--warning-container: #3E2100;
--on-warning-container: #FFD083;
--on-error: #000000;
--error-container: #451915;
--on-error-container: #FFBFB3;
}
// light $ui-system-primary: #BD4238; $ui-system-on-primary: #FFFFFF; $ui-system-primary-hover: #A82E26; $ui-system-primary-active: #971B17; $ui-system-primary-disabled: #DDBFBB; $ui-system-secondary: #772822; $ui-system-secondary-hover: #641612; $ui-system-accent: #C46C0F; $ui-system-link: #B05A00; $ui-system-link-hover: #994500; $ui-system-focus-ring: #D27925; $ui-system-selected-bg: #FFDFD9; $ui-system-background: #FFF6F4; $ui-system-surface: #FFFCFB; $ui-system-border: #EED8D5; $ui-system-input-bg: #FFFBFA; $ui-system-input-border: #D7C1BE; $ui-system-input-focus: #D27925; $ui-system-text: #311E1C; $ui-system-muted: #876560; $ui-system-success: #008130; $ui-system-warning: #AA6000; $ui-system-error: #CC3430; $ui-system-on-success: #FFFFFF; $ui-system-success-container: #C0F9C6; $ui-system-on-success-container: #287539; $ui-system-on-warning: #FFFFFF; $ui-system-warning-container: #FFDBAA; $ui-system-on-warning-container: #935000; $ui-system-on-error: #FFFFFF; $ui-system-error-container: #FFD1C8; $ui-system-on-error-container: #9C443C; // dark $ui-system-primary-dark: #BD4238; $ui-system-on-primary-dark: #FFFFFF; $ui-system-primary-hover-dark: #D5584C; $ui-system-primary-active-dark: #E7685B; $ui-system-primary-disabled-dark: #49312E; $ui-system-secondary-dark: #772822; $ui-system-secondary-hover-dark: #8D3C35; $ui-system-accent-dark: #C46C0F; $ui-system-link-dark: #FFA558; $ui-system-link-hover-dark: #FFBC6F; $ui-system-focus-ring-dark: #FFA558; $ui-system-selected-bg-dark: #3B1C18; $ui-system-background-dark: #170C0A; $ui-system-surface-dark: #241513; $ui-system-border-dark: #46322F; $ui-system-input-bg-dark: #201412; $ui-system-input-border-dark: #594441; $ui-system-input-focus-dark: #FFA558; $ui-system-text-dark: #FCEAE7; $ui-system-muted-dark: #C6A19B; $ui-system-success-dark: #6ED889; $ui-system-warning-dark: #FEB354; $ui-system-error-dark: #FF7064; $ui-system-on-success-dark: #000000; $ui-system-success-container-dark: #063215; $ui-system-on-success-container-dark: #A2F5B4; $ui-system-on-warning-dark: #000000; $ui-system-warning-container-dark: #3E2100; $ui-system-on-warning-container-dark: #FFD083; $ui-system-on-error-dark: #000000; $ui-system-error-container-dark: #451915; $ui-system-on-error-container-dark: #FFBFB3;
// tailwind.config.js — theme.extend.colors
colors: {
'ui-system': {
'primary': '#BD4238',
'on-primary': '#FFFFFF',
'primary-hover': '#A82E26',
'primary-active': '#971B17',
'primary-disabled': '#DDBFBB',
'secondary': '#772822',
'secondary-hover': '#641612',
'accent': '#C46C0F',
'link': '#B05A00',
'link-hover': '#994500',
'focus-ring': '#D27925',
'selected-bg': '#FFDFD9',
'background': '#FFF6F4',
'surface': '#FFFCFB',
'border': '#EED8D5',
'input-bg': '#FFFBFA',
'input-border': '#D7C1BE',
'input-focus': '#D27925',
'text': '#311E1C',
'muted': '#876560',
'success': '#008130',
'warning': '#AA6000',
'error': '#CC3430',
'on-success': '#FFFFFF',
'success-container': '#C0F9C6',
'on-success-container': '#287539',
'on-warning': '#FFFFFF',
'warning-container': '#FFDBAA',
'on-warning-container': '#935000',
'on-error': '#FFFFFF',
'error-container': '#FFD1C8',
'on-error-container': '#9C443C',
},
'ui-system-dark': {
'primary': '#BD4238',
'on-primary': '#FFFFFF',
'primary-hover': '#D5584C',
'primary-active': '#E7685B',
'primary-disabled': '#49312E',
'secondary': '#772822',
'secondary-hover': '#8D3C35',
'accent': '#C46C0F',
'link': '#FFA558',
'link-hover': '#FFBC6F',
'focus-ring': '#FFA558',
'selected-bg': '#3B1C18',
'background': '#170C0A',
'surface': '#241513',
'border': '#46322F',
'input-bg': '#201412',
'input-border': '#594441',
'input-focus': '#FFA558',
'text': '#FCEAE7',
'muted': '#C6A19B',
'success': '#6ED889',
'warning': '#FEB354',
'error': '#FF7064',
'on-success': '#000000',
'success-container': '#063215',
'on-success-container': '#A2F5B4',
'on-warning': '#000000',
'warning-container': '#3E2100',
'on-warning-container': '#FFD083',
'on-error': '#000000',
'error-container': '#451915',
'on-error-container': '#FFBFB3',
},
}
{
"light": {
"primary": {
"value": "#BD4238",
"type": "color"
},
"on-primary": {
"value": "#FFFFFF",
"type": "color"
},
"primary-hover": {
"value": "#A82E26",
"type": "color"
},
"primary-active": {
"value": "#971B17",
"type": "color"
},
"primary-disabled": {
"value": "#DDBFBB",
"type": "color"
},
"secondary": {
"value": "#772822",
"type": "color"
},
"secondary-hover": {
"value": "#641612",
"type": "color"
},
"accent": {
"value": "#C46C0F",
"type": "color"
},
"link": {
"value": "#B05A00",
"type": "color"
},
"link-hover": {
"value": "#994500",
"type": "color"
},
"focus-ring": {
"value": "#D27925",
"type": "color"
},
"selected-bg": {
"value": "#FFDFD9",
"type": "color"
},
"background": {
"value": "#FFF6F4",
"type": "color"
},
"surface": {
"value": "#FFFCFB",
"type": "color"
},
"border": {
"value": "#EED8D5",
"type": "color"
},
"input-bg": {
"value": "#FFFBFA",
"type": "color"
},
"input-border": {
"value": "#D7C1BE",
"type": "color"
},
"input-focus": {
"value": "#D27925",
"type": "color"
},
"text": {
"value": "#311E1C",
"type": "color"
},
"muted": {
"value": "#876560",
"type": "color"
},
"success": {
"value": "#008130",
"type": "color"
},
"warning": {
"value": "#AA6000",
"type": "color"
},
"error": {
"value": "#CC3430",
"type": "color"
},
"on-success": {
"value": "#FFFFFF",
"type": "color"
},
"success-container": {
"value": "#C0F9C6",
"type": "color"
},
"on-success-container": {
"value": "#287539",
"type": "color"
},
"on-warning": {
"value": "#FFFFFF",
"type": "color"
},
"warning-container": {
"value": "#FFDBAA",
"type": "color"
},
"on-warning-container": {
"value": "#935000",
"type": "color"
},
"on-error": {
"value": "#FFFFFF",
"type": "color"
},
"error-container": {
"value": "#FFD1C8",
"type": "color"
},
"on-error-container": {
"value": "#9C443C",
"type": "color"
}
},
"dark": {
"primary": {
"value": "#BD4238",
"type": "color"
},
"on-primary": {
"value": "#FFFFFF",
"type": "color"
},
"primary-hover": {
"value": "#D5584C",
"type": "color"
},
"primary-active": {
"value": "#E7685B",
"type": "color"
},
"primary-disabled": {
"value": "#49312E",
"type": "color"
},
"secondary": {
"value": "#772822",
"type": "color"
},
"secondary-hover": {
"value": "#8D3C35",
"type": "color"
},
"accent": {
"value": "#C46C0F",
"type": "color"
},
"link": {
"value": "#FFA558",
"type": "color"
},
"link-hover": {
"value": "#FFBC6F",
"type": "color"
},
"focus-ring": {
"value": "#FFA558",
"type": "color"
},
"selected-bg": {
"value": "#3B1C18",
"type": "color"
},
"background": {
"value": "#170C0A",
"type": "color"
},
"surface": {
"value": "#241513",
"type": "color"
},
"border": {
"value": "#46322F",
"type": "color"
},
"input-bg": {
"value": "#201412",
"type": "color"
},
"input-border": {
"value": "#594441",
"type": "color"
},
"input-focus": {
"value": "#FFA558",
"type": "color"
},
"text": {
"value": "#FCEAE7",
"type": "color"
},
"muted": {
"value": "#C6A19B",
"type": "color"
},
"success": {
"value": "#6ED889",
"type": "color"
},
"warning": {
"value": "#FEB354",
"type": "color"
},
"error": {
"value": "#FF7064",
"type": "color"
},
"on-success": {
"value": "#000000",
"type": "color"
},
"success-container": {
"value": "#063215",
"type": "color"
},
"on-success-container": {
"value": "#A2F5B4",
"type": "color"
},
"on-warning": {
"value": "#000000",
"type": "color"
},
"warning-container": {
"value": "#3E2100",
"type": "color"
},
"on-warning-container": {
"value": "#FFD083",
"type": "color"
},
"on-error": {
"value": "#000000",
"type": "color"
},
"error-container": {
"value": "#451915",
"type": "color"
},
"on-error-container": {
"value": "#FFBFB3",
"type": "color"
}
}
}
{
"light": {
"primary": "#BD4238",
"on-primary": "#FFFFFF",
"primary-hover": "#A82E26",
"primary-active": "#971B17",
"primary-disabled": "#DDBFBB",
"secondary": "#772822",
"secondary-hover": "#641612",
"accent": "#C46C0F",
"link": "#B05A00",
"link-hover": "#994500",
"focus-ring": "#D27925",
"selected-bg": "#FFDFD9",
"background": "#FFF6F4",
"surface": "#FFFCFB",
"border": "#EED8D5",
"input-bg": "#FFFBFA",
"input-border": "#D7C1BE",
"input-focus": "#D27925",
"text": "#311E1C",
"muted": "#876560",
"success": "#008130",
"warning": "#AA6000",
"error": "#CC3430",
"on-success": "#FFFFFF",
"success-container": "#C0F9C6",
"on-success-container": "#287539",
"on-warning": "#FFFFFF",
"warning-container": "#FFDBAA",
"on-warning-container": "#935000",
"on-error": "#FFFFFF",
"error-container": "#FFD1C8",
"on-error-container": "#9C443C"
},
"dark": {
"primary": "#BD4238",
"on-primary": "#FFFFFF",
"primary-hover": "#D5584C",
"primary-active": "#E7685B",
"primary-disabled": "#49312E",
"secondary": "#772822",
"secondary-hover": "#8D3C35",
"accent": "#C46C0F",
"link": "#FFA558",
"link-hover": "#FFBC6F",
"focus-ring": "#FFA558",
"selected-bg": "#3B1C18",
"background": "#170C0A",
"surface": "#241513",
"border": "#46322F",
"input-bg": "#201412",
"input-border": "#594441",
"input-focus": "#FFA558",
"text": "#FCEAE7",
"muted": "#C6A19B",
"success": "#6ED889",
"warning": "#FEB354",
"error": "#FF7064",
"on-success": "#000000",
"success-container": "#063215",
"on-success-container": "#A2F5B4",
"on-warning": "#000000",
"warning-container": "#3E2100",
"on-warning-container": "#FFD083",
"on-error": "#000000",
"error-container": "#451915",
"on-error-container": "#FFBFB3"
}
}
/* Canva → Brand Kit → Brand Colors */ /* Brand */ #BD4238 #FFFFFF #A82E26 #971B17 #DDBFBB #772822 #641612 #C46C0F #B05A00 #994500 #D27925 #FFDFD9 #D27925 /* Neutral */ #FFF6F4 #FFFCFB #EED8D5 #FFFBFA #D7C1BE #311E1C #876560 /* Semantic */ #008130 #AA6000 #CC3430 #FFFFFF #C0F9C6 #287539 #FFFFFF #FFDBAA #935000 #FFFFFF #FFD1C8 #9C443C