palette-gen
Version:
A module for generating a palette that including a series colors
71 lines (57 loc) • 2.21 kB
JavaScript
/**
* 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 };