如何为所有 MUI 组件全局禁用 box-shadow?

IT技术 reactjs material-ui themes
2021-05-09 08:34:21

我需要禁用box-shadow大多数 MUI 组件的默认设置现在我通过为每个组件手动设置样式来做到这一点,如下所示:

<FloatingActionButton style={{boxShadow: "none"}} />

有没有办法在全球范围内做到这一点,也许使用主题设置?

4个回答

您可以通过这样的组件来完成:

<AppBar elevation={0} />

在一个 material-ui 主题的配置对象中,你可以看到该shadows属性,在你的代码中覆盖它,只留下none值,删除所有其余的。

您的代码应如下所示:

const theme = createMuiTheme({
  shadows: ["none"]
});

所有阴影框都将在您的应用程序中完全删除。

P/s:这个配置是针对 version 的1.0.0-beta.8,我必须在这里注意,因为这个 version 有一些破坏性的变化。

我对 TypeScript 使用以下内容:

import { createMuiTheme } from "@material-ui/core/styles"
import { Shadows } from "@material-ui/core/styles/shadows"

const theme = createMuiTheme({
  shadows: Array(25).fill("none") as Shadows,
})

只需zDepthShadows在主题中将 设置为“无”,通过创建自定义主题或在导入主题时覆盖它们。