10 colour roles
Every colour has a defined purpose. Use the buttons on the right to copy it in any format.
theme#8755a5rgb(135, 85, 165)hsl(277.5, 32%, 49%)btn#8755a5rgb(135, 85, 165)hsl(277.5, 32%, 49%)btnDisabled#d1c6d7rgb(209, 198, 215)hsl(278.8, 17.5%, 81%)bg#faf9fargb(250, 249, 250)hsl(300, 9.1%, 97.8%)card#f5f4f6rgb(245, 244, 246)hsl(270, 10%, 96.1%)textMain#272329rgb(39, 35, 41)hsl(280, 7.9%, 14.9%)textSub#756a7crgb(117, 106, 124)hsl(276.7, 7.8%, 45.1%)divider#e6e3e8rgb(230, 227, 232)hsl(276, 9.8%, 90%)price#d4482crgb(212, 72, 44)hsl(10, 66.1%, 50.2%)tag#a99066rgb(169, 144, 102)hsl(37.6, 28%, 53.1%)How to use it
Written by hand for the hue family and lightness of this palette, not assembled from a template.
The lead colour 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.
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 |
| Body text / card background | 14.1:1 | AAA | AAA |
| Brand colour / page background | 5.16: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-theme: #8755a5; /* Theme */
--color-btn: #8755a5; /* Button */
--color-btnDisabled: #d1c6d7; /* Button disabled */
--color-bg: #faf9fa; /* Page background */
--color-card: #f5f4f6; /* Card */
--color-textMain: #272329; /* Text main */
--color-textSub: #756a7c; /* Text sub */
--color-divider: #e6e3e8; /* Divider */
--color-price: #d4482c; /* Price */
--color-tag: #a99066; /* Tag */
}SCSS variables
$color-theme: #8755a5; // Theme
$color-btn: #8755a5; // Button
$color-btnDisabled: #d1c6d7; // Button disabled
$color-bg: #faf9fa; // Page background
$color-card: #f5f4f6; // Card
$color-textMain: #272329; // Text main
$color-textSub: #756a7c; // Text sub
$color-divider: #e6e3e8; // Divider
$color-price: #d4482c; // Price
$color-tag: #a99066; // TagTailwind config
// tailwind.config.js: Lotus Violet
module.exports = {
theme: {
extend: {
colors: {
'theme': '#8755a5',
'btn': '#8755a5',
'btnDisabled': '#d1c6d7',
'bg': '#faf9fa',
'card': '#f5f4f6',
'textMain': '#272329',
'textSub': '#756a7c',
'divider': '#e6e3e8',
'price': '#d4482c',
'tag': '#a99066',
},
},
},
};Machine-readable JSON
{
"name": "Lotus Violet",
"platform": "miniapp",
"tags": [
"Business",
"Purple"
],
"advice": {
"family": "Purple",
"depth": "The lead colour 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": "Purple, red and blue can blur together; keep enough lightness between them.",
"pair": "Pale pink and cream soften it; deep blue grounds it."
},
"roles": {
"theme": "#8755a5",
"btn": "#8755a5",
"btnDisabled": "#d1c6d7",
"bg": "#faf9fa",
"card": "#f5f4f6",
"textMain": "#272329",
"textSub": "#756a7c",
"divider": "#e6e3e8",
"price": "#d4482c",
"tag": "#a99066"
},
"contrast": {
"textOnBg": {
"ratio": 14.72,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 5.16,
"level": "AAA"
},
"textOnSurface": {
"ratio": 14.1,
"level": "AAA"
}
}
}