Skip to content
uencoder
TUTORIAL

How to Mix Colors

Blend two or more colors in different color spaces with adjustable ratios.

Problem

You need to blend two colors to create an intermediate color, such as for a hover state or transition.

Prerequisites

  • Understanding of color models
  • Knowledge of blending modes

Steps

  1. 1. Choose the color space for mixing

    Mixing in RGB averages each channel independently, which can produce muddy midpoints. Mixing in HSL preserves hue and saturation better. Mixing in OKLCH (a perceptual space) produces the most natural-looking gradients. Choose based on the desired visual result.

    Input
    mix in OKLCH
    Output
    perceptually uniform
  2. 2. Set the mix ratio

    Specify how much of each color to use: 50/50 for an even blend, 70/30 for a bias toward the first color. The ratio determines the position of the result between the two colors. Some mixers support multiple colors with weighted ratios.

    Input
    red + blue, 50/50
    Output
    purple
  3. 3. Compute and output the result

    Convert both colors to the chosen color space, interpolate at the specified ratio, and convert back to the output format (HEX, RGB, HSL). Verify the result visually. For CSS, use the color-mix() function: color-mix(in oklch, red, blue).

    Input
    color-mix(in oklch, #FF0000 50%, #0000FF)
    Output
    #800080 (approx)

Expected result

A blended color that represents the specified mix of the input colors.

Common errors

Muddy midpoint in RGB mixing
RGB mixing can produce grayish midpoints for complementary colors. Mix in HSL or OKLCH for more vibrant results.
Hue wraps incorrectly
When mixing in HSL, hue is circular (0° and 360° are the same). Interpolate along the shorter arc to avoid going the long way around.

Troubleshooting

  • If the mixed color looks wrong, try a different color space.
  • CSS color-mix() is modern; check browser support or precompute the value.

Security limits

  • Color mixing is a pure calculation with no security implications.

Related tools

Related tasks

Ready to run it?

References