diff options
Diffstat (limited to 'client/lib/color.js')
| -rw-r--r-- | client/lib/color.js | 31 |
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 } |
