如何配置 MUI v5 自定义字体系列?
How to configure MUI v5 custom font-family?
我有以下内容:
cont theme = createTheme({
typography: {
allVariants: MetricFontFaces,
fontFamily: 'MetricHPEXS'
} as TypographyOptions,
components: {
MuiFormControl: {
styleOverrides: {
root: {
fontFamily: 'MetricHPEXS'
}
}
},
MuiInput: {
styleOverrides: {
root: {
fontFamily: 'MetricHPEXS'
},
formControl: {
fontFamily: 'MetricHPEXS'
},
input: {
fontFamily: 'MetricHPEXS'
}
}
},
MuiOutlinedInput: {
styleOverrides: {
input: {
fontFamily: 'MetricHPEXS'
}
}
}
}
});
然后我试着在我的故事书中这样使用它:
<StyledEngineProvider injectFirst>
<ThemeProvider theme={theme}>
{story()}
<TextField value="sdasdasd" />
</ThemeProvider>
</StyledEngineProvider>
自定义字体系列不适用。
如何正确创建 MUI v5 主题以便所有组件都接受相同的自定义字体?
最后,我们将字体设置直接应用到 MuiCssBaseline
上,以便让其他所有内容都选择 font-family
。示例:
import { TypographyOptions } from '@mui/material/styles/createTypography';
export const muiThemeOptions = {
typography: {
fontFamily: 'MetricHPEXS'
} as TypographyOptions,
components: {
MuiCssBaseline: {
styleOverrides: MetricFontFaces // <== here
},
...
}
}
其中 MetricFontFaces
是一个巨大的 string
,其中定义了所有 @font-face
。虽然这适用于全局应用字体,但由于 MetricFontFaces
是一个字符串,我们无法轻松应用其他 CSS 样式。没有简单的方法(至少我找不到它们)通过 MuiCssBaseline
.
提供 @font-face
我有以下内容:
cont theme = createTheme({
typography: {
allVariants: MetricFontFaces,
fontFamily: 'MetricHPEXS'
} as TypographyOptions,
components: {
MuiFormControl: {
styleOverrides: {
root: {
fontFamily: 'MetricHPEXS'
}
}
},
MuiInput: {
styleOverrides: {
root: {
fontFamily: 'MetricHPEXS'
},
formControl: {
fontFamily: 'MetricHPEXS'
},
input: {
fontFamily: 'MetricHPEXS'
}
}
},
MuiOutlinedInput: {
styleOverrides: {
input: {
fontFamily: 'MetricHPEXS'
}
}
}
}
});
然后我试着在我的故事书中这样使用它:
<StyledEngineProvider injectFirst>
<ThemeProvider theme={theme}>
{story()}
<TextField value="sdasdasd" />
</ThemeProvider>
</StyledEngineProvider>
自定义字体系列不适用。
如何正确创建 MUI v5 主题以便所有组件都接受相同的自定义字体?
最后,我们将字体设置直接应用到 MuiCssBaseline
上,以便让其他所有内容都选择 font-family
。示例:
import { TypographyOptions } from '@mui/material/styles/createTypography';
export const muiThemeOptions = {
typography: {
fontFamily: 'MetricHPEXS'
} as TypographyOptions,
components: {
MuiCssBaseline: {
styleOverrides: MetricFontFaces // <== here
},
...
}
}
其中 MetricFontFaces
是一个巨大的 string
,其中定义了所有 @font-face
。虽然这适用于全局应用字体,但由于 MetricFontFaces
是一个字符串,我们无法轻松应用其他 CSS 样式。没有简单的方法(至少我找不到它们)通过 MuiCssBaseline
.
@font-face