Sha256: 0ab4743e7dabeb0ce21f1b8a4f5d07ecad1a62765c0783f9d6158031bf09795e

Contents?: true

Size: 1.02 KB

Versions: 39

Compression:

Stored size: 1.02 KB

Contents

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

/**
 * Color component name map.
 */

var componentMap = {
    red: 'r'
  , green: 'g'
  , blue: 'b'
  , alpha: 'a'
  , hue: 'h'
  , saturation: 's'
  , lightness: 'l'
};

/**
 * Color component unit type map.
 */

var unitMap = {
    hue: 'deg'
  , saturation: '%'
  , lightness: '%'
};

/**
 * Color type map.
 */

var typeMap = {
    red: 'rgba'
  , blue: 'rgba'
  , green: 'rgba'
  , alpha: 'rgba'
  , hue: 'hsla'
  , saturation: 'hsla'
  , lightness: 'hsla'
};

/**
 * Return component `name` for the given `color`.
 *
 * @param {RGBA|HSLA} color
 * @param {String} name
 * @return {Unit}
 * @api public
 */

module.exports = function component(color, name) {
  utils.assertColor(color, 'color');
  utils.assertString(name, 'name');
  var name = name.string
    , unit = unitMap[name]
    , type = typeMap[name]
    , name = componentMap[name];
  if (!name) throw new Error('invalid color component "' + name + '"');
  return new nodes.Unit(color[type][name], unit);
};

Version data entries

39 entries across 20 versions & 2 rubygems

Version Path
ela-4.1.6 node_modules/stylus/lib/functions/component.js
ela-4.1.6 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.5 node_modules/stylus/lib/functions/component.js
ela-4.1.5 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.4 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.4 node_modules/stylus/lib/functions/component.js
ela-4.1.3 node_modules/stylus/lib/functions/component.js
ela-4.1.3 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.2 node_modules/stylus/lib/functions/component.js
ela-4.1.2 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.1 node_modules/stylus/lib/functions/component.js
ela-4.1.1 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.1.0 node_modules/stylus/lib/functions/component.js
ela-4.1.0 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-4.0.0 node_modules/stylus/lib/functions/component.js
ela-4.0.0 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-3.4.3 node_modules/stylus/lib/functions/component.js
ela-3.4.3 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-3.4.2 node_modules/nib/node_modules/stylus/lib/functions/component.js
ela-3.4.2 node_modules/stylus/lib/functions/component.js