@flexis/ui
Version:
Styleless React Components
31 lines (25 loc) • 3.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-int"));
var color = require('color');
function parsePercents(percents) {
return (0, _parseInt2.default)(percents, 10) / 100;
}
function toString(color) {
return color.valpha < 1 ? color.rgb().string() : color.hex();
}
module.exports = {
textColor: function textColor(backgroundColor, black, white) {
return color(backgroundColor).luminosity() > .5 ? black : white;
},
darken: function darken(targetColor, percents) {
return toString(color(targetColor).darken(parsePercents(percents)));
},
lighten: function lighten(targetColor, percents) {
return toString(color(targetColor).lighten(parsePercents(percents)));
},
opacity: function opacity(targetColor, percents) {
return toString(color(targetColor).alpha(parsePercents(percents)));
}
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbG9ycy5qcyJdLCJuYW1lcyI6WyJjb2xvciIsInJlcXVpcmUiLCJwYXJzZVBlcmNlbnRzIiwicGVyY2VudHMiLCJ0b1N0cmluZyIsInZhbHBoYSIsInJnYiIsInN0cmluZyIsImhleCIsIm1vZHVsZSIsImV4cG9ydHMiLCJ0ZXh0Q29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJibGFjayIsIndoaXRlIiwibHVtaW5vc2l0eSIsImRhcmtlbiIsInRhcmdldENvbG9yIiwibGlnaHRlbiIsIm9wYWNpdHkiLCJhbHBoYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFFQSxTQUFTQyxhQUFULENBQXVCQyxRQUF2QixFQUFpQztBQUNoQyxTQUFPLHdCQUFTQSxRQUFULEVBQW1CLEVBQW5CLElBQXlCLEdBQWhDO0FBQ0E7O0FBRUQsU0FBU0MsUUFBVCxDQUFrQkosS0FBbEIsRUFBeUI7QUFDeEIsU0FBT0EsS0FBSyxDQUFDSyxNQUFOLEdBQWUsQ0FBZixHQUNKTCxLQUFLLENBQUNNLEdBQU4sR0FBWUMsTUFBWixFQURJLEdBRUpQLEtBQUssQ0FBQ1EsR0FBTixFQUZIO0FBR0E7O0FBRURDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUVoQkMsRUFBQUEsU0FGZ0IscUJBRU5DLGVBRk0sRUFFV0MsS0FGWCxFQUVrQkMsS0FGbEIsRUFFeUI7QUFDeEMsV0FBT2QsS0FBSyxDQUFDWSxlQUFELENBQUwsQ0FBdUJHLFVBQXZCLEtBQXNDLEVBQXRDLEdBQ0pGLEtBREksR0FFSkMsS0FGSDtBQUdBLEdBTmU7QUFRaEJFLEVBQUFBLE1BUmdCLGtCQVFUQyxXQVJTLEVBUUlkLFFBUkosRUFRYztBQUM3QixXQUFPQyxRQUFRLENBQ2RKLEtBQUssQ0FBQ2lCLFdBQUQsQ0FBTCxDQUFtQkQsTUFBbkIsQ0FBMEJkLGFBQWEsQ0FBQ0MsUUFBRCxDQUF2QyxDQURjLENBQWY7QUFHQSxHQVplO0FBY2hCZSxFQUFBQSxPQWRnQixtQkFjUkQsV0FkUSxFQWNLZCxRQWRMLEVBY2U7QUFDOUIsV0FBT0MsUUFBUSxDQUNkSixLQUFLLENBQUNpQixXQUFELENBQUwsQ0FBbUJDLE9BQW5CLENBQTJCaEIsYUFBYSxDQUFDQyxRQUFELENBQXhDLENBRGMsQ0FBZjtBQUdBLEdBbEJlO0FBb0JoQmdCLEVBQUFBLE9BcEJnQixtQkFvQlJGLFdBcEJRLEVBb0JLZCxRQXBCTCxFQW9CZTtBQUM5QixXQUFPQyxRQUFRLENBQ2RKLEtBQUssQ0FBQ2lCLFdBQUQsQ0FBTCxDQUFtQkcsS0FBbkIsQ0FBeUJsQixhQUFhLENBQUNDLFFBQUQsQ0FBdEMsQ0FEYyxDQUFmO0FBR0E7QUF4QmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb2xvciA9IHJlcXVpcmUoJ2NvbG9yJyk7XG5cbmZ1bmN0aW9uIHBhcnNlUGVyY2VudHMocGVyY2VudHMpIHtcblx0cmV0dXJuIHBhcnNlSW50KHBlcmNlbnRzLCAxMCkgLyAxMDA7XG59XG5cbmZ1bmN0aW9uIHRvU3RyaW5nKGNvbG9yKSB7XG5cdHJldHVybiBjb2xvci52YWxwaGEgPCAxXG5cdFx0PyBjb2xvci5yZ2IoKS5zdHJpbmcoKVxuXHRcdDogY29sb3IuaGV4KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXG5cdHRleHRDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIGJsYWNrLCB3aGl0ZSkge1xuXHRcdHJldHVybiBjb2xvcihiYWNrZ3JvdW5kQ29sb3IpLmx1bWlub3NpdHkoKSA+IC41XG5cdFx0XHQ/IGJsYWNrXG5cdFx0XHQ6IHdoaXRlO1xuXHR9LFxuXG5cdGRhcmtlbih0YXJnZXRDb2xvciwgcGVyY2VudHMpIHtcblx0XHRyZXR1cm4gdG9TdHJpbmcoXG5cdFx0XHRjb2xvcih0YXJnZXRDb2xvcikuZGFya2VuKHBhcnNlUGVyY2VudHMocGVyY2VudHMpKVxuXHRcdCk7XG5cdH0sXG5cblx0bGlnaHRlbih0YXJnZXRDb2xvciwgcGVyY2VudHMpIHtcblx0XHRyZXR1cm4gdG9TdHJpbmcoXG5cdFx0XHRjb2xvcih0YXJnZXRDb2xvcikubGlnaHRlbihwYXJzZVBlcmNlbnRzKHBlcmNlbnRzKSlcblx0XHQpO1xuXHR9LFxuXG5cdG9wYWNpdHkodGFyZ2V0Q29sb3IsIHBlcmNlbnRzKSB7XG5cdFx0cmV0dXJuIHRvU3RyaW5nKFxuXHRcdFx0Y29sb3IodGFyZ2V0Q29sb3IpLmFscGhhKHBhcnNlUGVyY2VudHMocGVyY2VudHMpKVxuXHRcdCk7XG5cdH1cbn07XG4iXX0=