10 colour roles
Every colour has a defined purpose. Use the buttons on the right to copy it in any format.
theme#2d866drgb(45, 134, 109)hsl(163.1, 49.7%, 35.1%)btn#2d866drgb(45, 134, 109)hsl(163.1, 49.7%, 35.1%)btnDisabled#8dc9b8rgb(141, 201, 184)hsl(163, 35.7%, 67.1%)bg#f9fafargb(249, 250, 250)hsl(180, 9.1%, 97.8%)card#f4f6f5rgb(244, 246, 245)hsl(150, 10%, 96.1%)textMain#232928rgb(35, 41, 40)hsl(170, 7.9%, 14.9%)textSub#6a7c77rgb(106, 124, 119)hsl(163.3, 7.8%, 45.1%)divider#e3e8e6rgb(227, 232, 230)hsl(156, 9.8%, 90%)price#c83f23rgb(200, 63, 35)hsl(10.2, 70.2%, 46.1%)tag#874053rgb(135, 64, 83)hsl(343.9, 35.7%, 39%)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.
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.15:1 | AAA | AAA |
| Body text / card background | 13.63:1 | AAA | AAA |
| Brand colour / page background | 4.23:1 | AA | AA |
Export to your project
Four formats, ready to paste. Or fetch them by URL from your tooling or AI agent.
CSS variables
:root {
--color-theme: #2d866d; /* Theme */
--color-btn: #2d866d; /* Button */
--color-btnDisabled: #8dc9b8; /* Button disabled */
--color-bg: #f9fafa; /* Page background */
--color-card: #f4f6f5; /* Card */
--color-textMain: #232928; /* Text main */
--color-textSub: #6a7c77; /* Text sub */
--color-divider: #e3e8e6; /* Divider */
--color-price: #c83f23; /* Price */
--color-tag: #874053; /* Tag */
}SCSS variables
$color-theme: #2d866d; // Theme
$color-btn: #2d866d; // Button
$color-btnDisabled: #8dc9b8; // Button disabled
$color-bg: #f9fafa; // Page background
$color-card: #f4f6f5; // Card
$color-textMain: #232928; // Text main
$color-textSub: #6a7c77; // Text sub
$color-divider: #e3e8e6; // Divider
$color-price: #c83f23; // Price
$color-tag: #874053; // TagTailwind config
// tailwind.config.js: Olive Grove
module.exports = {
theme: {
extend: {
colors: {
'theme': '#2d866d',
'btn': '#2d866d',
'btnDisabled': '#8dc9b8',
'bg': '#f9fafa',
'card': '#f4f6f5',
'textMain': '#232928',
'textSub': '#6a7c77',
'divider': '#e3e8e6',
'price': '#c83f23',
'tag': '#874053',
},
},
},
};Machine-readable JSON
{
"name": "Olive Grove",
"platform": "miniapp",
"tags": [
"Berry",
"Green"
],
"advice": {
"family": "Green",
"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": "Good for products that should feel calm and trustworthy: investing, healthcare, fitness.",
"avoid": "It does not grab attention for scarcity or promotions, so do not make it your sale colour.",
"pair": "A touch of warm orange breaks the coolness and brings the composition to life."
},
"roles": {
"theme": "#2d866d",
"btn": "#2d866d",
"btnDisabled": "#8dc9b8",
"bg": "#f9fafa",
"card": "#f4f6f5",
"textMain": "#232928",
"textSub": "#6a7c77",
"divider": "#e3e8e6",
"price": "#c83f23",
"tag": "#874053"
},
"contrast": {
"textOnBg": {
"ratio": 14.15,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 4.23,
"level": "AA"
},
"textOnSurface": {
"ratio": 13.63,
"level": "AAA"
}
}
}