Qortal-Hub/src/styles/theme.ts
2025-04-12 19:14:20 +02:00

181 lines
3.3 KiB
TypeScript

import { createTheme } from '@mui/material/styles';
// Extend the Theme interface
const commonThemeOptions = {
typography: {
fontFamily: ['Roboto'].join(','),
h1: {
fontSize: '2rem',
fontWeight: 600,
},
h2: {
fontSize: '1.75rem',
fontWeight: 500,
},
h3: {
fontSize: '1.5rem',
fontWeight: 500,
},
h4: {
fontSize: '1.25rem',
fontWeight: 500,
},
h5: {
fontSize: '1rem',
fontWeight: 500,
},
h6: {
fontSize: '0.875rem',
fontWeight: 500,
},
body1: {
fontSize: '23px',
fontWeight: 400,
lineHeight: 1.5,
letterSpacing: 'normal',
},
body2: {
fontSize: '18px',
fontWeight: 400,
lineHeight: 1.4,
letterSpacing: '0.2px',
},
},
spacing: 8,
shape: {
borderRadius: 4,
},
breakpoints: {
values: {
xs: 0,
sm: 600,
md: 900,
lg: 1200,
xl: 1536,
},
},
components: {
MuiButton: {
styleOverrides: {
root: {
backgroundColor: 'inherit',
transition: 'filter 0.3s ease-in-out',
'&:hover': {
filter: 'brightness(1.1)',
},
},
},
defaultProps: {
disableElevation: true,
disableRipple: true,
},
},
MuiModal: {
styleOverrides: {
root: {
zIndex: 50000,
},
},
},
},
};
const lightTheme = createTheme({
...commonThemeOptions,
palette: {
mode: 'light',
primary: {
main: '#f4f4fb',
dark: '#eaecf4',
light: '#f9f9fd',
},
secondary: {
main: '#c2deec',
},
background: {
default: '#fafafa',
paper: '#f0f0f0',
},
text: {
primary: '#000000',
secondary: '#525252',
},
},
components: {
MuiCard: {
styleOverrides: {
root: {
boxShadow:
'rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(230, 200, 200, 0.06) 0px 1px 2px 0px;',
borderRadius: '8px',
transition: 'all 0.3s ease-in-out',
'&:hover': {
cursor: 'pointer',
boxShadow:
'rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;',
},
},
},
},
MuiIcon: {
defaultProps: {
style: {
color: '#000000',
opacity: 0.5,
},
},
},
},
});
const darkTheme = createTheme({
...commonThemeOptions,
palette: {
mode: 'dark',
primary: {
main: '#2e3d60',
dark: '#1a2744',
light: '#3f4b66',
},
secondary: {
main: '#45adff',
},
background: {
default: '#313338',
paper: '#1e1e20',
},
text: {
primary: '#ffffff',
secondary: '#b3b3b3',
},
},
components: {
MuiCard: {
styleOverrides: {
root: {
boxShadow: 'none',
borderRadius: '8px',
transition: 'all 0.3s ease-in-out',
'&:hover': {
cursor: 'pointer',
boxShadow:
' 0px 3px 4px 0px hsla(0,0%,0%,0.14), 0px 3px 3px -2px hsla(0,0%,0%,0.12), 0px 1px 8px 0px hsla(0,0%,0%,0.2);',
},
},
},
},
MuiIcon: {
defaultProps: {
style: {
color: '#ffffff',
opacity: 0.5,
},
},
},
},
});
export { lightTheme, darkTheme };