mirror of
https://github.com/ente-io/ente.git
synced 2025-05-24 03:59:22 +00:00
60 lines
1.9 KiB
TypeScript
60 lines
1.9 KiB
TypeScript
import { ensure } from "@/utils/ensure";
|
|
import type { PaletteOptions, ThemeColorsOptions } from "@mui/material";
|
|
import { THEME_COLOR } from "./constants";
|
|
|
|
export const getPallette = (
|
|
themeColor: THEME_COLOR,
|
|
colors: ThemeColorsOptions,
|
|
): PaletteOptions => {
|
|
const paletteOptions = getPalletteOptions(themeColor, colors);
|
|
switch (themeColor) {
|
|
case THEME_COLOR.LIGHT:
|
|
return { mode: "light", ...paletteOptions };
|
|
default:
|
|
return { mode: "dark", ...paletteOptions };
|
|
}
|
|
};
|
|
|
|
export const getPalletteOptions = (
|
|
themeColor: THEME_COLOR,
|
|
colors: ThemeColorsOptions,
|
|
): PaletteOptions => {
|
|
return {
|
|
primary: {
|
|
// TODO: Refactor this code to not require this ensure
|
|
main: ensure(colors.fill?.base),
|
|
dark: colors.fill?.basePressed,
|
|
contrastText:
|
|
themeColor === "dark" ? colors.black?.base : colors.white?.base,
|
|
},
|
|
secondary: {
|
|
main: ensure(colors.fill?.faint),
|
|
dark: colors.fill?.faintPressed,
|
|
contrastText: colors.text?.base,
|
|
},
|
|
accent: {
|
|
main: ensure(colors.accent?.A500),
|
|
dark: colors.accent?.A700,
|
|
contrastText: colors.white?.base,
|
|
},
|
|
critical: {
|
|
main: ensure(colors.danger?.A700),
|
|
dark: colors.danger?.A800,
|
|
contrastText: colors.white?.base,
|
|
},
|
|
background: {
|
|
default: colors.background?.base,
|
|
paper: colors.background?.elevated,
|
|
},
|
|
text: {
|
|
primary: colors.text?.base,
|
|
secondary: colors.text?.muted,
|
|
disabled: colors.text?.faint,
|
|
base: colors.text?.base,
|
|
muted: colors.text?.muted,
|
|
faint: colors.text?.faint,
|
|
},
|
|
divider: colors.stroke?.faint,
|
|
};
|
|
};
|