You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js中MUI自定义排版主题无法覆盖默认样式问题

问题解决:MUI自定义主题中H2/H5字号不生效

问题出在主题配置的结构错误——你把typography嵌套在了palette对象内部,而MUI的主题规范里,typography是和palette同级的顶层配置项,导致自定义的标题样式没有被正确加载。

修正后的layout.js代码如下:

"use client";

import { ThemeProvider, createTheme } from "@mui/material";
import "./globals.css";

const theme = createTheme({
  palette: {
    primary: {
      dark: "#5d059c",
      main: "#8608E0",
      light: "#9e39e6",
      contrastText: "#E9E1EF",
    },
    secondary: {
      dark: "#3c1656",
      main: "#56207C",
      light: "#774c96",
      contrastText: "#E9E1EF",
    },
  },
  // 将typography移到palette同级,作为顶层配置
  typography: {
    h2: {
      fontSize: "5rem",
      fontWeight: 700,
    },
    h5: {
      fontSize: "1rem",
      fontWeight: 500,
    },
  },
});

export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <ThemeProvider theme={theme}>
        <body>{children}</body>
      </ThemeProvider>
    </html>
  );
}

修改后,Nav组件中使用variant="h2"和variant="h5"的Typography元素,就会正确应用你定义的字号和 fontWeight 样式了。

内容的提问来源于stack exchange,提问作者Nithin Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:32:06