// TODO: add settings functionality, refer to whensapp project import { FC, ReactNode } from "react"; import { createTheme, ThemeProvider } from "@mui/material/styles"; interface UserThemeProviderProps { children: ReactNode; } // palette and accent settings export const userPalette = { primary: { // light: '#a1c3f9', main: "#8ab4f8", // dark: '#4285f4', }, secondary: { // light: '#a1c3f9', main: "#8ab4f8", // dark: '#4285f4', }, error: { light: "#e57373", main: "#f44336", dark: "#d32f2f", }, warning: { light: "#ffb74d", main: "#ffa726", dark: "#f57c00", }, info: { light: "#a1c3f9", main: "#8ab4f8", dark: "#4285f4", }, success: { light: "#81c784", main: "#66bb6a", dark: "#388e3c", }, grey: { 50: "#fafafa", 100: "#f5f5f5", 200: "#eeeeee", 300: "#e0e0e0", 400: "#bdbdbd", 500: "#9e9e9e", 600: "#757575", 700: "#616161", 800: "#424242", 900: "#212121", A100: "#f5f5f5", A200: "#eeeeee", A400: "#bdbdbd", A700: "#616161", }, background: { paper: "#303134", default: "#202124", }, }; export const UserThemeProvider: FC = ({ children }) => { // font family settings // TODO: figure out how to bundle fonts in tauri let fontFamily = "JetBrains Mono"; // switch (settings.display.font_family) { // case "sans_serif": // fontFamily = "GoogleSans, sans-serif"; // break; // case "monospace": // fontFamily = "JetBrainsMono, monospace"; // break; // case "comic_sans": // fontFamily = "ComicSans, sans-serif"; // break; // case "system_font": // fontFamily = "system-ui"; // break; // } // font scaling settings // const fontSize = (settings.display.font_scaling / 100) * 14; const userTheme = createTheme({ typography: { fontFamily: fontFamily, // fontSize: fontSize, }, palette: { mode: "dark", ...userPalette, }, transitions: { duration: { // shortest: settings.display.transition_duration, // shorter: settings.display.transition_duration, // short: settings.display.transition_duration, // // most basic recommended timing // standard: settings.display.transition_duration, // // this is to be used in complex animations // complex: settings.display.transition_duration, // // recommended when something is entering screen // enteringScreen: settings.display.transition_duration, // // recommended when something is leaving screen // leavingScreen: settings.display.transition_duration, }, }, components: { MuiButton: { styleOverrides: { root: { textTransform: "none" }, }, }, MuiTab: { styleOverrides: { root: { textTransform: "none", }, }, }, }, }); return {children}; };