@privjs/gradients
Advanced tools
Comparing version 1.0.8 to 1.0.9
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var gradient_1 = require("./lib/gradient"); | ||
const gradient_1 = require("./lib/gradient"); | ||
exports.default = gradient_1.genGradient; |
@@ -7,8 +7,8 @@ "use strict"; | ||
exports.genGradient = void 0; | ||
var utils_1 = require("./utils"); | ||
var chroma_js_1 = __importDefault(require("chroma-js")); | ||
var polished_1 = require("polished"); | ||
var helpers_1 = require("./helpers"); | ||
var genGradient = function (string) { | ||
var colorGenConfig = { | ||
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, | ||
@@ -23,26 +23,29 @@ maxHue: 360, | ||
}; | ||
var numOfStops = (0, utils_1.seededRandom)(string, [3, 7]); | ||
var _lightness = (0, utils_1.seededRandom)(string, [ | ||
const numOfStops = (0, utils_1.seededRandom)(string, [5, 20]); | ||
const _lightness = (0, utils_1.seededRandom)(string, [ | ||
colorGenConfig.minLightness, | ||
colorGenConfig.maxLightness, | ||
]); | ||
var _chroma = (0, utils_1.seededRandom)(string, [ | ||
const _chroma = (0, utils_1.seededRandom)(string, [ | ||
colorGenConfig.minChroma, | ||
colorGenConfig.maxChroma, | ||
]); | ||
var _hue = (0, utils_1.seededRandom)(string, [ | ||
const _hue = (0, utils_1.seededRandom)(string, [ | ||
colorGenConfig.minHue, | ||
colorGenConfig.maxHue, | ||
]); | ||
var color1 = chroma_js_1.default.lch(_lightness, _chroma, _hue); | ||
var hueAdjustment = (0, utils_1.seededRandom)(string, [35, 155]); | ||
var h2 = (0, polished_1.adjustHue)(hueAdjustment, color1.hex()); | ||
var l2 = (0, polished_1.lighten)(0.1, h2); | ||
var color2 = (0, chroma_js_1.default)(l2); | ||
var _stops = (0, helpers_1.genStops)({ color1: color1, color2: color2, numOfStops: numOfStops }); | ||
var easingCurve = (0, utils_1.getRandomCurve)(string); | ||
var stops = (0, helpers_1.getStopsArray)(_stops, easingCurve); | ||
var angle = (0, utils_1.seededRandom)(string, [0, 360]); | ||
return "linear-gradient(\n ".concat(angle, "deg,\n ").concat(stops.join(',\n '), "\n )"); | ||
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; |
@@ -7,20 +7,20 @@ "use strict"; | ||
exports.getStopsArray = exports.genStops = void 0; | ||
var chroma_js_1 = __importDefault(require("chroma-js")); | ||
var utils_1 = require("./utils"); | ||
var genStops = function (_a) { | ||
var color1 = _a.color1, color2 = _a.color2, numOfStops = _a.numOfStops; | ||
const chroma_js_1 = __importDefault(require("chroma-js")); | ||
const utils_1 = require("./utils"); | ||
const genStops = ({ color1, color2, numOfStops }) => { | ||
return chroma_js_1.default.scale([color1, color2]).mode('lch').colors(numOfStops, 'hsl'); | ||
}; | ||
exports.genStops = genStops; | ||
var getStopsArray = function (stops, easingCurve) { | ||
return stops.map(function (color, index) { | ||
var xTarget = index / (stops.length - 1); | ||
var y = (0, utils_1.getYValueForBezier)(xTarget, 1 - easingCurve[0].y, easingCurve[0].x, 1 - easingCurve[1].y, easingCurve[1].x); | ||
const getStopsArray = (stops, easingCurve) => { | ||
return stops.map((color, index) => { | ||
const xTarget = index / (stops.length - 1); | ||
let y = (0, utils_1.getYValueForBezier)(xTarget, 1 - easingCurve[0].y, easingCurve[0].x, 1 - easingCurve[1].y, easingCurve[1].x); | ||
y = Math.round((0, utils_1.normalize)(y, 0, 1, 0, 100)); | ||
// If this color is grayscale | ||
var hue = isNaN(color[0]) ? 0 : Math.round(color[0]); | ||
var hslString = "hsl(".concat(hue, "deg ").concat(Math.round(color[1] * 100), "% ").concat(Math.round(color[2] * 100), "%)"); | ||
return "".concat(hslString, " ").concat(y, "%"); | ||
const hue = isNaN(color[0]) ? 0 : Math.round(color[0]); | ||
// const hslString = `hsl(${hue}deg ${}% ${}%)`; | ||
const hexValue = chroma_js_1.default.hsl(hue, Math.round(color[1] * 100), Math.round(color[2] * 100)); | ||
return `${hexValue} ${y}%`; | ||
}); | ||
}; | ||
exports.getStopsArray = getStopsArray; |
"use strict"; | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -16,19 +7,18 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
exports.getRandomCurve = exports.seededPick = exports.seededRandom = exports.normalize = exports.getYValueForBezier = void 0; | ||
var seedrandom_1 = __importDefault(require("seedrandom")); | ||
var presets_1 = require("./presets"); | ||
var getValuesForBezierCurve = function (_a, t) { | ||
var startPoint = _a.startPoint, endPoint = _a.endPoint, controlPoint1 = _a.controlPoint1, controlPoint2 = _a.controlPoint2; | ||
var x, y; | ||
const seedrandom_1 = __importDefault(require("seedrandom")); | ||
const presets_1 = require("./presets"); | ||
const getValuesForBezierCurve = ({ startPoint, endPoint, controlPoint1, controlPoint2 }, t) => { | ||
let x, y; | ||
if (controlPoint2) { | ||
// Cubic Bezier curve | ||
x = | ||
Math.pow((1 - t), 3) * startPoint[0] + | ||
3 * Math.pow((1 - t), 2) * t * controlPoint1[0] + | ||
3 * (1 - t) * Math.pow(t, 2) * controlPoint2[0] + | ||
Math.pow(t, 3) * endPoint[0]; | ||
(1 - t) ** 3 * startPoint[0] + | ||
3 * (1 - t) ** 2 * t * controlPoint1[0] + | ||
3 * (1 - t) * t ** 2 * controlPoint2[0] + | ||
t ** 3 * endPoint[0]; | ||
y = | ||
Math.pow((1 - t), 3) * startPoint[1] + | ||
3 * Math.pow((1 - t), 2) * t * controlPoint1[1] + | ||
3 * (1 - t) * Math.pow(t, 2) * controlPoint2[1] + | ||
Math.pow(t, 3) * endPoint[1]; | ||
(1 - t) ** 3 * startPoint[1] + | ||
3 * (1 - t) ** 2 * t * controlPoint1[1] + | ||
3 * (1 - t) * t ** 2 * controlPoint2[1] + | ||
t ** 3 * endPoint[1]; | ||
} | ||
@@ -48,3 +38,3 @@ else { | ||
}; | ||
var getYValueForBezier = function (xTarget, x1, y1, x2, y2) { | ||
const getYValueForBezier = function (xTarget, x1, y1, x2, y2) { | ||
var xTolerance = 0.0001; | ||
@@ -76,7 +66,5 @@ var myBezier = function (t) { | ||
exports.getYValueForBezier = getYValueForBezier; | ||
var normalize = function (number, currentScaleMin, currentScaleMax, newScaleMin, newScaleMax) { | ||
if (newScaleMin === void 0) { newScaleMin = 0; } | ||
if (newScaleMax === void 0) { newScaleMax = 1; } | ||
const normalize = (number, currentScaleMin, currentScaleMax, newScaleMin = 0, newScaleMax = 1) => { | ||
// FIrst, normalize the value between 0 and 1. | ||
var standardNormalization = (number - currentScaleMin) / (currentScaleMax - currentScaleMin); | ||
const standardNormalization = (number - currentScaleMin) / (currentScaleMax - currentScaleMin); | ||
// Next, transpose that value to our desired scale. | ||
@@ -87,17 +75,15 @@ return (newScaleMax - newScaleMin) * standardNormalization + newScaleMin; | ||
(0, seedrandom_1.default)('UNIQUE_SALT', { global: true }); | ||
var seededRandom = function (seed, range) { | ||
if (range === void 0) { range = [0, 1]; } | ||
const seededRandom = (seed, range = [0, 1]) => { | ||
return Math.floor((0, seedrandom_1.default)(seed)() * (range[1] - range[0]) + range[0]); | ||
}; | ||
exports.seededRandom = seededRandom; | ||
var seededPick = function (seed, arr) { | ||
var indx = (0, exports.seededRandom)(seed, [0, arr.length - 1]); | ||
const seededPick = (seed, arr) => { | ||
const indx = (0, exports.seededRandom)(seed, [0, arr.length - 1]); | ||
return arr[indx]; | ||
}; | ||
exports.seededPick = seededPick; | ||
function getRandomCurve(seed) { | ||
if (seed === void 0) { seed = ''; } | ||
var presets = presets_1.CURVE_PRESETS.map(function (preset) { return preset.curve; }); | ||
return (0, exports.seededPick)(seed, __spreadArray([], presets, true)); | ||
function getRandomCurve(seed = '') { | ||
const presets = presets_1.CURVE_PRESETS.map((preset) => preset.curve); | ||
return (0, exports.seededPick)(seed, [...presets]); | ||
} | ||
exports.getRandomCurve = getRandomCurve; |
{ | ||
"name": "@privjs/gradients", | ||
"version": "1.0.8", | ||
"version": "1.0.9", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "bin/index.js", |
11491
238