跳到主要内容
uencoder

如何Mix Colors

Blend two 或更多 colors 在不同颜色 spaces 具有 adjustable ratios.

问题

你需要blend two colors 到创建中级颜色, 如为 hover 声明或 transition.

前置条件

  • Understanding 的颜色 models
  • Knowledge 的 blending modes

步骤

  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.

    输入
    mix in OKLCH
    输出
    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.

    输入
    red + blue, 50/50
    输出
    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).

    输入
    color-mix(in oklch, #FF0000 50%, #0000FF)
    输出
    #800080 (approx)

预期结果

blended 颜色该 represents specified mix 的输入 colors.

常见错误

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.

排障指引

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

安全限制

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

相关工具

参考链接