重复问题
- 我已经搜索了现有的问题
最新版本
- 我已经测试了最新版本
重现问题的步骤 🕹
链接到实时示例:
https://github.com/cq-overlays/dashboard (我在 overrides.css
中有解决方法)
步骤:
- 创建自定义主题并用自己的色调覆盖"grey"颜色
export const theme = createTheme({
palette: {
mode: "dark",
primary: {
light: "#008585",
main: "#00BEBE",
dark: "#33cbcb",
contrastText: "#fff",
},
secondary: {
light: "#ab003c",
main: "#f50057",
dark: "#f73378",
contrastText: "#fff",
},
grey: {
50: "#626E84",
100: "#232c3d",
200: "#263042",
300: "#293346",
400: "#2c374b",
500: "#2f3a4f",
600: "#38445a",
700: "#414d64",
800: "#4a566e",
900: "#525f78",
A700: "#626E84",
A400: "#707B8F",
A200: "#7D8799",
A100: "#8992A2",
main: "#293346",
dark: "#2c374b",
},
},
})
- 创建一个自动完成组件
- 选择组件,使弹出窗口出现
当前行为 😯
目前,弹出窗口的背景颜色是默认的 "grey",而不是你在自定义主题中设置的灰色:
我的自定义灰色主题是一个非常蓝色的色调,但正如你所看到的,背景颜色要中性得多。我的主题中的自定义主要颜色被正确地继承了。
预期行为 🤔
这个弹出窗口的背景颜色应该像主要颜色一样从自定义主题中派生出来。
上下文 🔦
我正在尝试创建一个自动完成组件,并且我有自定义主题。
我希望添加的是,这是我第一次在这个仓库上提出问题,所以如果我遗漏了一个步骤,我道歉。
我的第一个假设是弹出窗口一定是在ThemeProvider上下文之外传送的,但是深色模式和主要颜色都被正确地继承了,所以那肯定不是它。
你的环境 🌎
npx @mui/envinfo
系统:
OS: Linux 5.10 Ubuntu 20.04.5 LTS (Focal Fossa)
Browser: Firefox
Binaries:
Node: 19.2.0 - ~/.nvm/versions/node/v19.2.0/bin/node
Yarn: Not Found
npm: 8.19.3 - ~/.nvm/versions/node/v19.2.0/bin/npm
Browsers:
Chrome: Not Found
Firefox: Not Found
npmPackages:
@emotion/react: ^11.10.5 => 11.10.5
@emotion/styled: ^11.10.5 => 11.10.5
@mui/base: 5.0.0-alpha.116
@mui/core-downloads-tracker: 5.11.7
@mui/material: ^5.11.7 => 5.11.7
@mui/private-theming: 5.11.7
@mui/styled-engine: 5.11.0
@mui/system: 5.11.7
@mui/types: 7.2.3
@mui/utils: 5.11.7
@types/react: ^18.0.27 => 18.0.27
react: ^18.2.0 => 18.2.0
react-dom: ^18.2.0 => 18.2.0
typescript: ^4.9.5 => 4.9.5
6条答案
按热度按时间ndh0cuux1#
@LeptoFlare,
AutoComplete
组件在选项列表下方使用了Paper
。根据你想要实现的功能,我认为你可以选择以下其中一个选项:1) 本地:更新选定的AutoComplete中的论文
2) 全局:更新整个UI中的AutoComplete中的论文
3) 全局:更新整个UI中的论文背景颜色
考虑到你想让这个主题成为全局的,我认为第二个或第三个(全局)选项会更适合你。然而,
background.paper
会影响到更多的组件,所以它不太安全。20jt8wwn2#
感谢您的回复!然而,我已经在使用一个(不太优雅)的解决方法,只是想看到这个问题得到修复。
ogsagwnx3#
遗憾的是,我不认为这可能在MUI方面进行更改。
默认调色板使用的是 static colors (即
background.paper
是#121212
),而不是动态主题颜色(如palette.gray
)。这种更改可能会带来更多问题,最重要的是:
kyks70gy4#
实际上,Paper背景并没有使用
grey
调色板的颜色。@mnajdova,@siriwatknp,@danilo-leal,你们知道为什么这样做吗?感谢分析这个问题,@rangoo94。你的建议是有效的。@LeptoFlare如果你想让你应用程序中的所有弹出窗口都有自定义背景,我建议你选择选项3。
njthzxwz5#
明白了!感谢解释。
t3irkdon6#
@michaldudak,从历史上看,有一种使用
grey
调色板的想法,但它会影响太多组件( #10015 )。这是一个有效的观点,无论是对于 MUI 内部还是外部库。把这个放在一边,我认为当前的解决方案是有意义的:
grey
调色板不同(它使用#ffffff
作为浅色模式和#121212
作为深色模式,它们之间没有关联)NativeSelectInput
使用它来设置下拉菜单选项的样式,不能直接在optgroup
中使用Paper
)尽管如此,考虑将
background.paper
和background.default
合并在一起可能是值得的 - 从代码来看,这些功能似乎是交替使用的(尽管不应该是这样)。