10 color roles
Every color has a defined purpose. Use the buttons on the right to copy it in any format.
theme#b078a1rgb(176, 120, 161)hsl(316.1, 26.2%, 58%)btn#b078a1rgb(176, 120, 161)hsl(316.1, 26.2%, 58%)btnDisabled#e9e2e7rgb(233, 226, 231)hsl(317.1, 13.7%, 90%)bg#faf9fargb(250, 249, 250)hsl(300, 9.1%, 97.8%)card#f6f4f5rgb(246, 244, 245)hsl(330, 10%, 96.1%)textMain#292328rgb(41, 35, 40)hsl(310, 7.9%, 14.9%)textSub#7c6a77rgb(124, 106, 119)hsl(316.7, 7.8%, 45.1%)divider#e8e3e6rgb(232, 227, 230)hsl(324, 9.8%, 90%)price#d55339rgb(213, 83, 57)hsl(10, 65%, 52.9%)tag#abb983rgb(171, 185, 131)hsl(75.6, 27.8%, 62%)How to use it
Written by hand for the hue family and lightness of this palette, not assembled from a template.
The lead color is light, so it works well over large areas — just keep text and borders dark enough to hold the contrast.
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.65:1 | AAA | AAA |
| Body text / card background | 14.05:1 | AAA | AAA |
| Brand color / page background | 3.31: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: #b078a1; /* Theme */
--color-btn: #b078a1; /* Button */
--color-btnDisabled: #e9e2e7; /* Button disabled */
--color-bg: #faf9fa; /* Page background */
--color-card: #f6f4f5; /* Card */
--color-textMain: #292328; /* Text main */
--color-textSub: #7c6a77; /* Text sub */
--color-divider: #e8e3e6; /* Divider */
--color-price: #d55339; /* Price */
--color-tag: #abb983; /* Tag */
}SCSS variables
$color-theme: #b078a1; // Theme
$color-btn: #b078a1; // Button
$color-btnDisabled: #e9e2e7; // Button disabled
$color-bg: #faf9fa; // Page background
$color-card: #f6f4f5; // Card
$color-textMain: #292328; // Text main
$color-textSub: #7c6a77; // Text sub
$color-divider: #e8e3e6; // Divider
$color-price: #d55339; // Price
$color-tag: #abb983; // TagTailwind config
// tailwind.config.js: Peony Dusk
module.exports = {
theme: {
extend: {
colors: {
'theme': '#b078a1',
'btn': '#b078a1',
'btnDisabled': '#e9e2e7',
'bg': '#faf9fa',
'card': '#f6f4f5',
'textMain': '#292328',
'textSub': '#7c6a77',
'divider': '#e8e3e6',
'price': '#d55339',
'tag': '#abb983',
},
},
},
};Machine-readable JSON
{
"name": "Peony Dusk",
"platform": "miniapp",
"tags": [
"Fresh",
"Pink"
],
"advice": {
"family": "Pink",
"depth": "The lead color is light, so it works well over large areas — just keep text and borders dark enough to hold the contrast.",
"muted": null,
"suit": "Good for products that should feel gentle and young.",
"avoid": "Too much of it turns saccharine, especially at high saturation.",
"pair": "Gray and white keep it from becoming overly sweet; a deep berry purple adds depth."
},
"roles": {
"theme": "#b078a1",
"btn": "#b078a1",
"btnDisabled": "#e9e2e7",
"bg": "#faf9fa",
"card": "#f6f4f5",
"textMain": "#292328",
"textSub": "#7c6a77",
"divider": "#e8e3e6",
"price": "#d55339",
"tag": "#abb983"
},
"contrast": {
"textOnBg": {
"ratio": 14.65,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 3.31,
"level": "AA"
},
"textOnSurface": {
"ratio": 14.05,
"level": "AAA"
}
}
}