aboutsummaryrefslogtreecommitdiff
path: root/node_modules/stylus/lib/functions/hsla.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/stylus/lib/functions/hsla.js')
-rw-r--r--node_modules/stylus/lib/functions/hsla.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/functions/hsla.js b/node_modules/stylus/lib/functions/hsla.js
new file mode 100644
index 00000000..484f9ae6
--- /dev/null
+++ b/node_modules/stylus/lib/functions/hsla.js
@@ -0,0 +1,53 @@
+var utils = require('../utils')
+ , nodes = require('../nodes');
+
+/**
+ * Convert the given `color` to an `HSLA` node,
+ * or h,s,l,a component values.
+ *
+ * Examples:
+ *
+ * hsla(10deg, 50%, 30%, 0.5)
+ * // => HSLA
+ *
+ * hsla(#ffcc00)
+ * // => HSLA
+ *
+ * @param {RGBA|HSLA|Unit} hue
+ * @param {Unit} saturation
+ * @param {Unit} lightness
+ * @param {Unit} alpha
+ * @return {HSLA}
+ * @api public
+ */
+
+module.exports = function hsla(hue, saturation, lightness, alpha){
+ switch (arguments.length) {
+ case 1:
+ utils.assertColor(hue);
+ return hue.hsla;
+ case 2:
+ utils.assertColor(hue);
+ var color = hue.hsla;
+ utils.assertType(saturation, 'unit', 'alpha');
+ var alpha = saturation.clone();
+ if ('%' == alpha.type) alpha.val /= 100;
+ return new nodes.HSLA(
+ color.h
+ , color.s
+ , color.l
+ , alpha.val);
+ default:
+ utils.assertType(hue, 'unit', 'hue');
+ utils.assertType(saturation, 'unit', 'saturation');
+ utils.assertType(lightness, 'unit', 'lightness');
+ utils.assertType(alpha, 'unit', 'alpha');
+ var alpha = alpha.clone();
+ if (alpha && '%' == alpha.type) alpha.val /= 100;
+ return new nodes.HSLA(
+ hue.val
+ , saturation.val
+ , lightness.val
+ , alpha.val);
+ }
+};