Mauve is #E0B0FF. Red at 224, green at 176, blue at 255. That is the value in CSS-adjacent colour lists and in most design tools, it traces back to Maerz and Paul’s 1930 Dictionary of Color, and it is a pale, fairly saturated purple. The word itself is French for the mallow flower, and it took off in English in 1856, when an 18-year-old William Perkin, trying to make quinine, made the first synthetic dye instead and sold it under that name.
That is the answer you get from a hex lookup. It is not the answer you get from people. When Randall Munroe ran the xkcd colour survey in 2010, 222,500 sessions named more than five million colours, and the colour the public settled on for “mauve” was #AE7181. That is not a pale purple. It is a dusty, greyed pink, the colour of a bridesmaid dress in a 2020s wedding catalogue.
#E0B0FF · L* 78.53, C* 45.25, Oklab hue 311.6
#AE7181 · L* 54.44, C* 26.39, Oklab hue 2.5
So when someone asks whether mauve is pink or purple, the honest reply is that there are two mauves and they disagree. I wanted to know how badly, which side the vocabulary takes, and which of the two has the better claim to the name. The pipeline is the one the rest of this site uses: hex to linear sRGB under D65, into CIELAB and Oklab, distances in CIEDE2000, and one just noticeable difference taken as 2.3 units from our own JND measurement. For the dye, I built a spectral model, which is described below with its assumptions.
The two mauves are 11 JNDs apart
The distance between the reference mauve and the crowd’s mauve is 26.25 CIEDE2000 units, a little over 11 just noticeable differences. Our periwinkle and lavender, which nobody mistakes for each other, are 10.67 apart. This is not a shade difference. It is two colours.
All three dimensions move. The crowd’s mauve is 24.1 L* darker, it has a little over half the chroma (26.4 against 45.3), and its hue sits 50.9 degrees away on the Oklab circle, on the other side of the pink-purple gap. Every one of those on its own would be enough to tell the two apart at a glance.
Here is the comparison that made me stop and check the numbers. The crowd’s own lilac, #CEA2FD, is 4.65 units from the reference mauve. The crowd’s own dusty rose, #C0737A, is 5.77 units from the crowd’s mauve. Read those together: the colour the web calls mauve is the colour the public calls lilac, and the colour the public calls mauve sits about as close to dusty rose as it does to its own lighter shade. The two definitions do not overlap anywhere. They have each borrowed a neighbour’s colour.
#CEA2FD · 4.65 units from the reference mauve, 25.66 from the crowd's
#C0737A · 5.77 units from the crowd's mauve, 27.87 from the reference
Is mauve pink or purple? Ask the vocabulary
Hue angles do not come with words attached, so I used the method from our periwinkle piece: take the CSS named colours, keep the ones whose names put them in the pink or purple family and that have enough chroma to carry a hue, and look at where on the Oklab circle one family hands over to the other.
Between purple and pink there is a real gap, which is unusual. Pink and red bleed into each other all the time, but here the last purple word is orchid at 328.7 degrees, and the first word that is only pink is hot pink at 352.0. The one name inside that 23 degree gap is medium violet red, which needs two colour words to describe itself.
The reference mauve, at 311.6, is not near that gap. It sits between dark orchid and medium orchid, 17 degrees inside the purple words, a firmly purple hue. The crowd’s mauve, at 2.5, sits between pale violet red and plain pink, 10 degrees past the first pink word. That is a firmly pink hue. Neither of them is a borderline case. Each of the two mauves is unambiguous on its own, and they answer the question in opposite directions. The ISCC-NBS standard names give a third answer: their “opera mauve,” #B784A7, lands at 338.5, in the middle of the gap, as if someone had split the difference on purpose.
What Perkin’s dye actually looked like
If the name belongs to anything, it belongs to the dye. Mauveine is a mixture of closely related molecules, and the chemistry has been studied properly. A 2008 analysis of museum samples by Sousa and colleagues found that Perkin’s own product was mostly mauveine B, and that all the main components absorb light most strongly between about 547 and 550 nanometres. Edward Gurr’s reference measurement, on a sample over a century old, gives 548 nanometres.
A dye that absorbs at 548 removes yellowish green from white light and leaves the red and blue ends behind, and that leftover light is a purple. To put a hex code on it, I modelled the dye as one absorption band centred at 548 nanometres, 90 nanometres wide at half its height, sitting on a white surface under D65 daylight, and turned its strength up step by step. This is a simplification: a real dyed fabric has a substrate colour, scattering and a band shape that is not a perfect bell curve. So I reran it at 70 and 110 nanometres wide to check that the conclusion does not depend on the guess.
Two things come out of that table. First, the hue barely moves. At every strength in the table, from a faint wash to a strong violet, the dye sits within half a degree of 318.6 in Oklab. Strength changes how light and how vivid it is, not which colour it is.
Second, at a peak absorbance of 0.4 the modelled dye lands 2.76 units from #E0B0FF, about one JND, and the result held at the other two widths, at 2.36 and 4.79. If you let the band centre float freely, the best single band for the reference mauve is at 554 nanometres, six away from Gurr’s figure, and it fits to 0.49 units with no grey at all. The reference mauve is, to within about a just noticeable difference, a pale wash of Perkin’s dye. Maerz and Paul were describing the real thing.
#ECB0FD · Oklab hue 318.6, 2.76 units from #E0B0FF
No amount of fading turns the dye into the crowd’s mauve
The obvious explanation for the pink mauve is that people learned the word from old, faded or greyed-down versions of the purple. So I gave the model a second ingredient, a neutral grey absorber, and searched every combination of dye strength and grey for the closest possible match to #AE7181.
The closest Perkin’s dye can get is 11.71 units, about five JNDs, and it needs two thirds of the light soaked up by grey to get even that close. Without grey, the nearest concentration is 22 to 25 units away at every band width I tried. Grey can bring the lightness and chroma down, but it does nothing to the hue, and the hue is the problem: the dye is stuck at 318 degrees and the crowd’s mauve is at 2.5.
When I let the absorption band move, the crowd’s mauve does have a simple recipe. It is a band at 506 nanometres with about 65 percent of the light lost to grey, which fits to 0.52 units. That is 42 nanometres bluer than mauveine. A dye absorbing there takes out blue-green rather than yellow-green, and what is left over leans red. You can see the same split in the dominant wavelengths. All mauves are purples in the physical sense, mixtures with no single wavelength of their own, the same as magenta, so they are described by the wavelength they are missing. The reference mauve is missing 561 nanometres. The crowd’s mauve is missing 496.
So the pink mauve is not a damaged copy of the dye. It is a different colour that took over the word. My guess, and it is a guess, is fashion: in clothing, cosmetics and interiors the word has been attached to muted, greyed roses for long enough that this is the colour most people have actually seen labelled mauve. The survey records what the word means now. The hex code records what it meant in 1856.
The market agrees with the crowd
To check whether the xkcd result was a fluke of one survey, I pulled every colour with mauve as a word in its name from the open color-names list, which collects paint, brand and design-tool names. There are 166 of them, from Antique Mauve to Mauve Taupe.
Forty of the 166, nearly a quarter, are so close to grey that they have no meaningful hue at all (a CIELAB chroma below 8): Hint of Mauve, Hazy Mauve, Barely Mauve and their relatives are greys with a suggestion attached. Of the 126 that have a hue, 47 fall on the purple side of the gap, 38 on the pink side and 36 in the gap itself. The median hue is 340 degrees, the middle of the gap, and the median colour in CIELAB is a muted grey mauve, #A58F9B, 12.5 units from the crowd’s mauve and 21.3 from the reference.
Two more counts settle it. 113 of the 166, 68 percent, are closer to the crowd’s mauve than to the reference mauve. And only five are as saturated as #E0B0FF: Mauve itself, French Mauve, Perkin Mauve, Mauve It and Mauve Mystique. The names that point back to the dye’s history keep its saturation. Almost everything else on the market has drifted toward a dusty, greyed colour on the pink side.
#A58F9B · L* 61.6, C* 10.8, 12.5 units from the crowd's mauve
Mauve versus lilac, lavender and taupe
The neighbours come up constantly, so here is where they sit relative to both mauves.
- Lilac. The standard lilac, #C8A2C8, is a greyer, pinker purple: 10.64 units from the reference mauve and 17.43 from the crowd’s. The survey’s lilac is 4.65 from the reference. If you use the reference value, mauve is a more saturated lilac. If you use the everyday meaning, mauve is a pink and lilac is a purple.
- Lavender. CSS lavender, #E6E6FA, is a pale blue violet at Oklab hue 285.8, 26 degrees bluer than the reference mauve. Lavender leans blue, reference mauve leans red, and the crowd’s mauve has crossed into pink.
- Taupe. ISCC-NBS mauve taupe, #915F6D, is only 8.63 units from the crowd’s mauve and sits at almost the same hue, 1.3 degrees. Dusty mauve, a term with no standard hex, describes this zone: the crowd’s mauve with a little more grey.
- Old mauve. The ISCC-NBS #673147 is a deep wine, 51.27 units from the reference. It shares the crowd’s hue, at 355.8, and is simply much darker.
The verdict
- By the reference value, mauve is purple. #E0B0FF sits 17 degrees inside the purple vocabulary.
- By history, it is purple too. A model of Perkin’s 548 nanometre dye reproduces the reference value to about one JND, and no amount of grey moves the dye into pink.
- By usage, mauve is a dusty pink. The xkcd survey, and 68 percent of the commercial mauves, sit nearer #AE7181 than the reference, on the pink side of a 23 degree gap in the vocabulary.
My view is that both are correct, and the useful thing is to know which one you mean. If you are specifying a colour for a screen or a brand, give the hex, because “mauve” on its own will be read as pink by most people who see it, while the tool you type it into will hand you a purple. If you are describing a dress, you can safely say mauve and mean the dusty pink, because that is what the word means to the people listening. The one sentence that is wrong is the confident claim that mauve is obviously one or the other. On this word the two camps are more than 11 JNDs apart, and the reference value is the minority view.
If you want to test which mauve lives in your head, the name that color mode shows you a named colour and makes you pick the swatch, and mauve is exactly the kind of name where your instinct and the answer key can disagree. The hex mode runs the other direction, from code to colour, which is a good way to learn that E0B0FF is a purple before you put it on a wedding invitation. And the main colour memory game shows you a colour, takes it away and asks you to mix it back, which is the same test the word mauve has been failing for a century and a half: remembering a colour across a gap.
For the neighbours there is shades of purple, which explains why the pale end of the purple vocabulary is so crowded, shades of pink, which first noticed the gap between the two families, and the chartreuse and periwinkle pieces, which found the same thing in two other colour words: a reference value and a popular meaning that drifted apart.