@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
41 lines (40 loc) • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.namedColorToHex = exports.isNamedColor = void 0;
exports.contrastingTextColor = contrastingTextColor;
exports.emphasize = emphasize;
exports.makeContrasting = makeContrasting;
const styles_1 = require("@mui/material/styles");
const cssColorsLevel4_1 = require("./cssColorsLevel4");
function contrastingTextColor(color) {
const luminance = getLuminance(color);
return luminance > 0.5 ? 'black' : 'white';
}
function getLuminance(color) {
const convertedColor = (0, cssColorsLevel4_1.namedColorToHex)(color);
return (0, styles_1.getLuminance)(convertedColor || color);
}
function emphasize(color, coefficient = 0.15) {
const convertedColor = (0, cssColorsLevel4_1.namedColorToHex)(color);
return (0, styles_1.emphasize)(convertedColor || color, coefficient);
}
function makeContrasting(foreground, background = 'white', minContrastRatio = 3) {
let convertedForeground = (0, cssColorsLevel4_1.namedColorToHex)(foreground) || foreground;
const convertedBackground = (0, cssColorsLevel4_1.namedColorToHex)(background) || background;
const backgroundLuminance = getLuminance(convertedBackground);
let contrastRatio = (0, styles_1.getContrastRatio)(convertedForeground, convertedBackground);
const originalColor = convertedForeground;
let coefficient = 0.05;
while (contrastRatio < minContrastRatio) {
convertedForeground =
backgroundLuminance > 0.5
? (0, styles_1.darken)(originalColor, coefficient)
: (0, styles_1.lighten)(originalColor, coefficient);
coefficient += 0.05;
contrastRatio = (0, styles_1.getContrastRatio)(convertedForeground, convertedBackground);
}
return convertedForeground;
}
var cssColorsLevel4_2 = require("./cssColorsLevel4");
Object.defineProperty(exports, "isNamedColor", { enumerable: true, get: function () { return cssColorsLevel4_2.isNamedColor; } });
Object.defineProperty(exports, "namedColorToHex", { enumerable: true, get: function () { return cssColorsLevel4_2.namedColorToHex; } });