UNPKG

sparkl-ui

Version:

Modern and minimalist React UI library.

76 lines (60 loc) 2.45 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; var hexToRgb = function hexToRgb(color) { var fullReg = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; var full = color.replace(fullReg, function (_, r, g, b) { return "".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b); }); var values = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(full); if (!values) { throw new Error("Geist UI: Unsupported ".concat(color, " color.")); } return [Number.parseInt(values[1], 16), Number.parseInt(values[2], 16), Number.parseInt(values[3], 16)]; }; export var colorToRgbValues = function colorToRgbValues(color) { if (color.charAt(0) === '#') return hexToRgb(color); var safeColor = color.replace(/ /g, ''); var colorType = color.substr(0, 4); var regArray = safeColor.match(/\((.+)\)/); if (!colorType.startsWith('rgb') || !regArray) { console.log(color); throw new Error("Geist UI: Only support [\"RGB\", \"RGBA\", \"HEX\"] color."); } return regArray[1].split(',').map(function (str) { return Number.parseFloat(str); }); }; // @ts-ignore var HSLToRGB = function HSLToRGB(h, s, l) { s /= 100; l /= 100; // @ts-ignore var k = function k(n) { return (n + h / 30) % 12; }; var a = s * Math.min(l, 1 - l); // @ts-ignore var f = function f(n) { return l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1))); }; return [255 * f(0), 255 * f(8), 255 * f(4)]; }; var HSLStringToArray = function HSLStringToArray(hslString) { var hslArray = hslString.replace(/hsl\(|\)/g, '').split(',').map(function (str) { return Number.parseFloat(str); }); return hslArray; }; export var addColorAlpha = function addColorAlpha(color, alpha) { if (!/^#|rgb|RGB/.test(color)) { var _HSLStringToArray = HSLStringToArray(color), _HSLStringToArray2 = _slicedToArray(_HSLStringToArray, 3), h = _HSLStringToArray2[0], s = _HSLStringToArray2[1], l = _HSLStringToArray2[2]; color = "rgba(".concat(HSLToRGB(h, s, l).join(','), ",").concat(alpha, ")"); } var _colorToRgbValues = colorToRgbValues(color), _colorToRgbValues2 = _slicedToArray(_colorToRgbValues, 3), r = _colorToRgbValues2[0], g = _colorToRgbValues2[1], b = _colorToRgbValues2[2]; var safeAlpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha; return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(safeAlpha, ")"); };