UNPKG

@neo4j-ndl/react

Version:

React implementation of Neo4j Design System

84 lines 3.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDisabledColor = exports.getDisabledTextColor = exports.getHoverColor = exports.getTextColorFromBackground = void 0; /** * * Copyright (c) "Neo4j" * Neo4j Sweden AB [http://neo4j.com] * * This file is part of Neo4j. * * Neo4j is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ const base_1 = require("@neo4j-ndl/base"); const tinycolor2_1 = __importDefault(require("tinycolor2")); /** * Takes a color string and returns color string * that is readable on top of that background. Prioritizes pallete * text colors and uses black or white as fallback. */ const getTextColorFromBackground = (color) => { return tinycolor2_1.default .mostReadable(color, [ base_1.tokens.theme.light.color.neutral.text.default, base_1.tokens.theme.light.color.neutral.text.inverse, ], { includeFallbackColors: true, }) .toString(); }; exports.getTextColorFromBackground = getTextColorFromBackground; /** * Takes a color string and returns a color string * that is darker or lighter depending on the given color. */ const getHoverColor = (color) => { const hslColor = (0, tinycolor2_1.default)(color).toHsl(); if (hslColor.l < 0.5) { return (0, tinycolor2_1.default)(color).lighten(10).toString(); } return (0, tinycolor2_1.default)(color).darken(10).toString(); }; exports.getHoverColor = getHoverColor; /** * Returns the most readable color on the given background color * as a string from a list of palette text colors */ const getDisabledTextColor = (backgroundColor) => { return tinycolor2_1.default .mostReadable(backgroundColor, [ base_1.tokens.theme.light.color.neutral.text.weakest, base_1.tokens.theme.light.color.neutral.text.weaker, base_1.tokens.theme.light.color.neutral.text.weak, base_1.tokens.theme.light.color.neutral.text.inverse, ]) .toString(); }; exports.getDisabledTextColor = getDisabledTextColor; /** * Takes a color string and returns a color string * that is darker or lighter depending on the given color. */ const getDisabledColor = (color) => { const hslColor = (0, tinycolor2_1.default)(color).toHsl(); if (hslColor.l < 0.5) { return (0, tinycolor2_1.default)(color).lighten(15).toString(); } return (0, tinycolor2_1.default)(color).darken(15).toString(); }; exports.getDisabledColor = getDisabledColor; //# sourceMappingURL=color.js.map