Updated theme handling.

This commit is contained in:
Mike Cao 2025-04-01 22:58:38 -05:00
parent c71e9b5707
commit 34a8fa100c
10 changed files with 57 additions and 93 deletions

View file

@ -1,4 +1,6 @@
import md5 from 'md5';
import { THEME_COLORS } from '@/lib/constants';
import { colord } from 'colord';
export const pick = (num: number, arr: any[]) => {
return arr[num % arr.length];
@ -43,3 +45,38 @@ export function getColor(seed: string, min: number = 0, max: number = 255) {
return rgb2Hex(r, g, b);
}
export function getThemeColors(theme: string) {
const { primary, text, line, fill } = THEME_COLORS[theme];
const primaryColor = colord(THEME_COLORS[theme].primary);
return {
colors: {
theme: {
...THEME_COLORS[theme],
},
chart: {
text,
line,
views: {
hoverBackgroundColor: primaryColor.alpha(0.7).toRgbString(),
backgroundColor: primaryColor.alpha(0.4).toRgbString(),
borderColor: primaryColor.alpha(0.7).toRgbString(),
hoverBorderColor: primaryColor.toRgbString(),
},
visitors: {
hoverBackgroundColor: primaryColor.alpha(0.9).toRgbString(),
backgroundColor: primaryColor.alpha(0.6).toRgbString(),
borderColor: primaryColor.alpha(0.9).toRgbString(),
hoverBorderColor: primaryColor.toRgbString(),
},
},
map: {
baseColor: primary,
fillColor: fill,
strokeColor: primary,
hoverColor: primary,
},
},
};
}