UNPKG

palette-gen

Version:

A module for generating a palette that including a series colors

71 lines (57 loc) 2.21 kB
/** * Bundle of palette-gen * Generated: 2022-03-30 * Version: 0.1.0 * License: MIT * Author: 2631541504@qq.com */ import Color from 'color'; function genPalette() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var defaultHslaRange = ['hsla(0, 0%, 0%)', 'hsla(359, 100%, 100%)']; var _options$len = options.len, len = _options$len === void 0 ? 10 : _options$len, rgbaRange = options.rgbaRange, _options$hslaRange = options.hslaRange, hslaRange = _options$hslaRange === void 0 ? defaultHslaRange : _options$hslaRange, alpha = options.alpha; if (rgbaRange) { var _steps = { r: 0, g: 0, b: 0, a: 0 }; var _start = Color(rgbaRange[0] || '#f00'); var _end = Color(rgbaRange[1] || '#000'); _steps.r = (_end.red() - _start.red()) / (len - 1); _steps.g = (_end.green() - _start.green()) / (len - 1); _steps.b = (_end.blue() - _start.blue()) / (len - 1); if (alpha) _steps.a = (_end.alpha() - _start.alpha()) / (len - 1); var _colors = [_start.rgb().string()]; for (var i = 1; i < len - 1; i += 1) { _colors[i] = _start.red(_start.red() + _steps.r * i).green(_start.green() + _steps.g * i).blue(_start.blue() + _steps.b * i).alpha(_start.alpha() + _steps.a * i).rgb().string(); } _colors.push(_end.rgb().string()); return _colors; } var steps = { h: 0, s: 0, l: 0, a: 0 }; var start = Color(hslaRange[0] || defaultHslaRange[0]); var end = Color(hslaRange[1] || defaultHslaRange[1]); steps.h = (end.hue() - start.hue()) / (len - 1); steps.s = (end.saturationl() - start.saturationl()) / (len - 1); steps.l = (end.lightness() - start.lightness()) / (len - 1); if (alpha) steps.a = (end.alpha() - start.alpha()) / (len - 1); var colors = [start.rgb().string()]; for (var _i = 1; _i < len - 1; _i += 1) { colors[_i] = start.hue(start.hue() + steps.h * _i).saturationl(start.saturationl() + steps.s * _i).lightness(start.lightness() + steps.l * _i).alpha(start.alpha() + steps.a * _i).rgb().string(); } colors.push(end.rgb().string()); return colors; } export { genPalette as default, genPalette };