When is a near-black better than pure black for text and backgrounds?
On this page
A near-black is the better default for most text and surfaces, while pure black should be reserved for moments you deliberately want at maximum contrast. A slightly off-black, a very dark gray with a hint of the design’s underlying hue, reads as softer and more refined, where true pure black can feel harsh on a bright screen and create a contrast so heavy it edges into glare. The rule of thumb is simple: soften by default, and go pure on purpose.
The reason comes down to how emissive screens behave versus the ink-on-paper intuition that “blacker is better.” On paper, the darkest available black is fine because paper does not emit light. A screen does, so pure black text on a bright white background produces an extreme luminance gap that can shimmer slightly at the edges, strain the eye over long reading, and feel rigid and clinical. Nudging the text to a near-black trims that gap just enough to feel comfortable while still reading as unmistakably “black” to anyone who is not comparing swatches side by side. The same logic applies to dark surfaces: a pure black background can look like a void and make overlaid elements feel like they are floating in nothing, whereas a near-black surface gives the interface a sense of material and lets subtle elevation read.
A concrete example: open a long-form article page where the body text is set in true #000000 on pure white. It looks fine in a thumbnail, but read a few paragraphs and the page feels stark and a little tiring, the letters almost vibrating against the background. Swap the text to a deep charcoal that is still clearly dark, and the page immediately feels calmer and more premium without losing any legibility, because the contrast is still strong, just not punishing. The same swap helps a dark-themed app: a pure black canvas with floating white cards looks flat and harsh, while a very dark gray canvas lets those cards sit in space with believable depth.
The qualifier is that pure black is not a mistake, it is a tool with a narrower job. When you genuinely need the strongest possible contrast, accessibility-critical text, fine hairline details that must not disappear, OLED screens where true black saves power and yields deep blacks intentionally, or a stark high-contrast aesthetic chosen on purpose, pure black is the right call. The decision is also about contrast outcomes, not taste alone: softening should never push text below a comfortable, verifiable contrast ratio against its background. As a working guide, the widely used WCAG AA threshold is around 4.5 to 1 for normal-size text, but treat that as a value to verify with a contrast checker rather than a number to assume, and let near-black save its softness for cases that still clear the bar.
So default to a near-black for body text and most surfaces, choosing a dark gray that still reads as black to the eye, and keep pure black for the specific moments where maximum contrast is the goal. Before you ship either, run the pair through a contrast checker to confirm the text is comfortably legible, and let that measured result, not habit, decide how far you soften.