Tailwind CSS v3 color · RAL Classic color
Tailwind neutral-950 #0A0A0A
Tailwind CSS v3's neutral-950 is #0A0A0A. It is also the usual sRGB approximation of RAL 9005 Jet black. It is a near-black in the neutral family. In OKLCH it sits at lightness 0.145 with chroma 0.000, too low for hue to matter. The nearest CSS named color is black (#000000), ΔE2000 1.6 away.
- Relative luminance
- 0.0030
- OKLCH L · C · h
- 0.145 · 0.000 · —
- Best text
- White 19.79:1
- Hue family
- Neutral
#0A0A0A color codes
- HEX
#0A0A0A- RGB
rgb(10, 10, 10)- HSL
hsl(0, 0%, 4%)- OKLCH
oklch(0.145 0.000 0)- OKLab
oklab(0.145 0.000 0.000)- CIELAB (D65)
L* 2.74, a* 0.00, b* 0.00- XYZ (D65)
X 0.29, Y 0.30, Z 0.33- CMYK (naive)
cmyk(0%, 0%, 0%, 96%)
CIELAB and XYZ use the D65 white point; CSS lab() uses D50, so paste the OKLCH or HEX value into stylesheets. CMYK here is a plain formula with no press profile.
RAL and RAL Classic are trademarks of RAL gGmbH, which this site is not affiliated with. The sRGB value is an approximation of the printed swatch; check a physical RAL color card before you specify a paint.
Legibility
Contrast: is #0A0A0A accessible?
White text on it reaches 19.79:1, passing AAA. Black text fails at 1.06:1.
WCAG 2 gives the same ratio whichever color is the text; APCA does not, so its Lc changes sign and size with polarity.
Open the Contrast System-
Black text on it
1.06:1
- AA fails
- AA large fails
- AAA fails
- APCA Lc 0
Text is here, unreadable at 1.06:1
-
White text on it
19.79:1
- AA passes
- AA large passes
- AAA passes
- APCA Lc −107
-
As text on black
1.06:1
- AA fails
- AA large fails
- AAA fails
- APCA Lc 0
Text is here, unreadable at 1.06:1
-
As text on white
19.79:1
- AA passes
- AA large passes
- AAA passes
- APCA Lc +105
Nearest versions that pass 4.5:1
-
For text on white
#0A0A0A 19.79:1
It already reaches 19.79:1 on white, so no change is needed.
-
For text on black
#767676 4.62:1
Lightening its OKLCH lightness from 0.14 to 0.56 reaches 4.62:1 on black, keeping the hue.
Checking another pair? Use the Contrast Checker.
Studio
Adjust #0A0A0A live
Move lightness, chroma and hue in OKLCH, or drag on the map. The map is every lightness and chroma at the current hue: sRGB inside the solid area, Display P3 out to the dashed line.
Scale
Shades and tints of #0A0A0A
Eleven OKLCH lightness steps at this hue, each with its contrast against white and black. #0A0A0A sits at step 950.
Under each step, white and black text on it; a bold figure passes 4.5:1.
Tailwind CSS v3 neutral scale
The real Tailwind palette, for comparison with the computed ramp above.
Gamut
How vivid #0A0A0A can get
A gray has no hue, so no gamut holds a more vivid version of #0A0A0A: more chroma would make it another color.
- sRGB
- Display P3
- Rec. 2020
- Dominant wavelength
- OKLCH chroma
- 0.000
- sRGB edge
- No hue
- Display P3 edge
- No hue
- Rec. 2020 edge
- No hue
- Dominant wavelength
- None, near white
- Excitation purity
- 0%
- Chromaticity
- x 0.3127, y 0.3290
Mixing
Mixing #0A0A0A
Each row is the same mix worked out in a different space, with the halfway color at its end. sRGB, which older CSS gradients use, can sag gray or dark in the middle; OKLab keeps the lightness steps even; OKLCH holds chroma and hue as it goes.
White #FFFFFF
- sRGB50%#858585
- OKLab50%#787878
- OKLCH50%#787878
Black #000000
- sRGB50%#050505
- OKLab50%#010101
- OKLCH50%#010101
/* A gradient and a mix, worked out in OKLCH */
background: linear-gradient(in oklch, #0a0a0a, white);
color: color-mix(in oklch, #0a0a0a 50%, white);
In use
#0A0A0A in an interface
A button, a link, a heading, a focused field, an icon and a chart line in this color, on a light page and a dark one. Each check is a WCAG 2 contrast minimum: 1.4.3 for text, 1.4.11 for the rest.
Light page
- Button labelText, 4.5:119.79:1 Passes
- Link and body-size textText, 4.5:119.79:1 Passes
- Large headingLarge text, 3:119.79:1 Passes
- Icons, borders and focus ringsNon-text, 3:119.79:1 Passes
Dark page
- Button labelText, 4.5:119.79:1 Passes
- Link and body-size textText, 4.5:11.05:1 Fails
- Large headingLarge text, 3:11.05:1 Fails
- Icons, borders and focus ringsNon-text, 3:11.05:1 Fails
Color vision
How #0A0A0A looks with color blindness
As a neutral it barely changes under any simulation, ΔE2000 0.0 at most.
Simulated with Machado et al. (2009) at full severity, in linear light.
Simulate a whole page What each type sees-
Protanopia
No working red (long-wavelength) cones
#0A0A0A ΔE2000 0.0
Imperceptible
Reads as near-black
-
Deuteranopia
No working green (medium-wavelength) cones
#0A0A0A ΔE2000 0.0
Imperceptible
Reads as near-black
-
Tritanopia
No working blue (short-wavelength) cones
#0A0A0A ΔE2000 0.0
Imperceptible
Reads as near-black
-
Achromatopsia
No cone color vision; lightness only
#0A0A0A ΔE2000 0.0
Imperceptible
Reads as near-black
Pairing check
A near-neutral has no complementary hue to pair with, so tell it apart from neighboring grays by lightness contrast alone.
Harmony
Color harmonies for #0A0A0A
A neutral has no hue to rotate, so every harmony collapses back to the same gray. Pair it with an accent color instead.
Or pair it by lightness: steps of its own scale as text on it, and what each can carry.
Build a lightness scale in Harmony Studio-
Body text, AAA
-
Body text, AAA
-
Decoration only, under 3:1
Code
Design tokens
Ready-to-paste tokens in six formats. Rename them to fit your system.
:root {
--color-neutral-950: #0a0a0a;
}
// tailwind.config.js — already built in as neutral-950;
// pin the v3 value explicitly like this:
module.exports = {
theme: {
extend: {
colors: {
neutral: { 950: '#0a0a0a' },
},
},
},
};
/* app.css — Tailwind CSS v4 */
@import "tailwindcss";
@theme {
/* v4 has its own neutral-950; this pins the v3 value. */
--color-neutral-950: oklch(0.145 0.000 0);
}
{
"color": {
"neutral-950": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0392, 0.0392, 0.0392],
"hex": "#0a0a0a"
},
"$description": "Tailwind CSS v3 neutral-950"
}
}
}
import SwiftUI
enum Palette {
static let neutral950 = Color(.sRGB, red: 0.039, green: 0.039, blue: 0.039, opacity: 1)
}
import androidx.compose.ui.graphics.Color
object Palette {
val Neutral950 = Color(0xFF0A0A0A)
}
Matches
The nearest match in each system
The closest CSS name, Tailwind shade, RAL Classic paint and Crayola crayon by ΔE2000; under 2 is hard to tell apart side by side. RAL and Crayola values approximate physical colors.
Tools
Open #0A0A0A in the tools
Each opens over this page. More colors live in the Color Library, and every color page is listed on the hub.
- Color InspectorEvery format, its names, contrast and color vision in one panel.
- Contrast SystemBlack and white text on this color, with fixes in both directions.
- Harmony StudioPalettes built from this color, walked to a contrast target if you ask.
- Color Space ConverterThe same color in 34 notations, with its gamut headroom.
- Color Name FinderThe nearest of 1,055 color names by ΔE2000.