#31383A is a mid neutral with only a whisper of temperate cast. On the Color Lab it reads clean and engineered, quietly premium. It holds up as a large surface and is too muted to lead as a primary accent.
Not just a swatch — here's how #31383A works with other colors. Named schemes with #31383A in its natural role, and a note on why the supporting colors balance it.
Onyx is the vivid signal in this product UI — on a near-black surface with cool white, a slate grey and a lighter tint of Onyx.
Onyx plays the worn-leather lead, deepened by saddle brown and an oxblood anchor, softened by aged cream and cooled by a muted forest green.
Onyx sets a calm, sun-bleached base here, wrapped in bone and paper off-whites and a soft greige, with a single ink accent for wabi-sabi restraint.
Onyx opens this coastal palette with sea-glass and warm sand alongside it, grounded by driftwood grey and a deep-navy anchor.
Onyx is the single accent in this high-contrast editorial system — set on near-white paper against near-black ink, with a warm grey and a desaturated tint of Onyx carrying the quiet middle.
How #31383A actually behaves in design work — read from its OKLCH lightness, chroma and hue, not just its raw numbers. Ten signals to help you decide where this color earns its place.
Not a swatch to memorise — a color to build with. Here is #31383A at work across the surfaces designers actually ship.
:root {
--color-base: #31383A;
--color-base-rgb: 49 56 58;
--color-base-oklch: oklch(33.5% 0.010 216.8);
--color-50: #F7F8F8;
--color-100: #E9ECEC;
--color-200: #D3D8D9;
--color-300: #B2BBBD;
--color-400: #929DA0;
--color-500: #737E81;
--color-600: #5C6466;
--color-700: #44494B;
--color-800: #2F3232;
--color-900: #1D1F20;
--color-on-base: #FFFFFF;
}
// tailwind.config.js
colors: {
onyx: {
50: '#F7F8F8',
100: '#E9ECEC',
200: '#D3D8D9',
300: '#B2BBBD',
400: '#929DA0',
500: '#737E81',
600: '#5C6466',
700: '#44494B',
800: '#2F3232',
900: '#1D1F20',
},
}
$base: #31383A; $base-ink: #FFFFFF; $base-50: #F7F8F8; $base-100: #E9ECEC; $base-200: #D3D8D9; $base-300: #B2BBBD; $base-400: #929DA0; $base-500: #737E81; $base-600: #5C6466; $base-700: #44494B; $base-800: #2F3232; $base-900: #1D1F20; $base-hover: #272D2E; $base-subtle: #BFC5C6;
{
"color": {
"base": {
"value": "#31383A",
"type": "color"
},
"onBase": {
"value": "#FFFFFF",
"type": "color"
},
"scale": {
"50": {
"value": "#F7F8F8",
"type": "color"
},
"100": {
"value": "#E9ECEC",
"type": "color"
},
"200": {
"value": "#D3D8D9",
"type": "color"
},
"300": {
"value": "#B2BBBD",
"type": "color"
},
"400": {
"value": "#929DA0",
"type": "color"
},
"500": {
"value": "#737E81",
"type": "color"
},
"600": {
"value": "#5C6466",
"type": "color"
},
"700": {
"value": "#44494B",
"type": "color"
},
"800": {
"value": "#2F3232",
"type": "color"
},
"900": {
"value": "#1D1F20",
"type": "color"
}
}
}
}