UNPKG

@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
"use strict"; 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;