@privjs/gradients
Version:
Javascript utility to generate beautiful gradient backgrounds. Built by the team behind [privjs.com](https://privjs.com)
50 lines (49 loc) • 1.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.genGradient = void 0;
const utils_1 = require("./utils");
const chroma_js_1 = __importDefault(require("chroma-js"));
const polished_1 = require("polished");
const helpers_1 = require("./helpers");
const genGradient = (string) => {
const colorGenConfig = {
minHue: 0,
maxHue: 360,
minChroma: 50,
maxChroma: 100,
minLightness: 55,
maxLightness: 75,
minStops: 5,
maxStops: 20,
};
const numOfStops = (0, utils_1.seededRandom)(string, [5, 20]);
const _lightness = (0, utils_1.seededRandom)(string, [
colorGenConfig.minLightness,
colorGenConfig.maxLightness,
]);
const _chroma = (0, utils_1.seededRandom)(string, [
colorGenConfig.minChroma,
colorGenConfig.maxChroma,
]);
const _hue = (0, utils_1.seededRandom)(string, [
colorGenConfig.minHue,
colorGenConfig.maxHue,
]);
const color1 = chroma_js_1.default.lch(_lightness, _chroma, _hue);
const hueAdjustment = (0, utils_1.seededRandom)(string, [35, 155]);
const h2 = (0, polished_1.adjustHue)(hueAdjustment, color1.hex());
const l2 = (0, polished_1.lighten)(0.1, h2);
const color2 = (0, chroma_js_1.default)(l2);
const _stops = (0, helpers_1.genStops)({ color1, color2, numOfStops });
const easingCurve = (0, utils_1.getRandomCurve)(string);
const stops = (0, helpers_1.getStopsArray)(_stops, easingCurve);
const angle = (0, utils_1.seededRandom)(string, [0, 360]);
return `linear-gradient(
${angle}deg,
${stops.join(',\n ')}
)`;
};
exports.genGradient = genGradient;