@kcuf/mere-color
Version:
Mere color utils for generating, manipulation, a11y purposes.
31 lines (30 loc) • 1.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parseColorRgb;
var _matchRgb = _interopRequireDefault(require("./match-rgb"));
var _matchRgbLegacy = _interopRequireDefault(require("./match-rgb-legacy"));
var _parseNumberAlpha = _interopRequireDefault(require("./parse-number-alpha"));
var _parseNumberRgbValue = _interopRequireDefault(require("./parse-number-rgb-value"));
/**
* Parse `rgba?(...)` color string into an `Rgb` object.
*
* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
*/
function parseColorRgb(color) {
var matchModern = (0, _matchRgb.default)(color);
var matchLegacy = matchModern ? null : (0, _matchRgbLegacy.default)(color);
var match = matchModern || matchLegacy;
if (!match || matchLegacy && (match[1] !== match[3] || match[3] !== match[5])) {
// legacy format does not allow mixing number and percentage values
return null;
}
return {
r: (0, _parseNumberRgbValue.default)(match[0], match[1]),
g: (0, _parseNumberRgbValue.default)(match[2], match[3]),
b: (0, _parseNumberRgbValue.default)(match[4], match[5]),
a: (0, _parseNumberAlpha.default)(match[6], match[7])
};
}