Shades of Brown

← Shades generator

Dark orange that your eye insists on renaming, and ten keywords for it

No wavelength of light is brown. There is none in a rainbow and none out of a prism, because brown is the only family here with no spectral hue of its own. What we call brown is orange at low lightness or low saturation, and the name attaches only because the surround is brighter. Put a brown swatch on a black field and it stops being brown within a second or two, drifting back toward orange. That is not a rendering quirk; it is how the visual system assigns colour names relative to a reference white.

The hue column makes the argument better than any description. Chocolate sits at 25 degrees and saddlebrown at the same 25, with near-identical saturation; the only real difference between them is sixteen points of lightness. Peru is at 30, tan at 34, burlywood at 34. These are all oranges by measurement. The keyword brown, meanwhile, is at hue 0, a dark desaturated red, which is why it never quite matches the browns around it.

Every CSS brown name, with its contrast on white

The 20 named colors in the CSS keyword list that belong to this family, lightest first. The last two columns are the WCAG 2 contrast ratio against white and what that ratio passes for normal text — computed with the same function as the site's contrast checker, so the two never disagree.

NameHEXRGBOn whiteWCAG
cornsilk #fff8dc rgb(255, 248, 220) 1.07:1 fails
linen #faf0e6 rgb(250, 240, 230) 1.12:1 fails
blanchedalmond #ffebcd rgb(255, 235, 205) 1.17:1 fails
antiquewhite #faebd7 rgb(250, 235, 215) 1.17:1 fails
bisque #ffe4c4 rgb(255, 228, 196) 1.22:1 fails
moccasin #ffe4b5 rgb(255, 228, 181) 1.23:1 fails
navajowhite #ffdead rgb(255, 222, 173) 1.29:1 fails
wheat #f5deb3 rgb(245, 222, 179) 1.31:1 fails
peachpuff #ffdab9 rgb(255, 218, 185) 1.31:1 fails
burlywood #deb887 rgb(222, 184, 135) 1.86:1 fails
tan #d2b48c rgb(210, 180, 140) 1.97:1 fails
sandybrown #f4a460 rgb(244, 164, 96) 2.03:1 fails
rosybrown #bc8f8f rgb(188, 143, 143) 2.81:1 fails
peru #cd853f rgb(205, 133, 63) 2.99:1 fails
darkgoldenrod #b8860b rgb(184, 134, 11) 3.25:1 AA large
chocolate #d2691e rgb(210, 105, 30) 3.63:1 AA large
sienna #a0522d rgb(160, 82, 45) 5.62:1 AA
brown #a52a2a rgb(165, 42, 42) 7.08:1 AAA
saddlebrown #8b4513 rgb(139, 69, 19) 7.10:1 AAA
maroon #800000 rgb(128, 0, 0) 10.95:1 AAA

Half of these names are places or trades rather than descriptions. Sienna and burlywood come from a pigment and a timber, peru arrived as a geography, saddlebrown and chocolate as plain objects. Maroon is the outlier: it reached the web through the original sixteen HTML colours rather than the X11 file, and it follows the halving pattern shared with navy, teal and olive, being exactly half of red at #800000.

Tints, shades and tones of #8b4513

Built from one base color three different ways. Tints mix it toward white, shades toward black, and tones toward grey at the same lightness — which is why the tone row goes quiet rather than dark.

Tints

14%#9c6035
29%#ac7a56
43%#bd9578
57%#cdaf9a
71%#decabc
86%#eee4dd

Shades

14%#773b10
29%#63310e
43%#4f270b
57%#3c1e08
71%#281405
86%#140a03

Tones

14%#82461c
29%#7a4824
43%#71492d
57%#694b35
71%#604c3e
86%#584e46

The 50-950 scale

50#faf6f2
100#f6ece4
200#f1d5c1
300#ebb691
400#e78d4e
500#d3691d
600#b05718
700#8c4615
800#6a3612
900#4f290f
950#371e0b

Open this brown in the shades generator →

Using brown in an interface

Brown is the family that actually gives you readable text. Saddlebrown reaches about 7.10 to 1 against white and brown itself 7.08, both clearing AAA, while sienna at 5.62 passes AA comfortably. The pale end is the opposite: tan, wheat and burlywood are all under 2 to 1 and belong on backgrounds. The common mistake is pairing a warm brown text colour with a cool grey interface, where it reads as a mistake rather than a choice.

FAQ

Why is my brown just dark orange?
Because that is what brown is. Darkening an orange in HSL lowers lightness but leaves the hue where it was, so the result is measurably orange and reads as brown only against a lighter surround. If it still looks orange, the fix is usually to drop saturation as well as lightness, or to check that whatever sits behind it is bright enough to anchor the comparison.
What hex code is tan?
Tan is #D2B48C, rgb(210, 180, 140). It is a desaturated orange at hue 34 with lightness near 69 percent, which makes it a background colour: 1.97 to 1 against white, well below any text threshold. Burlywood is the same hue with more saturation, and wheat is lighter and yellower; at small sizes all three are hard to tell apart.
Is maroon a brown or a red?
By measurement it is red: #800000 is hue 0 at full saturation, simply dark. It sits in brown lists because dark reds are usually named as browns in ordinary speech, and because the keyword brown, #A52A2A, is also at hue 0 and only a little lighter. If you want a brown that is not secretly red, start from chocolate or peru instead.