In the biggest project I currently manage, the custom CSS I wrote boils down to maybe 150 lines total of: custom fonts, some ::before/::after styles and styled tags inside a markdown section using @apply. Everything else is just classes in components.
What OP seems to be looking for is just a higher level of abstraction. So that there's less repetitiveness.
That's exactly what Tailwind does. And does VERY well.
But we should have more, and better ones. I didn't sit down and think about how it would be, I was just curious why we didn't go that path already, if a lot of people don't like CSS.
Also "everyone hates CSS" is a bit of an unfounded and simplistic statement to make and may be why a couple of us thought you were asking a pretty uninformed question.