summaryrefslogtreecommitdiff
path: root/client/lib/color.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/lib/color.js')
-rw-r--r--client/lib/color.js31
1 files changed, 30 insertions, 1 deletions
diff --git a/client/lib/color.js b/client/lib/color.js
index 5f873b3..4299c4b 100644
--- a/client/lib/color.js
+++ b/client/lib/color.js
@@ -30,4 +30,33 @@ function color (t, add, mul, alpha) {
return 'rgba(' + rgb + ',' + alpha + ')'
}
-export default color
+function hsl2rgb (H, S, L) {
+ var R,G,B;
+ var var_1, var_2;
+ if ( S == 0 ) { //HSL from 0 to 1
+ R = L * 255 //RGB results from 0 to 255
+ G = L * 255
+ B = L * 255
+ }
+ else {
+ if ( L < 0.5 ) var_2 = L * ( 1 + S )
+ else var_2 = ( L + S ) - ( S * L )
+
+ var_1 = 2 * L - var_2
+
+ R = 255 * hue2rgb( var_1, var_2, H + ( 1 / 3 ) )
+ G = 255 * hue2rgb( var_1, var_2, H )
+ B = 255 * hue2rgb( var_1, var_2, H - ( 1 / 3 ) )
+ }
+ return [R,G,B]
+}
+function hue2rgb( v1, v2, vH ) {
+ if ( vH < 0 ) vH += 1
+ if ( vH > 1 ) vH -= 1
+ if ( ( 6 * vH ) < 1 ) return ( v1 + ( v2 - v1 ) * 6 * vH )
+ if ( ( 2 * vH ) < 1 ) return ( v2 )
+ if ( ( 3 * vH ) < 2 ) return ( v1 + ( v2 - v1 ) * ( ( 2 / 3 ) - vH ) * 6 )
+ return ( v1 )
+}
+
+export default { color, hsl2rgb }