UNPKG

chroma-js

Version:

JavaScript library for color conversions

31 lines (28 loc) 831 B
const {unpack, last} = require('../../utils'); const hsl2css = require('./hsl2css'); const rgb2hsl = require('../hsl/rgb2hsl'); const {round} = Math; /* * supported arguments: * - rgb2css(r,g,b) * - rgb2css(r,g,b,a) * - rgb2css([r,g,b], mode) * - rgb2css([r,g,b,a], mode) * - rgb2css({r,g,b,a}, mode) */ const rgb2css = (...args) => { const rgba = unpack(args, 'rgba'); let mode = last(args) || 'rgb'; if (mode.substr(0,3) == 'hsl') { return hsl2css(rgb2hsl(rgba), mode); } rgba[0] = round(rgba[0]); rgba[1] = round(rgba[1]); rgba[2] = round(rgba[2]); if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) { rgba[3] = rgba.length > 3 ? rgba[3] : 1; mode = 'rgba'; } return `${mode}(${rgba.slice(0,mode==='rgb'?3:4).join(',')})`; } module.exports = rgb2css;