24 lines
641 B
CoffeeScript
24 lines
641 B
CoffeeScript
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 ''
|