rem, em and px units
rem units
All Mantine components use rem
units to apply size styles (margin
, padding
, width
, etc.).
By default, 1rem
is considered to be 16px
as it is a default setting in most browsers.
All components scale based on the user's browser font-size settings or font-size of html
/:root
.
rem units scaling
If you want to change font-size of :root
/html
element and preserve Mantine components sizes,
set scale
on theme to the value of 1 / htmlFontSize
.
For example, if you set html
font-size to 10px
and want to scale Mantine components accordingly, you need
to set scale
to 1 / (10 / 16)
(16 – default font-size) = 1 / 0.625
= 1.6
:
em units
em
units are used in media queries the same way as rem
units, but they are not affected by font-size specified on html
/:root
element.
1em
is considered to be 16px
.
px conversions
You can use numbers in some Mantine components props. Numbers are treated as px
and converted to rem
, for example:
The same conversion happens in style props:
rem and em function
@mantine/core
package exports rem
and em
function that can be used to convert px
into rem
/em
:
Convert rem to px
To convert rem
/em
to px
use px
function exported from @mantine/core
:
rem/em functions in css files
You can use rem
and em
function in css files if
postcss-preset-mantine is installed:
Convert px to rem automatically in css files
To convert px
to rem
automatically in css files, enable autoRem
option in
postcss-preset-mantine configuration: