在Material-UI中使用子主题是否可行且明智?

时间:2017-04-06 07:44:33

标签: themes material-ui

UI的某些部分通常会与UI的其余部分形成对比色。例如,各种类型的帧组件通常是反向视频"从某种意义上说。

如果有一种方法可以在组件(如导航栏或框架标题)上指定一个适用于其所有子项的子主题,那就太好了。这是可行的吗?

这会与少数情况(特别是AppBar)发生冲突,这些情况会自行扭转颜色。

如果没有,FWIW,我使用HOC来应用样式(Typescript,未经过彻底测试):

import {Toolbar} from 'material-ui/Toolbar'

const reverseStyle = {
    backgroundColor: palette.frameBackground,
    color: palette.frameForeground,
}

type MetaComponent<P> = React.ComponentClass<P> | React.StatelessComponent<P>

function reverse
    <P extends {style?:React.CSSProperties}>
    (Comp: MetaComponent<P>)
    : React.StatelessComponent<P>
{
    return (props:P) => {
        const { style, ...other } = props as any
        return (<Comp style={{...reverseStyle,...style}} {...other}/>
        )
    }
}
export const ReverseToolbar = reverse(Toolbar)
//...etc...

0 个答案:

没有答案