MUI THEME
unknown
typescript
a year ago
13 kB
9
Indexable
import { createTheme } from "@mui/material/styles";
export const muiTheme = createTheme({
palette: {
mode: "dark",
primary: {
main: "#2ea1f8",
contrastText: "#ffffff",
dark: "#1878ba",
light: "#c2e1f9"
},
secondary: {
main: "#FFF",
dark: "#1878ba"
},
common: {
darkBackground: "#1D242A",
appHeight: "60px",
contrast: "#7F8FA4"
},
background: {
default: "#26303C",
paper: "#2A3744",
backdrop: "rgba(0, 0, 0, 0.4)",
blackBackground: "#121212",
dark60: "#354052",
tableRowHover: "#546780"
},
text: {
primary: "#ffffff",
secondary: "#c2e1f9",
disabled: "#7f8fa4"
},
success: {
main: "#a5ffb9",
dark: "#71ba81",
light: "#dfffe6"
},
warning: {
main: "#ffab2b",
dark: "#726046"
},
error: {
main: "#ff4d6a",
dark: "#be4a5d",
light: "#be4a5d"
},
divider: "#364556"
},
typography: {
fontFamily: "Rubik, sans-serif",
fontWeightLight: 300,
fontSize: 14,
h1: {
fontSize: 32,
lineHeight: 3,
fontWeight: 500
},
h2: {
fontSize: 24,
lineHeight: 2.25,
fontWeight: 500
},
h3: {
fontSize: 20,
lineHeight: 2,
fontWeight: 500
},
h4: {
fontSize: 16,
lineHeight: 1.25,
fontWeight: 500
},
h5: {
fontSize: 12,
lineHeight: 1,
fontWeight: 500
},
h6: {
fontSize: 10,
lineHeight: 1,
fontWeight: 500
},
subtitle1: {
fontSize: 20,
fontWeight: 300,
lineHeight: 2
},
subtitle2: {
fontSize: 16,
fontWeight: 400,
lineHeight: 1.25
},
body1: {
fontSize: 14,
lineHeight: 1.25
},
caption: {
color: "#c2e1f9"
}
},
components: {
MuiTooltip: {
defaultProps: {
arrow: true
}
},
MuiButton: {
styleOverrides: {
root: ({ theme }) => ({
fontWeight: theme.typography.fontWeightRegular,
textTransform: 'none'
}),
disabled: ({ theme }) => ({
borderColor: theme.palette.divider
})
},
defaultProps: {
size: "small"
},
variants: [
{
props: { color: "secondary" },
style: ({ theme }) => ({
borderColor: "#586069",
fontWeight: theme.typography.fontWeightRegular,
backgroundColor: theme.palette.background.paper,
color: theme.palette.text.secondary,
"&:hover": {
borderColor: theme.palette.text.primary,
color: theme.palette.text.primary,
backgroundColor: theme.palette.background.default
}
})
}
]
},
MuiButtonGroup: {
defaultProps: {
size: "small"
}
},
MuiGrid: {
styleOverrides: {}
},
MuiCheckbox: {
styleOverrides: {
checked: ({ theme }) => ({
color: theme.palette.text.primary
})
},
defaultProps: {
size: "small"
}
},
MuiFab: {
defaultProps: {
size: "small"
}
},
MuiFormControl: {
defaultProps: {
margin: "dense",
size: "small"
}
},
MuiAutocomplete: {
styleOverrides: {
root: ({ theme }) => ({
"& .MuiFormLabel-root": {
color: theme.palette.common.contrast
}
})
}
},
MuiFormControlLabel: {
styleOverrides: {
root: {
marginRight: 0,
marginLeft: 0
},
labelPlacementStart: ({ theme }) => ({
".MuiFormControlLabel-label": {
marginRight: theme.spacing(1),
marginLeft: 0
}
})
}
},
MuiFormHelperText: {
defaultProps: {
margin: "dense"
}
},
MuiIconButton: {
defaultProps: {
size: "small"
}
},
MuiInputBase: {
styleOverrides: {
root: {
"[type='number']::-webkit-inner-spin-button": {
display: "none"
},
"[type='number']": {
MozAppearance: "textfield"
}
}
},
defaultProps: {
margin: "dense"
}
},
MuiInputLabel: {
defaultProps: {
margin: "dense"
}
},
MuiRadio: {
defaultProps: {
size: "medium",
color: "secondary"
},
styleOverrides: {
root: {}
}
},
MuiSwitch: {
styleOverrides: {
root: ({ theme }) => ({
width: 42,
height: 26,
padding: 0,
"& .MuiSwitch-switchBase": {
padding: 0,
margin: 2,
transitionDuration: "300ms",
"&.Mui-checked": {
transform: "translateX(16px)",
color: theme.palette.text.primary,
"& + .MuiSwitch-track": {
backgroundColor: theme.palette.primary.main,
opacity: 1,
border: 0
},
"&.Mui-disabled + .MuiSwitch-track": {
opacity: 0.5
}
},
"&.Mui-focusVisible .MuiSwitch-thumb": {
color: theme.palette.primary.main,
border: "6px solid #fff"
},
"&.Mui-disabled .MuiSwitch-thumb": {
color: theme.palette.mode === "light" ? theme.palette.grey[100] : theme.palette.grey[600]
},
"&.Mui-disabled + .MuiSwitch-track": {
opacity: theme.palette.mode === "light" ? 0.7 : 0.3
}
},
"& .MuiSwitch-thumb": {
boxSizing: "border-box",
width: 22,
height: 22
},
"& .MuiSwitch-track": {
borderRadius: 26 / 2,
backgroundColor: "#546780",
opacity: 1,
transition: theme.transitions.create(["background-color"], {
duration: 500
})
}
})
},
defaultProps: {
size: "small",
disableRipple: true
}
},
MuiTextField: {
defaultProps: {
margin: "dense",
size: "small"
}
},
MuiAppBar: {
defaultProps: {
color: "primary"
}
},
MuiTab: {
styleOverrides: {
root: ({ theme }) => ({
textTransform: "none"
})
}
},
MuiTabs: {
defaultProps: {
textColor: "primary"
}
},
MuiAccordion: {
styleOverrides: {
root: {
boxShadow: "none",
"&.Mui-expanded:before": {
opacity: 1
}
}
}
},
MuiTableCell: {
styleOverrides: {
root: ({ theme }) => ({
borderColor: theme.palette.background.paper
})
}
},
MuiOutlinedInput: {
styleOverrides: {
root: ({ theme }) => ({
backgroundColor: theme.palette.background.default,
color: theme.palette.text.primary,
":hover:not(:focus-within) .MuiOutlinedInput-notchedOutline": {
borderColor: theme.palette.text.disabled
}
})
}
},
MuiSelect: {
styleOverrides: {
standard: ({ theme }) => ({
backgroundColor: "red"
})
}
},
MuiMenuItem: {
styleOverrides: {
root: ({ theme }) => ({
padding: theme.spacing(2)
})
}
},
MuiAccordionSummary: {
styleOverrides: {
root: ({ theme }) => ({
color: theme.palette.text.secondary,
backgroundColor: theme.palette.background.default
}),
content: {
display: "flex",
alignItems: "center"
}
}
},
MuiAccordionDetails: {
styleOverrides: {
root: ({ theme }) => ({
backgroundColor: theme.palette.background.paper,
borderRadius: "0 4px 4px 0"
})
}
},
MuiSlider: {
styleOverrides: {
thumb: {
margin: 0,
backgroundColor: "#FFF",
border: "1px solid #2EA1F8",
width: 24,
height: 24
},
valueLabel: {
fontSize: 14,
lineHeight: 1.25,
fontWeight: 300,
background: "unset",
padding: 0,
width: 30,
height: 30,
borderRadius: "50% 50% 50% 0",
backgroundColor: "#2EA1F8",
color: "#fff",
transformOrigin: "bottom",
transform: "translate(35%, -100%) rotate(-45deg) scale(0)",
"&:before": { display: "none" },
"&.MuiSlider-valueLabelOpen": {
transform: "translate(35%, -100%) rotate(-45deg) scale(1)"
},
"& > *": {
transform: "rotate(45deg)"
}
}
}
},
MuiDivider: {
variants: [
{
props: { variant: "dashed" },
style: {
display: "flex",
borderColor: "#7F8FA4",
width: "100%",
borderStyle: "dashed",
margin: "1em 0"
}
}
]
},
MuiDrawer: {
variants: [
{
props: { variant: "persistent" },
style: ({ theme }) => ({
flexShrink: 0,
whiteSpace: "nowrap",
backgroundColor: theme.palette.background.blackBackground,
"& .MuiDrawer-paper": {
boxShadow: `0 0 20px 0 ${theme.palette.background.backdrop}`,
padding: theme.spacing(2),
minWidth: 300,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none",
border: 0,
top: theme.palette.common.appHeight,
height: `calc(100% - (2 * ${theme.palette.common.appHeight}) - ${theme.spacing(4)})`
}
})
},
{
props: { variant: "temporary" },
style: ({ theme }) => ({
flexShrink: 0,
whiteSpace: "nowrap",
"& .MuiDrawer-paper": {
boxShadow: `0 0 20px 0 ${theme.palette.background.backdrop}`,
padding: theme.spacing(2),
minWidth: 300,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none",
border: 0,
top: theme.palette.common.appHeight,
height: `calc(100% - (2 * ${theme.palette.common.appHeight}) - ${theme.spacing(4)})`
}
})
}
],
defaultProps: {}
},
MuiDialogActions: {
styleOverrides: {
root: ({ theme }) => ({
marginTop: theme.spacing(3)
})
}
},
MuiDialog: {
styleOverrides: {},
variants: [
{
props: { color: "warning" },
style: ({ theme }) => ({
"& .MuiPaper-root": {
border: `1px solid ${theme.palette.warning.main}`,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none"
}
})
},
{
props: { color: "success" },
style: ({ theme }) => ({
"& .MuiPaper-root": {
border: `1px solid ${theme.palette.success.main}`,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none"
}
})
},
{
props: { color: "info" },
style: ({ theme }) => ({
"& .MuiPaper-root": {
border: `1px solid ${theme.palette.info.main}`,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none"
}
})
},
{
props: { color: "error" },
style: ({ theme }) => ({
"& .MuiPaper-root": {
border: `1px solid ${theme.palette.error.main}`,
backgroundColor: theme.palette.background.blackBackground,
backgroundImage: "none"
}
})
}
],
defaultProps: {
color: "primary"
}
}
},
spacing: 8,
shape: {
borderRadius: 4
}
});
declare module "@mui/material/Divider" {
interface DividerPropsVariantOverrides {
dashed: true;
}
}
declare module "@mui/material/styles/createPalette" {
interface CommonColors {
darkBackground: string;
appHeight: string;
contrast: string;
}
interface TypeBackground {
backdrop: string;
blackBackground: string;
dark60: string;
tableRowHover: string;
}
}
Editor is loading...
Leave a Comment