UNPKG

@geist-ui/react

Version:

Modern and minimalist React UI library.

43 lines (35 loc) 1.57 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); }); }; export var addColorAlpha = function addColorAlpha(color, alpha) { if (!/^#|rgb|RGB/.test(color)) return color; 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, ")"); };