重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
重现步骤 🕹
使用WebStorm并尝试为SvgIcon创建自定义color
变体,如default
,它是#434A54
。
export const muiTheme = createTheme({
palette: {
default: {
main: '#434A54',
},
},
components: {
MuiIcon: {
variants: [
{
props: {
// TODO
// color: 'default',
},
style: {
color: theme.black,
},
},
],
},
},
plPL,
},
);
declare module '@mui/material/styles' {
interface Palette {
default: Palette['primary'];
}
interface PaletteOptions {
default: PaletteOptions['primary'];
}
}
declare module '@mui/material/Icon' {
interface IconPropsColorOverrides {
default: true;
}
}
declare module '@mui/material/SvgIcon' {
interface SvgIconPropsColorOverrides {
default: true;
}
}
当前行为 😯
无法将名为default
的颜色添加到MuiSvgIcon;我在组件或其他任何地方都没有提示(只有默认颜色可用)。
预期行为 🤔
主题中不应有任何错误,自定义颜色应显示在提示中
上下文 🔦
我的朋友在VSCODE上没有这样的问题,只有我在WebStorm上有这个问题:|
你的环境 🌎
- 无响应*
8条答案
按热度按时间ej83mcc01#
在Joy UI中,图标组件需要主题调色板颜色的概念,就像其他组件一样:
@siriwatknp 为什么图标组件需要主题调色板颜色的概念?我是说,为什么通用的
sx
属性API不够用?e5nszbig2#
sx
属性用于(本地)自定义。拥有color
属性允许您创建自己的主题。例如,在 iOS 主题中,颜色可能是primary
颜色(系统蓝色):在某些主题中,您可能希望使用
default
颜色或neutral
颜色(在 Joy UI 中),这是无法使用sx
属性实现的。brvekthn3#
你不能用sx prop来实现这个功能。
@siriwatknp 我正在考虑使用sx prop进行一次性定制。对于主题,我认为
styleOverrides
是为了涵盖这个用例。但即使对于iOS,图标颜色可能需要color: inherit
的案例太多,将蓝色设置为默认图标颜色是行不通的。我不明白为什么图标需要特殊处理颜色,这证明使用普通的CSS颜色定制API是不够的,意味着需要一个专用的
color
、palette
或colorText
属性。对于按钮,我知道为什么需要它,因为添加一个颜色CSS属性之外还有很多其他操作。我认为在Material UI v1左右引入
color
属性的初衷是为了保持API的一致性,但我们已经看到了它可能会带来#32141(评论)的行为上的惊喜和困惑,以及它会创建不同的方式来完成同样的事情,从而增加复杂性。这让我不禁思考:使用这个属性到底是更好还是更糟?你可能想要保留默认颜色,
我认为在v5中删除了
default
作为有效的颜色值,根据#13028 。zvokhttg4#
主题中不应有任何错误,提示中应可见自定义颜色。
你能提供一个可复现错误的CodeSandbox吗?
wz3gfoph5#
解:根据题意,可知$x+y=10$,所以和一定时,一个加数越大,另一个加数越小.
答:选B.
nvbavucw6#
由于问题缺少关键信息且已处于7天不活跃状态,因此已被自动关闭。如果您希望看到问题重新打开,请提供缺失的信息。
vqlkdk9b7#
@rajithaw 代码表示MUI v6将移除
color
组件的Icon
和SvgIcon
属性。material-ui/packages/mui-material/src/SvgIcon/SvgIcon.js
第52行到第53行:
| | // TODO v5 deprecate, v6 remove for sx |
| | color: |
所以,这将起作用:
https://stackblitz.com/edit/react-zws3or-lndpfm?file=demo.tsx
我们还有关于能够添加新属性的问题,例如与主题相关的color属性。我猜这将适用于@AdamZajler,一旦我们移除了color属性。
@siriwatknp 这是否适用于Joy UI?如果不行,那么我更倾向于让Material UI与Joy UI保持一致。
ccgok5k58#
@siriwatknp 这个是否适用于Joy UI?如果不适用,那么我更倾向于在Joy UI上对齐Material UI。
我不会在Joy UI中删除
color
属性,因为它与其他组件一样引用主题调色板:然而,我很乐意进一步讨论,以使Material UI和Joy UI保持一致。
参考:我们在#32141(评论)中讨论了
color
属性名称。