MUI Theme hook version 5 : creating global theme

Viewed 163

I'm trying to create a theme for my Next.JS application with MUI version 5. I created the Theme in my layout component, and I expected the Theme to have effect in other child components. but I can't seem to get my Button to change from the default primary colour. It does work with the "h1"tag, and I'm wondering why it works for the h1 tag and not for the Button component.

//layout component

import { AppBar, Container, CssBaseline, Toolbar, Typography ,createTheme, ThemeProvider} from '@mui/material';
import useStyles from '../utils/styles';

export default function Layout({ title, children, description }) {
    const theme = createTheme({
        typography: {
          h1: {
            fontSize: '1.6rem',
            fontWeight: 400,
            margin: '1rem 0',        // this is working
          },
          h2: {
            fontSize: '1.4rem',
            fontWeight: 400,         // this is working
            margin: '1rem 0',
          },
          palette: {
            type: 'light',
            primary: {               // this is not working
              main: '#f0c000',
            },
            secondary: {
              main: '#208080',
            },
          },
        },
      
      
      });
  const classes = useStyles()


  return (
    <div>
 
      <ThemeProvider theme={theme}>
          <CssBaseline/>
      <AppBar position="static" className={classes.navbar}>
        <Toolbar>
          <Typography>App</Typography>
        </Toolbar>
      </AppBar>
      <Container className={classes.main}>{children}</Container>
      <footer className={classes.footer}>
        <Typography>All right reserved</Typography>
      </footer>

      </ThemeProvider>
     
    </div>
  );
}


Component where I want to use the Theme :

import useStyles from '../../utils/styles'
import { useTheme } from '@mui/material';

export default function ButtonScreen() {
    const theme = useTheme();
  const classes = useStyles();

  return (

// this h1 tag responds to the Theme style provided in the layout component
 <Typography component="h1" variant="h1">  
                Button Action
              </Typography>

//The button default colour still persist, even with the theme in place. 
 <Button fullWidth variant='contained' color="primary">Click me</Button>

)

}

Can someone help me figure out what I am missing here?!

0 Answers
Related