code: def _mix(color1, color2, weight=0.5, **kwargs):
      
      weight = float(weight)
      c1 = color1.value
      c2 = color2.value
      p = 0.0 if weight < 0 else 1.0 if weight > 1 else weight
      w = p * 2 - 1
      a = c1[3] - c2[3]
  
      w1 = ((w if (w * a == -1) else (w + a) / (1 + w * a)) + 1) / 2.0
      w2 = 1 - w1
      q = [w1, w1, w1, p]
      r = [w2, w2, w2, 1 - p]
      return ColorValue([c1[i] * q[i] + c2[i] * r[i] for i in range(4)])
docs: Mixes two colors together.