I am struggling with the same. everything is object oriented, but CSS is not:
it would be so nice to have 3 containers (A/B/C) define borders/background/hover properties
and to have another 3 containers (X/Y/Z) define text properties (color,font,size,weight)
Then you
could assign your HTML containers just IDs/or Classes if they are always the same (E/F/G)
Now you'd define
.E{
.A
.Z
}
.F{
.B
.Z
}
.G{
.C
.Y
}
the very reasons why this is NOT possible and now one can "manage" hierarchies (cascades) is the reason why so many pages have 10s of thousands of lines of CSS code.
If one could "inherit" other ids/classes in a CSS definition this could greatly be reduced.
One would simply define the structure (layout) in HTML and CSS.
the worst way to do it I have found in ServiceNow:
They use CSS variables, elements are not documented, you need to figure out yourself. Each element has 3 Ifs...