How to create different themes in Material-UI React
Material-UI themes:
In Material-UI, we can define the theme at one place. We can define all fonts, color palette at one place in our application. By default, it provides a default theme. You can check this object here.
In this post, we will learn how to configure theme in Material-UI.
YouTube video:
I have published one video on YouTube. You can watch it here:
Base project:
We will create one simple project and add theme to it.
Create one file Main.js as like below:
import {
makeStyles,
createStyles,
AppBar,
Toolbar,
IconButton,
Typography,
Fab,
} from "@material-ui/core";
import { AddIcCallOutlined } from "@material-ui/icons";
import MenuIcon from "@material-ui/icons/Menu";
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
margin: theme.spacing(2),
width: theme.spacing(50),
},
fab: {
position: "absolute",
bottom: 20,
right: 20,
},
})
);
function Main() {
const classes = useStyles();
return (
<>
<AppBar position="static">
<Toolbar>
<IconButton style={{ color: "white" }} edge="start">
<MenuIcon />
</IconButton>
<Typography variant="h6">Dashboard</Typography>
</Toolbar>
</AppBar>
<Fab color="secondary" className={classes.fab}>
<AddIcCallOutlined />
</Fab>
</>
);
}
export default Main;
Use it in your App.js:
import Main from "./Main";
function App() {
return (
<div>
<Main />
</div>
);
}
export default App;

Changing the theme:
You can change the theme and add it to the root component as like below:
import Main from "./Main";
import { createTheme, ThemeProvider } from "@material-ui/core/styles";
function App() {
const theme = createTheme({
palette: {
primary: {
light: "#b39ddb",
main: "#673ab7",
dark: "#512da8",
contrastText: "#fff",
},
secondary: {
light: "#448aff",
main: "#2979ff",
dark: "#2962ff",
contrastText: "#000",
},
},
});
return (
<ThemeProvider theme={theme}>
<Main />
</ThemeProvider>
);
}
export default App;
It will change it to:

You can check the default theme object to customize different theme properties.