Let\'s say we have a list of classes storing background colors.
.bgr-red //background-color: rgb(255, 0, 0);
.bgr-green //background-color: rgb(0, 0 , 255);
Use CSS variables:
.bgr-red {
background-color: rgba(255, 0, 0, var(--a, 1));
}
.bgr-green {
background-color: rgba(0, 0, 255, var(--a, 1));
}
.bgr-blue {
background-color: rgba(0, 128, 0, var(--a, 1));
}
.alpha-90 {
--a: 0.9;
}
.alpha-70 {
--a: 0.7;
}
.alpha-10 {
--a: 0.1;
}
<div class="bgr-red">...</div>
<div class="bgr-red alpha-70">...</div>
<div class="bgr-red alpha-10">...</div>
And for better support you can consider pseudo element to create the background layer and adjust opacity:
div {
position: relative;
z-index: 0;
}
div::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
.bgr-red::before {
background-color: rgb(255, 0, 0);
}
.bgr-green::before {
background-color: rgb(0, 0, 255);
}
.bgr-blue::before {
background-color: rgb(0, 128, 0);
}
.alpha-90::before {
opacity: 0.9;
}
.alpha-70::before {
opacity: 0.7;
}
.alpha-10::before {
opacity: 0.1;
}
<div class="bgr-red">...</div>
<div class="bgr-red alpha-70">...</div>
<div class="bgr-red alpha-10">...</div>