import tinycolor from 'tinycolor2' window.doppler = (percentage, value, relative = false) -> while percentage >= 1 percentage /= 10 tc_color = tinycolor(value).toRgb() color = [tc_color.r, tc_color.g, tc_color.b] if relative for _c, i in color x = (255 - color[i]) * percentage if x == 0 x = color[i] * percentage color[i] -= x else color[i] += x else adj = 255 * percentage for _c, i in color if color[i] + adj > 255 color[i] -= adj else color[i] += adj '#' + color.map((x) -> Math.floor(Math.max(0, Math.min(255, x))).toString(16)).join ''