MantineProvider
MantineProvider component can be used to change theme. It is not required if you decide to use the default theme.
Usage
CSS reset and global styles
MantineProvider has an option to add css reset similar to normalize.css (withNormalizeCSS)
and global styles (withGlobalStyles). It is recommended to enable these options.
withGlobalStyles prop will add the following styles:
- background-color to
theme.colors.dark[7]in dark color scheme andtheme.whitein light - color to
theme.colors.dark[0]in dark color scheme andtheme.blackin light - font-family and font-smoothing based on theme
- font-size to
theme.fontSizes.md
CSS variables
If you prefer to style components with CSS/SCSS or other styling solutions that do not have access to Mantine theme
context, then you can use Mantine CSS variables. To add CSS variables to the :root set withCSSVariables prop on MantineProvider:
Then you will be able to use variables anywhere in your CSS:
Mantine exposes the following CSS variables based on theme you provide:
--mantine-color-white--mantine-color-black--mantine-transition-timing-function--mantine-line-height--mantine-font-family--mantine-font-family-monospace--mantine-font-family-headings--mantine-heading-font-weight--mantine-shadow-{size}, e.g.--mantine-shadow-sm,--mantine-shadow-xl--mantine-radius-{size}, e.g.--mantine-radius-sm,--mantine-radius-xl--mantine-spacing-{size}, e.g.--mantine-spacing-sm,--mantine-spacing-xl--mantine-font-size-{size}, e.g.--mantine-font-size-sm,--mantine-font-size-xl--mantine-color-{color}-{shade}, e.g.--mantine-color-blue-6,--mantine-color-gray-0--mantine-{heading}-font-size, e.g.--mantine-h1-font-size--mantine-{heading}-line-height, e.g,--mantine-h3-line-height
Nested MantineProviders
If some parts of your application require different theme settings, you can wrap them with another MantineProvider:
Note that nested MantineProvider will inherit theme override from parent provider only if inherit prop is set:
Styles on MantineProvider
You can add context styles to components that support Styles API with MantineProvider. All components that are rendered inside MantineProvider will inherit those styles:
If component does not specify Styles API selectors, then in most cases you can add styles using root selector:
Classes on MantineProvider
Same as with styles you can add classes to all components with classNames.
This approach is useful when you want to styles components with utility based CSS libraries.