MuiThemeProvider vs ThemeProvider
February 21, 2019 at 3:31pmThe Material-UI community has a new home. This thread is preserved for historical purposes. The content of this conversation may be innaccurrate or out of date. Go to new community home →
MuiThemeProvider vs ThemeProvider
February 21, 2019 at 3:31pmHello. I am a newbie for Material UI. I am wondering what is the best practice to use both theme providers. As I understand, I have to supply a theme to MuiThemeProvider to apply the theme to framework's components like Button, Card, etc. And I have to supply a theme to ThemeProvider in order to have it available when I create custom components
I am doing this in my project
const theme = createMuiTheme({typography: {useNextVariants: true}});ReactDOM.render(<MuiThemeProvider theme={theme}><ThemeProvider theme={theme}><App /></ThemeProvider></MuiThemeProvider>,document.getElementById('root'));
Is it correct to pass the same theme object to both providers?
March 23, 2019 at 4:20am
March 24, 2019 at 11:56am
If you are using the latest version of the alpha you no longer need to perform the
install()
step. If you are using a version that still needs it you can find the information here : https://material-ui.com/css-in-js/basics/#migration-for-material-ui-core-usersApril 14, 2019 at 5:39pm
I am able to access the theme via useTheme + <ThemeProvider theme={theme}> (i.e. in sub-components), BUT I am not able to overwrite the default theme, despite wrapping my App as follows:
import App from './App';import theme from './theme';import ThemeProvider from '@material-ui/styles/ThemeProvider';ReactDOM.render(<ThemeProvider theme={theme}><App /></ThemeProvider>,document.getElementById('root'));
Is the new
<ThemeProvider theme={theme}>
intended to globally set the theme? I am on /[email protected]
.It's also worth mentioning that the
install()
function is no longer exported from styles
, despite the suggest above (about 1 month ago). The
ThemeProvider
is intended to control its sub-components theme. Could you provide a minimal reproducible example?OK - so when running on /[email protected] with /[email protected] (4.0.0-alpha-7), the
theme
is not respected. With a major version release I am guessing you are aware of the lack of backwards compatibility. Let me know if not, and I can send you a MRE.April 15, 2019 at 2:45pm
If you want to use core v3 and styles v4 at the same time, you have to duplicate the theme provider: /MuiThemeProvider of v3 and the /ThemeProvider of v4.
July 1, 2019 at 9:03pm
I'm also having an issue getting a custom theme to work. I'm running:
/core 4.1.0
/styles 4.1.1
I have a theme.js file set up and imported into the index.tsx of my project. I'm seeing styles from the default theme rather than the theme that I set up and imported. Here's a link to the project:
<https://github.com/erichodges/IEX-Client/blob/master/src/index.tsx>
June 16, 2020 at 7:53am
October 27, 2020 at 4:30am
I'm new to react but have been spending a lot of time learning about the theme features. Thought I'd provide a default example that works for me. Keep in mind, i'm in Typescript, so you'll see me augmenting the base "CommonColors" interface in order to accept new colors under
theme.palette.common
definition....(not necessary if you're using normal JS).Again, hope this helps someone...
App.tsx
Theme.ts
Example implementation