是否有在react中的主题提供程序中提供多种字体的选项,然后通过挂钩或其他方式在不同的元素/组件上动态应用其中一种字体?
BR、Igor
是。您可以通过主题配置提供多种字体。
const theme = createMuiTheme({
typography: {
a: {
fontFamily: "Roboto",
fontSize: 12
},
b: {
fontFamily: "Helvetica",
fontSize: 14
}
}
});
<ThemeProvider theme={theme}>
<... />
</ThemeProvider>
在您的组件中:
const useStyles = makeStyles((theme) => ({
textA: {
...theme.typography.a,
},
textB: {
...theme.typography.b,
}
}));
const Greeting = ({useA}) => {
const classes = useStyles();
return <p className={useA ? classes.textA : classes.textB}>Hey</p>;
};
如果不想创建两个类名,也可以将一个属性传递给useStyles
,并根据该属性设置类内的字体。
我这样做了,它使用createTheme
工作
const theme = createTheme({
...
typography: { fontFamily: 'Montserrat, Yekan' },
});