What Colors Make Purple? (Mixing Recipes)
What colors make purple? Red and blue, mixed as paint — the same answer every color wheel has given since grade school. But it leaves out why so many red-and-blue mixes come out closer to a bruise than a violet. The specific red and the specific blue you reach for decide that, and the whole recipe changes again once you're picking purple on a screen instead of a palette.
Paint and screens build purple through two different systems, and a clean result in either one comes down to details the word “purple” glosses over. This covers both: the pigment bias that separates a vivid violet from a muddy one, the tints and shades that give purple its whole family, from lavender to indigo, and the exact channel math that makes red-plus-blue light behave nothing like red-plus-blue paint.
What Colors Make Purple in Paint (Reds, Blues and Undertones)
Red and blue make purple in the most literal sense — two of the three traditional paint primaries, mixing into the secondary that sits directly between them on the wheel. (If primaries, secondaries and tertiaries need a refresher, the full breakdown is here.) Mix any red with any blue and something purple comes out. But no red pigment is a pure primary, and no blue pigment is either. Every tube carries a lean toward one of its neighbors, and that lean decides whether the result reads as an actual hue or as a flat, brownish gray.
A blue pigment can lean toward green, which is really a trace of yellow riding along, or it can lean toward red-violet. A red pigment can lean toward orange, another route yellow sneaks in, or it can lean toward blue-violet. Whichever way a pigment leans is its bias, sometimes called its undertone, and it matters more for purple than for almost any other secondary color: purple's exact complement on the paint wheel is yellow. Any bias that carries a trace of yellow into the mix is working directly against the color you're aiming for.
That warm-versus-cool split is the same lens the warm vs cool colors guide uses for temperature in general — here it's just applied one level more specific than “is blue warm or cool,” down to the particular tube sitting in your hand.
How to Mix Violet: Warm Blue + Cool Red
Pair a blue that already leans toward violet with a red that already leans toward violet, and neither pigment fights the direction you're going. French Ultramarine is the standard warm, red-violet-biased blue. Alizarin crimson and quinacridone magenta are the standard cool, blue-violet-biased reds. Mix either pair and the result jumps to a real, saturated violet with very little coaxing — both pigments already lean that way, so the mix isn't fighting either one.
That's the split-primary approach most mixing guides teach and fewer explain clearly: keep a warm and a cool version of each primary on the palette, and reach for whichever pair already leans toward your target instead of the pair that just shares a color-family name. So how do you make purple that doesn't drift toward gray? “Blue” and “red” aren't specific enough instructions. “Ultramarine” and “alizarin crimson” are.
- Warm blue, violet-leaning: French Ultramarine, ultramarine blue.
- Cool blue, green-leaning: Phthalo Blue, cerulean, Prussian Blue.
- Cool red, violet-leaning: alizarin crimson, quinacridone magenta, permanent rose.
- Warm red, orange-leaning: Cadmium Red, naphthol red, pyrrole red.
Warm Red + Cool Blue: Why That Pairing Goes Muddy
Swap either pigment for its opposite-biased sibling and the same two-color recipe stops working. Cadmium Red leans toward orange, which means it's already leaning toward yellow. Phthalo Blue and cerulean lean toward green, which is also, indirectly, a lean toward yellow — green sits closer to yellow on the wheel than violet does. Mix a yellow-leaning red with a yellow-leaning blue and you're not just missing the violet lean both pigments needed. You're actively adding purple's own complement into the mix.
The result settles into something like #5E4C67 instead of #8E22C3 at the same lightness — a flat, grayish plum instead of a violet. It's the exact same cancellation that turns a mixed brown a shade duller every time another color joins the mix; what colors make brown walks through that mechanism in more depth.
Why Purple Turns Pink When You Add White
Add white to a purple mix and it doesn't always fade evenly. Sometimes it slides toward pink faster than expected, even from a mix that looked properly violet at full strength. White carries no hue of its own to counteract anything, so as the mix dilutes, whichever bias was sitting under the surface becomes easier to see. A purple built on a slightly red-heavy ratio reads as violet at full saturation and reads as pink two steps lighter, because the same undertone that intensity was masking is now most of what's left.
The fix is rarely a different pigment. It's a different ratio. Nudge the blue up a notch before adding white, so the mix has more blue left to lose before it crosses into pink.
Shades of Purple: From Pale Lavender to Deep Violet
Purple covers one of the widest stretches of the hue wheel used in everyday design, and the shades of purple people reach for by name don't always land where you'd guess. Lavender (#E6E6FA) sits at 240°, the exact hue of pure blue, just pushed to 94% lightness. It reads as purple mostly through association, not because its hue has shifted very far from blue at all.
The CSS keyword violet plays a similar trick in the other direction. #EE82EE sits at 300°, the same hue as magenta, at 72% lightness — a pale, pinkish purple closer to orchid than to the deep, ultraviolet-flower violet most people picture. That deeper, blue-leaning violet is closer to blueviolet (#8A2BE2, 271°) or darkviolet (#9400D3, 282°), both noticeably more blue than the CSS keyword its name promises.
Indigo (#4B0082, 275°) sits in that same blue-leaning cluster, darker and more saturated — one of the closest named colors to what most people mean by “deep purple.” Purple itself, the plain CSS keyword (#800080), sits back at 300°, magenta's hue, at half the lightness. Rebeccapurple (#663399, 270°, added to the CSS spec in 2014) lands almost exactly between blue and magenta, a genuinely balanced violet with no lean either way.
:root{
--purple-50: #F5EBF9;
--purple-100: #DAB8EA;
--purple-300: #B675D7;
--purple-500: #7F30A6;
--purple-700: #4B1D63;
--purple-900: #240E2F;
} Name each step by the job it does in an interface rather than by memorizing the hex — a pale tint for a highlighted background, the mid-tone for an active button or badge, the darkest shade for text set on a light card.
Purple On a Screen: Red + Blue Light vs Red + Blue Paint
None of the undertone problem above applies once you're picking purple on a screen. A screen's red and blue are already pure numbers in the RGB channels, with nothing underneath them to lean toward yellow or anything else. There's no pigment bias to manage, because there's no pigment.
There's still a real recipe, though, and it depends on how the two colors combine. Average pure red (#FF0000) and pure blue (#0000FF) — take the midpoint the way a simple digital blend tool might — and the result is (128, 0, 128): #800080, the exact hex behind the CSS keyword purple. It stays a real color for a channel reason, not a wheel one: red lights only the red channel and blue only the blue, so their average keeps both. Blue and yellow are the awkward pair — yellow, at (255, 255, 0), is the channel-mirror of blue, so averaging them fills every channel equally and washes out to gray, the trap what colors make green walks through. A hue wheel echoes the same split — red and blue sit 120° apart, blue and yellow a full 180° — but it's the channel math that decides the result, not the geometry.
Combine the two additively instead of averaging them — closer to how overlapping stage lights or the RGB primaries actually stack — and the result is the brighter, fully saturated version of that same hue: full-intensity red light plus full-intensity blue light sums to (255, 0, 255), magenta. The CSS keywords purple (#800080) and magenta (#FF00FF) share that exact hue, 300°; between those two specific swatches the difference is lightness — purple is that hue at half the RGB value. That is a fact about those two named colors, not a rule for purple in general: most purples people actually reach for sit somewhere between magenta and blue, not dead on magenta's hue.
That non-opposite relationship also means a plain CSS gradient from red to blue doesn't need any special handling to look purple at its midpoint. A blue-to-yellow gradient needs a hue-aware blend space to dodge the gray band sitting between them; a red-to-blue gradient already lands on a real purple in plain RGB, because red and blue were never opposite to begin with.
Test the Ratios Yourself
What colors make purple has two correct answers depending on whether you're holding a brush or a color picker, and both come down to numbers you can check instead of eyeballing.
Open the Color Mixer and drop in a blue and a red. Push the ratio slider toward 60/40 blue-heavy and watch the resulting hue lean more violet; then switch the blend mode to Multiply, which behaves closer to how pigments actually overlap than a flat average does.
Pull up the Color Picker and drag the hue ring to somewhere between 260° and 300°. That's the direct route to purple on a screen — watch the red and blue channels climb together while green stays locked at zero.
Once you've settled on a purple, open Color Harmonies and drop that hex in as the base. A complementary scheme pulls a yellow-green accent from directly across the wheel — the same color that turns a purple muddy if it sneaks into the mix instead of staying on its own swatch. An analogous scheme grabs the neighboring magenta and blue-violet instead, for a palette that stays in the same family.
Ready to try it? Every tool on Paleta runs free in your browser — no sign-up, nothing uploaded.
Explore the tools →