Для достижения этих целей потребуется пре- или постпроцессор, или решение CSS -in- JS.
Вы можете рассмотреть:
- БЭМ-подобный подход для каскадного обмена и отмены уникального.
.foo {
color: black;
background: yellow;
}
.bar {
color: red;
}
.baz {
color: blue;
}
<span class="foo">This is FOO</span>
<span class="foo bar">This is FOO + BAR</span>
<span class="foo baz">This is FOO + BAZ</span>
... или
a CSS Пользовательские свойства (также известные как CSS Variables) для более гибкого применения и переопределения.
:root {
--main-color: black;
}
.foo {
color: var(--main-color);
}
.bar {
--main-color: red;
}
<span class="foo">This is FOO</span>
<span class="foo bar">This is FOO + BAR</span>