【发布时间】:2021-10-11 11:36:58
【问题描述】:
我想在我的主题中配置一些颜色,供我的应用程序中的某些类别使用。
所以我设置了一个主题并在我的组件中使用它。
theme.tsx
import { createTheme, Theme } from '@mui/material/styles'
import { red } from '@mui/material/colors'
export const theme: Theme = createTheme({
palette: {
primary: {
main: blue[800]
},
secondary: {
main: '#19857b'
},
cat1: {
main: red[700]
}
}
})
circle.tsx
import CircleIcon from '@mui/icons-material/FiberManualRecord'
import {theme} from '/shared/theme'
export function Circle() {
return (
<>
<CircleIcon style={{ color: theme.palette.cat1.main }} />
<CircleIcon style={{ color: theme.palette.cat1[200] }} />
</>
)
}
我试图实现的是以动态方式设置某些元素的颜色。因此,第 1 类中的圆将变为红色。所有需要的颜色都被导入到主题中。我不想在组件本身中导入所有可能的颜色。
但我也想根据这个计算另一个元素的颜色。在上面的示例中,我想获得 200 个红色。
【问题讨论】:
-
您想通过只将
red对象传递给主题来使用颜色的所有形状吗? -
@NearHuscarl 我不知道推荐的方式。最后,我只需要两三个等级的颜色。但我想计算它而不是通过硬编码所有可能性来污染主题配置......
标签: javascript reactjs material-ui