UNPKG

@chayns/colors

Version:

JavaScript utility functions for the calculation of colors for chayns

71 lines (55 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mixRgb = mixRgb; exports.mixHex = mixHex; exports.mixHsl = mixHsl; exports.mixHsv = mixHsv; var _converter = require("../converter"); var _roundValues = _interopRequireDefault(require("../utils/roundValues")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function mixRgb(color1, color2) { var weightPercent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100; var weight = weightPercent / 100; var weightColor2 = 1 - weight; var r = weight * color1.r + weightColor2 * color2.r; var g = weight * color1.g + weightColor2 * color2.g; var b = weight * color1.b + weightColor2 * color2.b; var a; if ('a' in color1 || 'a' in color2) { a = weight * ('a' in color1 ? color1.a : 0) + weightColor2 * ('a' in color2 ? color2.a : 0); } var color = (0, _converter.checkTransparency)({ r: r, g: g, b: b, a: a }); return (0, _roundValues["default"])(color); } function mixHex(color1, color2, weight) { var color1Rgb255 = (0, _converter.hexToRgb255)(color1); var color2Rgb255 = (0, _converter.hexToRgb255)(color2); if (!color1Rgb255 || !color2Rgb255) { return null; } return (0, _converter.rgb255ToHex)(mixRgb(color1Rgb255, color2Rgb255, weight)); } function mixHsv(color1, color2, weight) { var color1Rgb255 = (0, _converter.hsvToRgb1)(color1); var color2Rgb255 = (0, _converter.hsvToRgb1)(color2); if (!color1Rgb255 || !color2Rgb255) { return null; } return (0, _converter.rgb1ToHsv)(mixRgb(color1Rgb255, color2Rgb255, weight)); } function mixHsl(color1, color2, weight) { var color1Rgb255 = (0, _converter.hslToRgb1)(color1); var color2Rgb255 = (0, _converter.hslToRgb1)(color2); if (!color1Rgb255 || !color2Rgb255) { return null; } return (0, _converter.rgb1ToHsl)(mixRgb(color1Rgb255, color2Rgb255, weight)); } //# sourceMappingURL=mix.js.map