@grafana/ui
Version:
Grafana Components Library
102 lines (99 loc) • 2.06 kB
JavaScript
import { map, sortBy, chunk, flattenDeep, zip } from 'lodash';
import tinycolor from 'tinycolor2';
const PALETTE_ROWS = 4;
const colors = [
"#7EB26D",
// 0: pale green
"#EAB839",
// 1: mustard
"#6ED0E0",
// 2: light blue
"#EF843C",
// 3: orange
"#E24D42",
// 4: red
"#1F78C1",
// 5: ocean
"#BA43A9",
// 6: purple
"#705DA0",
// 7: violet
"#508642",
// 8: dark green
"#CCA300",
// 9: dark sand
"#447EBC",
"#C15C17",
"#890F02",
"#0A437C",
"#6D1F62",
"#584477",
"#B7DBAB",
"#F4D598",
"#70DBED",
"#F9BA8F",
"#F29191",
"#82B5D8",
"#E5A8E2",
"#AEA2E0",
"#629E51",
"#E5AC0E",
"#64B0C8",
"#E0752D",
"#BF1B00",
"#0A50A1",
"#962D82",
"#614D93",
"#9AC48A",
"#F2C96D",
"#65C5DB",
"#F9934E",
"#EA6460",
"#5195CE",
"#D683CE",
"#806EB7",
"#3F6833",
"#967302",
"#2F575E",
"#99440A",
"#58140C",
"#052B51",
"#511749",
"#3F2B5B",
"#E0F9D7",
"#FCEACA",
"#CFFAFF",
"#F9E2D2",
"#FCE2DE",
"#BADFF4",
"#F9D9F9",
"#DEDAF7"
];
function sortColorsByHue(hexColors) {
const hslColors = map(hexColors, hexToHsl);
const sortedHSLColors = sortBy(hslColors, ["h"]);
const chunkedHSLColors = chunk(sortedHSLColors, PALETTE_ROWS);
const sortedChunkedHSLColors = map(chunkedHSLColors, (chunk2) => {
return sortBy(chunk2, "l");
});
const flattenedZippedSortedChunkedHSLColors = flattenDeep(zip(...sortedChunkedHSLColors));
return map(flattenedZippedSortedChunkedHSLColors, hslToHex);
}
function hexToHsl(color) {
return tinycolor(color).toHsl();
}
function hslToHex(color) {
return tinycolor(color).toHexString();
}
function getTextColorForAlphaBackground(color, themeIsDark) {
const tcolor = tinycolor(color);
const b = tcolor.getBrightness();
const a = tcolor.getAlpha();
if (a < 0.3) {
return themeIsDark ? "rgb(247, 248, 250)" : "rgb(32, 34, 38)";
}
return b > 180 ? "rgb(32, 34, 38)" : "rgb(247, 248, 250)";
}
sortColorsByHue(colors);
export { colors, getTextColorForAlphaBackground };
//# sourceMappingURL=colors.mjs.map