Color Memory Game
By John K.··16 min read

Shades of brown: 68 names, hex codes, and the family that turns the color down

Every named shade of brown with its hex code, measured in CIELAB and compared pairwise with CIEDE2000. Named browns use 58 percent of the chroma available to them at their own hue and lightness. Every other color family uses 64 to 90 percent. Brown is the only family English defines by leaving saturation on the table.

Search for shades of brown and the first thing every guide tells you is that browns come in warm and cool. Warm browns have golden or red undertones, caramel and cognac and camel. Cool browns lean gray or blue or plum, taupe and ash and mushroom. Pick the one that matches your undertone and the room, or your face, will look right.

The advice works. The explanation for it is wrong, and you can prove that with two hex codes. Taupe, the shade every one of those guides files under cool, is #483c32. Caramel, the one they all file under warm, is #af6e4d. Convert both to CIELAB and read the hue angle:

  • Taupe, #483c32. Hue 67.2 degrees, chroma 8.8.
  • Caramel, #af6e4d. Hue 52.4 degrees, chroma 36.7.

Higher hue angles in this part of the wheel mean closer to yellow, lower means closer to red. The cool brown is 14.8 degrees nearer to yellow than the warm one. It is not bluer. It is not plummier. It is the same warm arc of hue with a quarter of the color in it. Whatever people are responding to when they call taupe cool, it is not the hue.

I collected 68 named browns, took every brown, tan and beige keyword in the CSS named-color set plus the names that recur across mainstream shade references with a settled hex value, converted all of them to CIELAB and ran all 2,278 pairs through CIEDE2000. It is the same measurement I ran on the reds, the oranges, the yellows, the greens, the blues, the purples and the pinks. Brown came back different from all seven, and not in the way I expected.

Every other family in this series is a hue with names attached. Brown is not. Brown is the region of the warm arc where English decided that having less color deserves its own word, and the numbers say so plainly: the average named brown uses 58 percent of the chroma that sRGB can actually deliver at that name's own hue and lightness. The average named orange uses 90 percent. No other family drops below 64.

The 68 named browns, dark to light, with hex codes

Sorted by CIELAB lightness in five bands, darkest first. L* is lightness on a 0 to 100 scale, C* is chroma, and hue is the CIELAB hue angle in degrees. For orientation, pure sRGB red sits at hue 40.0 and pure sRGB yellow at 102.9, so the entire brown vocabulary lives between those two landmarks.

Deepest, below L* 35

Twelve names, and this is where brown does the job no other color word will take. Blue has navy down here and green has forest, but both are modifiers on a brighter parent. Brown at L* 20 is still just brown.

  • Black bean, #3d0c02. L* 11.0, C* 28.3, hue 34.9.
  • Dark sienna, #3c1414. L* 12.7, C* 22.1, hue 26.7.
  • Rosewood, #65000b. L* 19.2, C* 47.9, hue 31.4. Also the darkest member of the red list, which claims it too.
  • Bistre, #3d2b1f. L* 19.3, C* 12.8, hue 59.7. Soot from burnt beechwood, used as ink since the fourteenth century.
  • Café noir, #4b3621. L* 24.5, C* 18.0, hue 69.1.
  • Maroon, #800000. L* 25.5, C* 61.3, hue 38.4. A CSS keyword, and the highest chroma in this band by a factor of two.
  • Taupe, #483c32. L* 26.3, C* 8.8, hue 67.2. Chroma 8.8 is barely a color at all.
  • Van Dyke brown, #664228. L* 31.5, C* 25.4, hue 60.3.
  • Dark brown, #654321. L* 31.6, C* 28.4, hue 67.4. The hex code is 6, 5, 4, 3, 2, 1 in order, which is why it stuck.
  • Sepia, #704214. L* 32.7, C* 38.2, hue 65.3. Named after cuttlefish ink.
  • Chocolate, traditional, #7b3f00. L* 33.5, C* 49.1, hue 63.0. Not the CSS keyword of the same name, which is 22 points lighter.
  • Burnt umber, #8a3324. L* 33.8, C* 46.1, hue 38.2.

Dark, L* 35 to 50

Fourteen names, and the band where the brown vocabulary is doing its heaviest lifting. This is also where the browns and the oranges overlap outright: sienna and rust appear on both lists.

  • Liver, #674c47. L* 35.0, C* 13.0, hue 34.9. The lowest chroma utilisation in the entire set at 18 percent.
  • Bole, #79443b. L* 35.0, C* 26.6, hue 35.2.
  • Russet, #80461b. L* 36.1, C* 41.3, hue 59.0.
  • Coffee, #6f4e37. L* 36.2, C* 22.0, hue 60.4.
  • Cordovan, #893f45. L* 36.6, C* 34.2, hue 19.7. The only name in the set with a hue angle below 20, which puts it past red on the way to pink.
  • Saddle brown, #8b4513. L* 37.5, C* 48.8, hue 57.2. A CSS keyword.
  • Brown, #a52a2a. L* 37.5, C* 58.3, hue 31.6. The CSS keyword called brown, and one of the least brown-looking colors in this list. More on that below.
  • Chestnut, #954535. L* 39.4, C* 41.2, hue 38.3.
  • Sienna, #a0522d. L* 43.8, C* 46.2, hue 50.6. A CSS keyword, and the darkest member of the orange list as well.
  • Rust, #b7410e. L* 44.1, C* 68.6, hue 48.2.
  • Raw umber, #826644. L* 45.2, C* 24.3, hue 74.5.
  • Mahogany, #c04000. L* 45.5, C* 75.1, hue 49.0. The highest chroma in the whole set, and 99 percent of what sRGB can do at that lightness and hue. It is a brown name on an unambiguously orange color.
  • Redwood, #a45a52. L* 46.7, C* 34.5, hue 31.6.
  • Golden brown, #996515. L* 47.2, C* 51.4, hue 73.6.

Mid, L* 50 to 70

Twenty names, the most populated band, and the one where the warm and cool split people talk about is actually visible in the numbers. Mocha at chroma 15.7 and ochre at chroma 63.1 are four lightness points apart and four times apart in color.

  • Shadow, #8a795d. L* 51.7, C* 17.9, hue 83.3.
  • Ruddy brown, #bb6528. L* 51.9, C* 56.4, hue 57.8.
  • Pale brown, #987654. L* 52.1, C* 25.3, hue 70.0. Another hex code that survives on being easy to type.
  • Caramel, #af6e4d. L* 52.7, C* 36.7, hue 52.4.
  • Mocha, #967969. L* 53.1, C* 15.7, hue 56.0.
  • Chamoisee, #a0785a. L* 53.6, C* 25.4, hue 62.7.
  • Copper, #b87333. L* 54.8, C* 50.3, hue 64.5.
  • Café au lait, #a67b5b. L* 55.1, C* 27.1, hue 62.3.
  • French beige, #a67b5b. L* 55.1, C* 27.1, hue 62.3. The same hex code as café au lait, to the digit.
  • Cinnamon, #d2691e. L* 56.0, C* 67.8, hue 56.9.
  • Chocolate, #d2691e. L* 56.0, C* 67.8, hue 56.9. The CSS keyword, and the same hex code as cinnamon.
  • Beaver, #9f8170. L* 56.3, C* 16.2, hue 56.7.
  • Ochre, #cc7722. L* 58.2, C* 63.1, hue 64.3.
  • Bronze, #cd7f32. L* 60.2, C* 57.6, hue 65.3.
  • Peru, #cd853f. L* 61.8, C* 52.5, hue 65.9. A CSS keyword, 2.0 ΔE from bronze, which is close to the limit of what a trained eye separates side by side.
  • Burnt sienna, #e97451. L* 62.0, C* 58.4, hue 43.2.
  • Rosy brown, #bc8f8f. L* 63.6, C* 18.3, hue 21.2. The most isolated name in the set, 11.7 ΔE from its nearest neighbour.
  • Camel, #c19a6b. L* 66.1, C* 31.3, hue 74.5.
  • Fallow, #c19a6b. L* 66.1, C* 31.3, hue 74.5. Camel again, under a second name.
  • Light brown, #c4a484. L* 69.4, C* 22.2, hue 71.4.

Light, L* 70 to 85

Seven names, and the band where the word brown starts disappearing from the labels. Sandy brown at L* 74.0 is the lightest name in the set that still contains the word.

  • Ecru, #c2b280. L* 72.8, C* 27.7, hue 93.6.
  • Dark khaki, #bdb76b. L* 73.4, C* 40.3, hue 102.6. A CSS keyword whose hue angle matches pure yellow to a fifth of a degree.
  • Fawn, #e5aa70. L* 73.9, C* 41.0, hue 68.6.
  • Sandy brown, #f4a460. L* 74.0, C* 52.2, hue 63.8. A brown name delivering, by any measurement, an orange.
  • Tan, #d2b48c. L* 75.0, C* 24.9, hue 78.4. A CSS keyword, and the word that takes over from brown above this point.
  • Burlywood, #deb887. L* 77.0, C* 30.8, hue 76.8.
  • Desert sand, #edc9af. L* 83.4, C* 19.8, hue 63.4.

Near-white, L* 85 and above

Fifteen names, not one of which uses the word brown, and most of which you would call off-white if someone put them on a wall. They belong to the brown family by hue and by ancestry, and to the white family by appearance.

  • Almond, #efdecd. L* 89.4, C* 10.9, hue 73.7.
  • Peach puff, #ffdab9. L* 89.4, C* 22.5, hue 69.0.
  • Wheat, #f5deb3. L* 89.4, C* 24.1, hue 86.4.
  • Navajo white, #ffdead. L* 90.1, C* 28.6, hue 80.9.
  • Khaki, #f0e68c. L* 90.3, C* 45.9, hue 101.3. Chroma 46 at lightness 90, which is the most color anything in this band carries.
  • Moccasin, #ffe4b5. L* 91.7, C* 26.5, hue 84.7.
  • Bisque, #ffe4c4. L* 92.0, C* 19.5, hue 76.9.
  • Antique white, #faebd7. L* 93.7, C* 11.7, hue 80.9.
  • Blanched almond, #ffebcd. L* 93.9, C* 17.2, hue 82.9.
  • Papaya whip, #ffefd5. L* 95.1, C* 14.6, hue 85.0.
  • Linen, #faf0e6. L* 95.3, C* 6.3, hue 74.4.
  • Beige, #f5f5dc. L* 95.9, C* 12.8, hue 109.2. Past yellow's hue angle, which makes beige the only name here that has crossed out of the brown arc entirely.
  • Old lace, #fdf5e6. L* 96.8, C* 8.2, hue 88.8.
  • Seashell, #fff5ee. L* 97.1, C* 5.0, hue 64.6. The lowest chroma in the set.
  • Cornsilk, #fff8dc. L* 97.5, C* 14.5, hue 98.8.

Brown is the family that declines the color on offer

Here is the measurement that separates brown from everything else in this series. For each named color, I found the maximum chroma sRGB can produce at that color's own hue angle and own lightness, by scanning all 16.7 million values in the cube, then divided the name's actual chroma by that ceiling. The result is a percentage: how much of the available color does this name use?

  • Orange: 90.1 percent
  • Yellow: 86.3 percent
  • Red: 85.3 percent
  • Pink: 83.4 percent
  • Blue: 83.0 percent
  • Green: 73.7 percent
  • Purple: 64.3 percent
  • Brown: 57.6 percent

Figures are for names below L* 85, because above that the gamut narrows to a needle and the ratio stops meaning anything. Brown comes last under either cut, and it is the only family whose average name leaves more than a third of the available color unused. Purple has a gamut excuse, since sRGB is genuinely mean to violet. Brown has no excuse at all. It sits at hue 63, the most generous neighbourhood in the whole cube, next door to the hue that peaks at chroma 85.

Individually it is starker. Taupe sits at L* 26.3 where sRGB offers chroma 39.7, and uses 8.8, which is 22 percent. Mocha sits at L* 53.1 where 75.6 is available, and uses 15.7, which is 21 percent. Liver uses 18 percent. These are not colors that ran out of room. They are colors that were named for the absence of color, and English gave the absence its own word instead of calling them dull orange.

Compare what happens on the same hue when the chroma is left in. Mahogany, #c04000, is at 99 percent of the ceiling. So is traditional chocolate at 97 and maroon at 98. Every one of those reads as red or orange to most people, and the arguments about whether mahogany is really a brown are arguments about exactly this number.

Warm and cool browns are a chroma story, not a hue story

Now the undertone advice can be tested properly. I took the six names in the set that the design and beauty literature consistently files as cool browns and the eight it files as warm, and averaged each group:

  • Cool group, taupe, mocha, beaver, shadow, liver and rosy brown: mean hue 53.3 degrees, mean chroma 15.0.
  • Warm group, caramel, camel, copper, bronze, chestnut, mahogany, ochre and golden brown: mean hue 60.3 degrees, mean chroma 50.8.

The chroma difference is 3.4 times over. The hue difference is seven degrees, and it runs the wrong way: the cool group averages closer to red, the warm group closer to yellow. If temperature in browns were an undertone in the usual sense, the cool set would be drifting toward blue. It is not drifting toward blue. It is not drifting anywhere. It is just quieter.

This is not a small correction to the advice, it changes what you do with it. If you want a cooler brown, the move is not to add blue or gray pigment in the hope of shifting the undertone. The move is to reduce chroma and leave the hue where it is. Every named cool brown in the set is what you get by desaturating a warm one. Taupe is not a bluish brown, it is coffee with the color turned down two thirds.

The reason the blue and gray language persists is that low chroma reads as cool in every hue family, which I have written about in warm and cool colors. A desaturated color looks recessive and distant, and distance is coded as cool because atmospheric haze desaturates far-away things. People correctly perceive a temperature and then reach for the wrong axis to explain it.

Brown gets closer to gray than any other color word

The same fact shows up from a different angle. For every named color, I computed the CIEDE2000 distance to the pure neutral gray of identical lightness, the one with a and b both at zero. That number is how far the name is from being no color at all.

  • Mean distance from neutral: brown 18.4 ΔE, blue 21.8, green 22.7, pink 23.4, purple 23.9, yellow 24.6, orange 25.7, red 25.9.
  • Names within 15 ΔE of their own gray: brown 18 of 68, which is 26 percent. Purple 8 of 87, pink 8 of 77, blue 7 of 63, green 7 of 80, yellow 6 of 85, orange 4 of 75, red 1 of 65.

A quarter of the brown vocabulary is describing colors that a viewer would accept as warm grays. Taupe is 7.9 ΔE from plain gray. Bistre is 11.1, liver 12.6, shadow 12.8, mocha 13.1. Red's single entry in that column is the whole difference between the two families: there is no such thing as a red that is nearly gray, because the moment a red loses its chroma English stops calling it red.

Brown does not have that problem, and that is the useful way to think about what the word is for. Brown is the licence English grants to low-chroma warmth. It is what lets you call something a color when a colorimeter would tell you it is mostly gray.

The vocabulary is a pantry, and the pantry has duplicates

Fifty-five of the 68 names, or 81 percent, are borrowed from a physical substance you could pick up. Foods and drinks: chocolate, coffee, mocha, caramel, cinnamon, chestnut, almond, wheat, café au lait, café noir, black bean, bisque. Woods and plants: mahogany, redwood, burlywood, russet, ecru, linen, cornsilk. Earths and pigments: umber in two grades, ochre, sepia, sienna, bistre, bole. Animals: beaver, camel, fawn, taupe from the French for mole, liver. Metals: copper, bronze. Made things: saddle, moccasin, cordovan, seashell, old lace.

Compare blue, where the names come from places and minerals and dyes: navy, azure, cerulean, cobalt, indigo, ultramarine, prussian. Blue names point at where the pigment came from. Brown names point at the thing itself, because for most of the history of the word the thing itself was the only reference available. Nobody needed a hex code for chestnut when chestnuts were on the ground.

That has a measurable consequence. Three pairs in this set are not merely similar, they are the same color under two names:

  • Café au lait and French beige, both #a67b5b. ΔE 0.00.
  • Camel and fallow, both #c19a6b. ΔE 0.00.
  • Chocolate and cinnamon, both #d2691e. ΔE 0.00. One is a CSS keyword shipped in every browser and the other is a spice.

Nine more pairs sit under ΔE 2.3, the threshold below which two colors are hard to separate side by side: chamoisee against café au lait at 1.62, linen against seashell at 1.82, blanched almond against papaya whip at 1.84, wheat against moccasin at 1.99, bronze against peru at 2.01, rust against mahogany at 2.12, moccasin against navajo white at 2.13, antique white against papaya whip at 2.28.

The interesting part is that this is not a crowding problem. Brown's mean nearest-neighbour separation is 4.15 ΔE, which is mid-pack for the series, looser than orange at 2.81 and yellow at 2.93. The family is not packed. It just has collisions, because names that arrived from unrelated substances got assigned the same code by different reference lists and nobody was checking. Wikipedia's own page on shades of brown says as much in its opening lines: there are no standardised names, and the same shade travels under several.

There is no such thing as a light brown

Seventeen names in this set sit above L* 75. Not one of them contains the word brown. Above that line the vocabulary switches to tan, burlywood, desert sand, wheat, bisque, almond, linen, beige. The lightest name in the entire corpus that still says brown is sandy brown at L* 74.0, and by every measurement sandy brown is an orange.

Contrast the other direction. Below L* 35 there are twelve names and four of them say brown outright, including the one that is nothing but the word and a modifier. Brown runs freely into the dark and stops dead going up. The word has a ceiling, not a floor.

This is the mirror image of what I found in the shades of orange piece, where the orange vocabulary stops at L* 44 and hands the dark end over to brown. Put the two results together and the whole warm arc reads as one vocabulary split by lightness at roughly L* 44 and again at roughly L* 75. Below 44 it is brown. Between 44 and 75 the two words fight, which is why arguments about mahogany and rust never resolve. Above 75 it is tan, and brown is not invited.

The same handover happens one hue over. In shades of yellow, olive #808000 and pure yellow #ffff00 share a hue angle of 102.9 degrees to one decimal place and differ only in lightness. English keeps issuing separate words for the dark ends of the warm hues and modifiers for the dark ends of the cool ones. Navy is a dark blue. Brown is not a dark anything, grammatically, even though it is measurably a dark orange with the chroma pulled back.

Why CSS brown is the worst brown in the list

The CSS keyword brown is #a52a2a: L* 37.5, chroma 58.3, hue 31.6. It uses 77 percent of the available chroma at that position and its hue is eight degrees off pure red. Ask a hundred people to describe it cold and a good share will say dark red or brick.

By the numbers in this article it is an outlier in its own family. Against the corpus mean of chroma 33.0, it carries 58.3. Against the circular mean hue of 63.5 degrees, it sits at 31.6, more than thirty degrees red of centre. Saddle brown, one of the other CSS keywords, is at hue 57.2 and is much closer to what people mean by the word, which is a strange outcome for a keyword set where one of the names is just brown.

The explanation is historical rather than perceptual. The CSS named colors inherited the X11 palette, which was assembled from whatever names workstation users had typed into their configuration files rather than from any colorimetric survey. If you are picking browns for real work, the palette's own recommendation is unreliable, and reading the hex code directly is faster than trusting the keyword.

Brown needs a neighbour to exist

One more thing that makes this family unlike the rest, and it is the reason the chroma finding matters perceptually rather than just arithmetically. Brown is what color scientists call a related color. It only appears in comparison to something brighter in view. Show a dim patch of hue 60 against a bright surround and people call it brown. Show the identical patch in isolation with nothing brighter nearby and they call it orange or yellow.

There is no brown light source anywhere. Traffic lights, LEDs, neon signs and lasers come in every color except brown, and this is why: a light seen in the dark has no brighter neighbour to be dim against. Brown is a judgement about ratio, not a wavelength. That fits the chroma result exactly. A family defined by having less of something needs a reference point for less, and the reference point is whatever else is on screen.

The practical version of the same fact is the one every painter knows: you cannot mix brown by adding pigment to a bright color, you get there by taking light away. I have gone through the mixing side of this in what colors make brown, and the CIELAB numbers above are the same statement in a different language.

What to do with this if you are picking browns

  • To cool a brown down, cut chroma and hold the hue. Multiply a and b by 0.6 in CIELAB, or in practical terms move toward the gray of the same lightness. Adding blue moves the hue out of the family and gives you the muddy result people complain about.
  • To warm a brown up, raise chroma before you touch the hue. Caramel to copper is a chroma move from 36.7 to 50.3 at almost the same hue, and it reads as a much warmer color.
  • For a monochromatic brown scheme, vary lightness and hold chroma proportional to the ceiling at each step. Holding chroma constant while lightness climbs is what makes browns go chalky at the light end.
  • If a brown has to look brown rather than orange, keep it under 60 percent of the available chroma at its lightness. Everything above 85 percent in this set is arguably an orange or a red wearing a brown name.
  • Do not trust a name to carry a value between references. Three pairs here share hex codes and twelve pairs are visually inseparable. Specify the code.

Test it against your own eyes

Numbers on a page are one thing and discrimination is another. Browns are the hardest family to judge by eye precisely because so many of them sit close to neutral, and small chroma differences at low chroma are much easier to see than the same differences at high chroma, which is exactly what the ΔE weighting in CIEDE2000 encodes. Our CIEDE2000 explainer covers why that weighting exists.

The main color memory game shows a target, takes it away and asks you to find it again, and browns are where most people discover their memory for low-chroma color is worse than their memory for vivid color. Hex Guesser is the sharper tool if you want to work on reading a code before you see the swatch, and Name That Color will show you quickly how little agreement there is between your names and anyone else's once you are in this part of the wheel. There is more on building that skill in train your eye for color.

The numbers, collected

  • 68 named browns, 2,278 pairs, mean separation 28.8 ΔE. Widest pair is black bean against beige at 86.3.
  • Mean lightness 58.1, mean chroma 33.0, circular mean hue 63.5 degrees. The mean chroma is the lowest of the eight families measured in this series by a margin of 14 points.
  • Named browns use 57.6 percent of the chroma sRGB offers at their own hue and lightness. Orange uses 90.1, red 85.3, purple 64.3.
  • Hue range 19.7 degrees, cordovan, to 109.2 degrees, beige. Every name in the set falls inside the warm arc between red and yellow.
  • 18 of 68 names sit within 15 ΔE of the neutral gray of their own lightness. No other family exceeds 8.
  • Cool browns average chroma 15.0 and warm browns 50.8, with a hue difference of seven degrees running toward red rather than blue.
  • 81 percent of the names are borrowed from a physical substance. Three pairs share a hex code exactly, and twelve pairs sit under ΔE 2.3.
  • Zero of the 17 names above L* 75 contain the word brown. The lightest one that does is sandy brown at L* 74.0.