mirror of
https://github.com/fosrl/pangolin.git
synced 2026-02-01 15:49:08 +00:00
77 lines
2.8 KiB
TypeScript
77 lines
2.8 KiB
TypeScript
const defaultTheme = {
|
|
light: {
|
|
background: "oklch(0.99 0 0)",
|
|
foreground: "oklch(0.141 0.005 285.823)",
|
|
card: "oklch(1 0 0)",
|
|
"card-foreground": "oklch(0.141 0.005 285.823)",
|
|
popover: "oklch(1 0 0)",
|
|
"popover-foreground": "oklch(0.141 0.005 285.823)",
|
|
primary: "oklch(0.6717 0.1946 41.93)",
|
|
"primary-foreground": "oklch(0.98 0.016 73.684)",
|
|
secondary: "oklch(0.967 0.001 286.375)",
|
|
"secondary-foreground": "oklch(0.21 0.006 285.885)",
|
|
muted: "oklch(0.967 0.001 286.375)",
|
|
"muted-foreground": "oklch(0.552 0.016 285.938)",
|
|
accent: "oklch(0.967 0.001 286.375)",
|
|
"accent-foreground": "oklch(0.21 0.006 285.885)",
|
|
destructive: "oklch(0.577 0.245 27.325)",
|
|
"destructive-foreground": "oklch(0.985 0 0)",
|
|
border: "oklch(0.92 0.004 286.32)",
|
|
input: "oklch(0.92 0.004 286.32)",
|
|
ring: "oklch(0.705 0.213 47.604)",
|
|
radius: "0.65rem",
|
|
"chart-1": "oklch(0.646 0.222 41.116)",
|
|
"chart-2": "oklch(0.6 0.118 184.704)",
|
|
"chart-3": "oklch(0.398 0.07 227.392)",
|
|
"chart-4": "oklch(0.828 0.189 84.429)",
|
|
"chart-5": "oklch(0.769 0.188 70.08)"
|
|
},
|
|
dark: {
|
|
background: "oklch(0.20 0.006 285.885)",
|
|
foreground: "oklch(0.985 0 0)",
|
|
card: "oklch(0.21 0.006 285.885)",
|
|
"card-foreground": "oklch(0.985 0 0)",
|
|
popover: "oklch(0.21 0.006 285.885)",
|
|
"popover-foreground": "oklch(0.985 0 0)",
|
|
primary: "oklch(0.6717 0.1946 41.93)",
|
|
"primary-foreground": "oklch(0.98 0.016 73.684)",
|
|
secondary: "oklch(0.274 0.006 286.033)",
|
|
"secondary-foreground": "oklch(0.985 0 0)",
|
|
muted: "oklch(0.274 0.006 286.033)",
|
|
"muted-foreground": "oklch(0.705 0.015 286.067)",
|
|
accent: "oklch(0.274 0.006 286.033)",
|
|
"accent-foreground": "oklch(0.985 0 0)",
|
|
destructive: "oklch(0.704 0.191 22.216)",
|
|
"destructive-foreground": "oklch(0.985 0 0)",
|
|
border: "oklch(1 0 0 / 10%)",
|
|
input: "oklch(1 0 0 / 15%)",
|
|
ring: "oklch(0.646 0.222 41.116)",
|
|
"chart-1": "oklch(0.488 0.243 264.376)",
|
|
"chart-2": "oklch(0.696 0.17 162.48)",
|
|
"chart-3": "oklch(0.769 0.188 70.08)",
|
|
"chart-4": "oklch(0.627 0.265 303.9)",
|
|
"chart-5": "oklch(0.645 0.246 16.439)"
|
|
}
|
|
};
|
|
|
|
export default function setGlobalColorTheme(
|
|
themeMode: "light" | "dark",
|
|
colors: {
|
|
light: Record<string, string>;
|
|
dark: Record<string, string>;
|
|
}
|
|
) {
|
|
const merged = {
|
|
light: { ...defaultTheme.light, ...colors.light },
|
|
dark: { ...defaultTheme.dark, ...colors.dark }
|
|
};
|
|
|
|
const theme = merged[themeMode] as {
|
|
[key: string]: string;
|
|
};
|
|
|
|
for (const key in theme) {
|
|
document.documentElement.style.setProperty(`--${key}`, theme[key]);
|
|
}
|
|
}
|