目前我使用以下代码使用jss为元素添加颜色。
const styleSheet = theme => ({
root: {
backgroundColor: theme.colors.red,
},
})

我想知道是否存在一个基于颜色theme.colors.red
添加不透明度的函数。
示例smt像:
backgroundColor: color(theme.colors.red, .05),
答案 0 :(得分:7)
或者,您可以使用Material UI Next中提供的淡入淡出功能。
import {fade} from 'material-ui/styles/colorManipulator';
const theme = createMuiTheme({
overrides: {
MuiButton: {
root: {
boxShadow: `0 4px 8px 0 ${fade(defaultTheme.palette.primary[500], 0.18)}`,
}
},
}
});
export default theme;
以下是它的工作原理:https://github.com/mui-org/material-ui/blob/v1-beta/src/styles/colorManipulator.js#L157-L164
另一种解决方案可能是使用https://github.com/styled-components/polished
中的类似颜色函数答案 1 :(得分:6)
材料UI具有colorManipulator
utility file,其中包括fade
方法:
用法:
import { fade } from '@material-ui/core/styles/colorManipulator';
/**
* Set the absolute transparency of a color.
* Any existing alpha values are overwritten.
*
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
* @param {number} value - value to set the alpha channel to in the range 0 -1
* @returns {string} A CSS color string. Hex input values are returned as rgb
*/
{
backgroundColor: fade(theme.colors.red, 0.5)
}
color库也可能有用:
import Color from 'color';
然后您可以在代码中引用它:
{
backgroundColor: Color(theme.colors.red).alpha(0.5).string()
}
答案 2 :(得分:4)
我找到了一个使用
的解决方案 backgroundColor: theme.utils.rgba(theme.axColor.black, 0.7),
答案 3 :(得分:2)
您可以使用RGBA值
const styleSheet = theme => ({
root: {
backgroundColor: 'rgba(255, 255, 255, 0.5)',
},
})
答案 4 :(得分:1)
另一种可能是:
char *findword(const char *s, const char *w) {
size_t len = strlen(w);
char *p;
while ((p = strstr(s, w)) != NULL) {
if ((p == s || p[-1] == ' ') && (p[len] == '\0' || p[len] == ' '))
break;
s = p + len;
}
return p;
}
然后你可以这样做:
import color from "color"
const themeColorsRed = color
.rgb(theme.colors.red)
.array()
答案 5 :(得分:1)
其中一些答案引用了已弃用的 Material-UI 功能。当前首选的方法是使用 alpha
:
import { alpha } from "@material-ui/core";
...
// yields rgba(255,255,255,0.85)
backgroundColor: alpha(theme.palette.background.paper, 0.85)
答案 6 :(得分:0)
对于它的价值,也可以使用8位十六进制代码
const styleSheet = theme => ({
root: {
backgroundColor: '#ffffff80',
},
})
答案 7 :(得分:0)
假设您尚未在颜色中定义Alpha通道,也可以执行以下操作:
backgroundColor: theme.colors.red + '00'
这会将alpha通道设置为0,因此是透明的。您可以在'00'
至'ff'