reactjs - 如何更改主 Material UI 的颜色
问题描述
我有这样的主题:
export const Original = createMuiTheme({
palette: {
type: 'light',
primary: {
light: '#b2dfdb',
main: '#26a69a',
dark: '#004d40',
}
}
});
我用它来做这个:
<ListItem color = 'primary' button >
<img src={APP} alt='' />
</ListItem>
我怎样才能使用primary-light
或primary-dark
ListItem
解决方案
如果您阅读 Material UI 文档。你会知道List
&ListItem
没有props
color
. 因此,为了让您根据需要添加一种或应用任何其他颜色,您可以执行以下操作:-
App.js
(要求:ThemeProvider
&createMuiTheme
来自@material-ui/core/styles
)
import React from "react";
import { ThemeProvider, createMuiTheme } from "@material-ui/core/styles";
import "./style.css";
import Demo from "./Demo";
export default function App() {
const lightTheme = createMuiTheme({
palette: {
type: "light",
primary: {
light: "#b2dfdb",
main: "#26a69a",
dark: "#004d40"
}
}
});
return (
<ThemeProvider theme={lightTheme}>
<Demo />
</ThemeProvider>
);
}
Demo.js
(要求:makeStyles
或'useTheme'来自@material-ui/stlyes
):-
import React from "react";
import { makeStyles, useTheme } from "@material-ui/styles";
import { List, ListItem } from "@material-ui/core";
import "./style.css";
const Demo = () => {
const classes = useStyles();
const theme = useTheme();
return (
<>
<List>
<ListItem className={classes.listItem}>
Using useStyles (classes)
</ListItem>
<ListItem style={{ color: theme.palette.primary.dark }}>
Using inline direct theme
</ListItem>
</List>
<List className={classes.list}>
<ListItem>Having List control over all ListItem styles</ListItem>
</List>
</>
);
};
export default Demo;
const useStyles = makeStyles(theme => ({
listItem: {
color: theme.palette.primary.light
},
list: {
color: theme.palette.primary.main
}
}));
以下是您可以参考的工作沙箱代码。
推荐阅读
- javascript - 成帧器运动中的悬停动画。文字在视觉上变得扭曲
- python - 从 Element Selenium Python 打印文本
- python - 如何获取python元组列表中所有键的总和?
- javascript - Mousemove 不会在用户选择的窗口外触发:无
- javascript - 为什么递归不起作用?我正在尝试显示 n 到 1 系列
- vue.js - Vue路由页面动画和转换不起作用
- json - 如何在 MariaDB 中将值转换为 JSON?
- r - 我们必须在聚合之前排序吗?
- c# - 对 DataGridView 进行排序时的静态列
- c++ - 如何将字符串分配给 const char*?