lib/functions/adjust.js
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;
}
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;
}
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 ; }
Adjust HSL `color` `prop` by `amount`.

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