diff --git a/libs/blueui.js b/libs/blueui.js index 8e979e5..6a08144 100644 --- a/libs/blueui.js +++ b/libs/blueui.js @@ -151,3 +151,34 @@ class buiWindow { function close () { } } + +function hexGradiant( + value=1, + low=0, + high=100, + rwave = n => (100 * Math.sin(n / 10)) + (n - 30) * 2, + gwave = n => (n - 50) * (n - 75) * (0 - 1) / 10 + 100, + bwave = n => (n - 25) * (n - 25) * (0 - 1) / 5 + 100 +) { + var range = Math.max(0,Math.min(1,(value - low)/(high - low)))*100; + + var r = rwave(range) * 2; + var g = gwave(range) * 2; + var b = bwave(range) * 2; + + var brightness = 270; // out of 768 (white) + + // Normaliz rgb values to within the brightness level + if (r+g+b < brightness) { + brightness -= (r+g+b); + r += (brightness/3); + g += (brightness/3); + b += (brightness/3); + } + + return "#"+ + parseInt(Math.min(Math.max(0,r),255).toFixed(0)).toString(16).padStart(2,"0")+ + parseInt(Math.min(Math.max(0,g),255).toFixed(0)).toString(16).padStart(2,"0")+ + parseInt(Math.min(Math.max(0,b),255).toFixed(0)).toString(16).padStart(2,"0"); +} +