Color Harmony

Complementary Colors: How to Use Opposites Without Clashing

What complementary colors are, common pairs with HEX codes, and how to balance them with one dominant color, muted versions and the 60-30-10 split.

By ColorOverflow Editorial TeamUpdated November 13, 20266 min readBeginner

Complementary colors sit directly opposite each other on the color wheel, 180 degrees apart. Put them side by side and each one looks stronger than it does on its own. That makes a complementary pair the quickest way to make something stand out, and also the easiest way to make a design feel loud.

Our guide Understanding Color Harmony: 7 Ways to Combine Colors introduces complementary colors alongside six other rules. This guide goes further: common pairs with HEX codes, why opposites clash, and practical ways to use them on a website, in a brand and in a room, with the contrast numbers for text on each.

Read the full guideUnderstanding Color Harmony: 7 Ways to Combine Colors

What makes two colors complementary

Hue is a position on the wheel, measured in degrees. A color's complement is the hue exactly halfway around, so you find it by adding 180 to the hue. Blue at 224 degrees has its complement at 44 degrees, a golden yellow. Because the two hues share nothing, the pair gives the strongest hue contrast the wheel can offer.

A blue at 224° and its complement at 44°, directly across the wheel.

Your eyes add to the effect. When two opposite hues touch, each pushes the other further away, so the blue looks bluer and the yellow looks warmer. Painters have used this simultaneous contrast for centuries to make a color glow. In a layout it does the same job: a small complementary accent draws the eye before anything else.

Common complementary pairs

These six pairs go around the digital wheel in 30-degree steps. Each color uses the same saturation and lightness (75% and 50% in HSL), so the only difference is the hue.

  • Red #df2020 (0°) and cyan #20dfdf (180°).
  • Orange #df8020 (30°) and azure blue #2080df (210°).
  • Yellow #dfdf20 (60°) and blue #2020df (240°).
  • Chartreuse #80df20 (90°) and violet #8020df (270°).
  • Green #20df20 (120°) and magenta #df20df (300°).
  • Spring green #20df80 (150°) and rose #df2080 (330°).
  • #DF8020
  • #2080DF
  • #DFDF20
  • #2020DF
  • #DF2080
  • #20DF80

Three of the pairs above, each opposite placed next to its partner.

Open in generatorPalette detailsVisualize

Look at how different these colors are in lightness, even though their HSL lightness is the same. The yellow and the blue look nothing alike in brightness, which is why blue and yellow pairs are so readable. Red and cyan, or rose and spring green, are much closer, and that's where trouble starts.

Why complementary colors clash

A complementary pair clashes when three things happen together: both colors are fully saturated, they appear in roughly equal amounts, and they're similar in lightness. The edges between them seem to flicker, and text in one color on the other becomes tiring to read.

Contrast ratios show the problem. Red #df2020 on cyan #20dfdf is only 2.90:1, below the 4.5:1 that WCAG asks for normal text, even though the two colors could hardly look more different. Hue contrast and lightness contrast are separate things, and readability depends on lightness.

How to use complementary colors without clashing

Let one color dominate

Pick one hue to carry the design and use its complement sparingly. The dominant color sets the mood, and the complement becomes a signal: a button, a highlight, a sale badge. Because the accent is rare, it stays special.

Use the 60-30-10 split

A simple way to set proportions is to give about 60% of the space to a neutral or a soft version of the dominant hue, 30% to the dominant hue itself, and 10% to the complement. The numbers are a guide, not a law, but they stop the two opposites from fighting for attention.

Mute one or both colors

Lowering saturation softens the tension while keeping the relationship. A dusty blue with a muted ochre feels calm and grown-up, yet the warm and cool contrast is still there. Muted pairs suit interiors, editorial design and brands that want to look considered rather than loud.

  • #42558A
  • #CDD3E4
  • #C0A459
  • #EDE6D4

The same blue and yellow opposites at lower saturation. White text on #42558a reaches 7.24:1.

Open in generatorPalette detailsVisualize

Separate them in lightness

Make one color deep and the other light. A navy with a pale peach, or a dark teal with a soft coral, keeps the hue contrast but removes the flicker, because the eye can rely on light and dark to tell them apart.

Example: a website

This palette comes straight from the generator's complementary rule with #1d4ed8 as the base. The rule gives the base in three steps (a shade, the color itself and a tint) and its complement in two (the color and a tint).

  • #13338C
  • #1D4ED8
  • #8EA7EC
  • #D8A71D
  • #ECD38E

The generator's complementary palette for #1d4ed8: blues with a golden accent.

Open in generatorPalette detailsVisualize

  • Navy #13338c for the header and footer, with white text at 11.17:1.
  • Blue #1d4ed8 for links and secondary buttons, with white text at 6.70:1.
  • Gold #d8a71d for the main call to action, with near-black #111827 text at 7.99:1.
  • White text on that gold is only 2.21:1, so the button needs dark text.
  • Pale gold #ecd38e for a highlight band, with near-black text at 12.05:1.

Gold on blue is 3.02:1, enough for a large icon or a bold heading but not for body text. Keep the gold for shapes with dark text on top, and the page stays readable.

Example: a brand

With the deep teal #0f766e as the base, the generator's complementary rule returns a deep wine red, #760f17. Both are dark, so together they feel rich rather than loud. A brand could use the teal as its main color and the wine for a secondary mark or packaging details.

  • #0A4D48
  • #0F766E
  • #87BBB7
  • #760F17
  • #BB878B

Generator output for #0f766e. The tints are muted because the base is dark.

Open in generatorPalette detailsVisualize

  • White text on teal #0f766e: 5.47:1, passes AA.
  • White text on wine #760f17: 11.34:1, passes AAA.
  • Teal on wine: only 2.07:1. They work side by side as blocks of color, not as text on each other.

Example: a room

Interiors rarely use complementary colors at full strength. A grayed sage green and a grayed mauve are opposites on the wheel, but at low saturation they sit together quietly: sage walls, a mauve throw or armchair, and natural wood to tie them together.

  • #465D49
  • #6B8F71
  • #B5C7B8
  • #8F6B89
  • #C7B5C4

The generator's complementary rule for sage #6b8f71. Near-black text reaches 9.99:1 on the pale sage and 9.15:1 on the pale mauve.

Open in generatorPalette detailsVisualize

Those ratios matter if the palette also goes on printed signs, menus or labels in the space. For a better feel of the room itself, preview the palette in the Palette Visualizer's interior scenes.

Palette GeneratorPick a color, apply a harmony rule and refine your palette.

When to choose something else

If a complementary pair still feels too tense, or you need a third color, try split complementary. It swaps the direct opposite for the two hues beside it, which keeps most of the energy with less strain. Our guide to split complementary colors covers it in detail. If you want calm rather than contrast, analogous or monochromatic schemes are the better fit.

Color Wheel ExplorerDrag a color around the wheel and watch each harmony rule update.Read the full guideSplit Complementary Colors: A Softer Way to Use Contrast

Quick checklist

  1. Pick one dominant hue and keep its complement to about a tenth of the design.
  2. Make the two colors clearly different in lightness, or mute at least one of them.
  3. Use neutrals for most backgrounds and body text.
  4. Never put text in one complement on the other at similar lightness.
  5. Check every text pair against 4.5:1, and every large heading or icon against 3:1.

The Contrast Checker tests any pair and, when one fails, suggests the nearest passing color with the same hue, which is often all a complementary accent needs.

Contrast CheckerTest a text and background pair against WCAG AA and AAA.

Put it into practice

Unsaved changes

“” has changes that aren't saved to your wishlist. Save them before continuing?