10 colour roles
Every colour has a defined purpose. Use the buttons on the right to copy it in any format.
theme#49628drgb(73, 98, 141)hsl(217.9, 31.8%, 42%)btn#49628drgb(73, 98, 141)hsl(217.9, 31.8%, 42%)btnDisabled#b1b9c9rgb(177, 185, 201)hsl(220, 18.2%, 74.1%)bg#f9fafargb(249, 250, 250)hsl(180, 9.1%, 97.8%)card#f4f5f6rgb(244, 245, 246)hsl(210, 10%, 96.1%)textMain#232529rgb(35, 37, 41)hsl(220, 7.9%, 14.9%)textSub#6a707crgb(106, 112, 124)hsl(220, 7.8%, 45.1%)divider#e3e5e8rgb(227, 229, 232)hsl(216, 9.8%, 90%)price#cc4529rgb(204, 69, 41)hsl(10.3, 66.5%, 48%)tag#967e54rgb(150, 126, 84)hsl(38.2, 28.2%, 45.9%)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.68:1 | AAA | AAA |
| Body text / card background | 14.06:1 | AAA | AAA |
| Brand colour / page background | 5.88: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: #49628d; /* Theme */
--color-btn: #49628d; /* Button */
--color-btnDisabled: #b1b9c9; /* Button disabled */
--color-bg: #f9fafa; /* Page background */
--color-card: #f4f5f6; /* Card */
--color-textMain: #232529; /* Text main */
--color-textSub: #6a707c; /* Text sub */
--color-divider: #e3e5e8; /* Divider */
--color-price: #cc4529; /* Price */
--color-tag: #967e54; /* Tag */
}SCSS variables
$color-theme: #49628d; // Theme
$color-btn: #49628d; // Button
$color-btnDisabled: #b1b9c9; // Button disabled
$color-bg: #f9fafa; // Page background
$color-card: #f4f5f6; // Card
$color-textMain: #232529; // Text main
$color-textSub: #6a707c; // Text sub
$color-divider: #e3e5e8; // Divider
$color-price: #cc4529; // Price
$color-tag: #967e54; // TagTailwind config
// tailwind.config.js: Abyss
module.exports = {
theme: {
extend: {
colors: {
'theme': '#49628d',
'btn': '#49628d',
'btnDisabled': '#b1b9c9',
'bg': '#f9fafa',
'card': '#f4f5f6',
'textMain': '#232529',
'textSub': '#6a707c',
'divider': '#e3e5e8',
'price': '#cc4529',
'tag': '#967e54',
},
},
},
};Machine-readable JSON
{
"name": "Abyss",
"platform": "miniapp",
"tags": [
"Vibrant",
"Blue"
],
"advice": {
"family": "Blue",
"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": "The most versatile lead: technology, finance, tools and enterprise services that need to feel trustworthy.",
"avoid": "It is so common that it can feel anonymous; support colours and typography have to do the differentiating.",
"pair": "Deeper blue for depth and white for openness are the two hardest combinations to get wrong."
},
"roles": {
"theme": "#49628d",
"btn": "#49628d",
"btnDisabled": "#b1b9c9",
"bg": "#f9fafa",
"card": "#f4f5f6",
"textMain": "#232529",
"textSub": "#6a707c",
"divider": "#e3e5e8",
"price": "#cc4529",
"tag": "#967e54"
},
"contrast": {
"textOnBg": {
"ratio": 14.68,
"level": "AAA"
},
"primaryOnBg": {
"ratio": 5.88,
"level": "AAA"
},
"textOnSurface": {
"ratio": 14.06,
"level": "AAA"
}
}
}