#312E2B is a mid neutral with only a whisper of temperate cast. On the Color Lab it reads quietly premium, restrained and easy to live with. It holds up as a large surface and is too muted to lead as a primary accent.
Not just a swatch — here's how #312E2B works with other colors. Named schemes with #312E2B in its natural role, and a note on why the supporting colors balance it.
Gunmetal Gray is the vivid signal in this product UI — on a near-black surface with cool white, a slate grey and a lighter tint of Gunmetal Gray.
Gunmetal Gray plays the worn-leather lead, deepened by saddle brown and an oxblood anchor, softened by aged cream and cooled by a muted forest green.
Gunmetal Gray 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.
Gunmetal Gray carries the depth in this luxury scheme, offset by a brass accent and near-black and held together by a deep neutral and an off-white surface.
Gunmetal Gray 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 Gunmetal Gray carrying the quiet middle.
How #312E2B 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 #312E2B at work across the surfaces designers actually ship.
:root {
--color-base: #312E2B;
--color-base-rgb: 49 46 43;
--color-base-oklch: oklch(30.3% 0.007 67.6);
--color-50: #F8F7F7;
--color-100: #ECEBE9;
--color-200: #D9D6D3;
--color-300: #BCB8B3;
--color-400: #9F9993;
--color-500: #817A74;
--color-600: #65615D;
--color-700: #4A4745;
--color-800: #32302F;
--color-900: #201F1D;
--color-on-base: #FFFFFF;
}
// tailwind.config.js
colors: {
gunmetal-gray: {
50: '#F8F7F7',
100: '#ECEBE9',
200: '#D9D6D3',
300: '#BCB8B3',
400: '#9F9993',
500: '#817A74',
600: '#65615D',
700: '#4A4745',
800: '#32302F',
900: '#201F1D',
},
}
$base: #312E2B; $base-ink: #FFFFFF; $base-50: #F8F7F7; $base-100: #ECEBE9; $base-200: #D9D6D3; $base-300: #BCB8B3; $base-400: #9F9993; $base-500: #817A74; $base-600: #65615D; $base-700: #4A4745; $base-800: #32302F; $base-900: #201F1D; $base-hover: #272522; $base-subtle: #C4C0BD;
{
"color": {
"base": {
"value": "#312E2B",
"type": "color"
},
"onBase": {
"value": "#FFFFFF",
"type": "color"
},
"scale": {
"50": {
"value": "#F8F7F7",
"type": "color"
},
"100": {
"value": "#ECEBE9",
"type": "color"
},
"200": {
"value": "#D9D6D3",
"type": "color"
},
"300": {
"value": "#BCB8B3",
"type": "color"
},
"400": {
"value": "#9F9993",
"type": "color"
},
"500": {
"value": "#817A74",
"type": "color"
},
"600": {
"value": "#65615D",
"type": "color"
},
"700": {
"value": "#4A4745",
"type": "color"
},
"800": {
"value": "#32302F",
"type": "color"
},
"900": {
"value": "#201F1D",
"type": "color"
}
}
}
}