文字颜色在Material-UI主题中不起作用

时间:2018-12-20 21:24:02

标签: javascript material-ui

使用Material-UI为颜色创建主题时,我将对比文字设置为白色(#fff)。它适用于具有原色而不是辅助色的按钮。

尝试覆盖,如此处所述:Material UI: Unable to change button text color in theme。如果覆盖可以解决问题,那么我需要编写一个帮助。

const colortheme = createMuiTheme({
    palette: {
        primary: { main: '#e91e63' },
        secondary: { main: '#03a9f4' },
        contrastText: '#fff',
    }
});

期望两个按钮都具有白色文本。而是将一个按钮变成黑色:

enter image description here

编辑:我创建了主题,并在父级上渲染了Material UI的SimpleModal组件,将主题道具传递给了子级。该按钮将呈现在孩子身上。

父母:

const blues = createMuiTheme({
    palette: {
        primary: { main: '#00e5ff' },
        secondary: { main: '#2979ff' },
        contrastText: '#fff'
    }
})

 <SimpleModal label="content" theme={blues} color="primary" document="content" />

孩子:

            <div>
                <MuiThemeProvider theme={this.props.theme}>
                    <Button className={classes.margin} variant="contained" color={this.props.color} onClick={this.handleOpen}>{this.props.label}</Button>
                </MuiThemeProvider>
                <Modal open={this.state.open} onClose={this.handleClose}>
                    <div style={getModalStyle()} className={classes.paper}>
                        <Typography variant="h6" id="modal-title">{this.state.reference}</Typography>
                        <Typography variant="subtitle1" id="simple-modal-description">{this.state.content}</Typography>
                    </div>
                </Modal>
            </div>

2 个答案:

答案 0 :(得分:3)

要使两种颜色的文本均为白色,您需要:

const colortheme = createMuiTheme({
  palette: {
    primary: { main: "#e91e63", contrastText: "#fff" },
    secondary: { main: "#03a9f4", contrastText: "#fff" }
  }
});

必须在每种颜色意图内指定contrastText

以下是显示此内容的完整示例:

Edit 81xpxy6312

答案 1 :(得分:1)

请尝试添加单独的对比度文本,并对其进行更改,直到匹配为止,因为颜色受背景影响。因此,您必须选择具有正确背景的正确颜色。看到这个:https://material-ui.com/style/color/

const blues = createMuiTheme({
    palette: {
        primary: { main: '#00e5ff',contrastText: '#fff', },
        secondary: { main: '#2979ff',contrastText: '#000', },

    }
})

对于上述两种颜色,请使用以下代码:

const blues = createMuiTheme({
    palette: {
        primary: { main: '#e91e63' },
        secondary: { main: '#0277bd' },

    }
})