This problem was solved a long time ago with CSS Modules.

I prefer almost anything to CSS modules, so this bike shedding topic is probably very subjective.