modules/dreamview_plus/frontend/packages/dreamview-theme/README.md
dreamview-theme是dreamview主题样式变量的全集,赋予每一个变量一种语义,在开发过程中避免直接使用css样式,以达到统一管理样式的目的
import {Provider as ThemeProvider, makeStyles} from '@dreamview/dreamview-theme';
const useStyle = makeStyles((theme) => {
root: {
backgroundColor: theme.tokens.backgroundColor.main,
color: theme.tokens.font.color.main,
},
});
function ChildComponents() {
const {classes} = useStyle();
return (<div className={classes.root}>root</div>)
}
function App(){
return (
<ThemeProvider>
<ChildComponents />
</ThemeProvider>
)
}
通过替换tokens的变量的值达到替换主题的效果
import {Provider as ThemeProvider, makeStyles} from '@dreamview/dreamview-theme';
const useStyle = makeStyles((theme) => {
root: {
backgroundColor: theme.tokens.backgroundColor.main,
color: theme.tokens.font.color.main,
},
})
function ChildComponents() {
const {classes} = useStyle();
return (<div className={classes.root}>root</div>)
}
function App(){
const customTheme = {
tokens: {
backgroundColor: {
main: 'blue'
}
}
}
return (
<ThemeProvider config={customTheme}>
<ChildComponents />
</ThemeProvider>
)
}
import {Provider as ThemeProvider, makeStyles} from '@dreamview/dreamview-theme';
// 这里以button组件样式为例
const useStyle = makeStyles((theme) => {
root: theme.components.button.primary,
})
function ChildComponents() {
const {classes} = useStyle();
return (<button className={classes.root}>root</button>)
}
function App(){
return (
<ThemeProvider>
<ChildComponents />
</ThemeProvider>
)
}
├── README.md
├── createStyles.tsx // 创建provider和context
├── main.ts // 入口文件
├── scripts
│ └── generateType.js // 生成类型定义的脚本
├── tokens // 变量合集
│ ├── baseToken // 基础变量
│ │ ├── allColors.js // 主题色的全集
│ │ ├── colors.ts // 把每个主题色衍生出10个与之颜色相近的颜色
│ │ ├── index.ts // 基础变量
│ │ └── type.ts //
│ └── components // components
│ ├── button.ts // button组件的样式
│ └── index.ts