Sha256: bf190a5d0f57b67ad1dea5af77188180c56e73728199f75303f2701071f6d838

Contents?: true

Size: 735 Bytes

Versions: 39

Compression:

Stored size: 735 Bytes

Contents

var utils = require('../utils');

/**
 * Adjust HSL `color` `prop` by `amount`.
 *
 * @param {RGBA|HSLA} color
 * @param {String} prop
 * @param {Unit} amount
 * @return {RGBA}
 * @api private
 */

module.exports = function adjust(color, prop, amount){
  utils.assertColor(color, 'color');
  utils.assertString(prop, 'prop');
  utils.assertType(amount, 'unit', 'amount');
  var hsl = color.hsla.clone();
  prop = { hue: 'h', saturation: 's', lightness: 'l' }[prop.string];
  if (!prop) throw new Error('invalid adjustment property');
  var val = amount.val;
  if ('%' == amount.type){
    val = 'l' == prop && val > 0
      ? (100 - hsl[prop]) * val / 100
      : hsl[prop] * (val / 100);
  }
  hsl[prop] += val;
  return hsl.rgba;
};

Version data entries

39 entries across 20 versions & 2 rubygems

Version Path
ela-3.4.0 node_modules/stylus/lib/functions/adjust.js
ela-3.4.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.3.1 node_modules/stylus/lib/functions/adjust.js
ela-3.3.1 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.3.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.3.0 node_modules/stylus/lib/functions/adjust.js
ela-3.2.0 node_modules/stylus/lib/functions/adjust.js
ela-3.2.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.1.1 node_modules/stylus/lib/functions/adjust.js
ela-3.1.1 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.1.0 node_modules/stylus/lib/functions/adjust.js
ela-3.1.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-3.0.0 node_modules/stylus/lib/functions/adjust.js
ela-3.0.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-2.0.0 node_modules/stylus/lib/functions/adjust.js
ela-2.0.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-1.1.0 node_modules/nib/node_modules/stylus/lib/functions/adjust.js
ela-1.1.0 node_modules/stylus/lib/functions/adjust.js
stylus-source-0.54.5 vendor/lib/functions/adjust.js