Hmm, what is the problem with:
Theme → component 1, component 2
Light theme → common CSS, light CSS tweaks Dark theme → common CSS, dark CSS tweaks
Seems like a very simple structure to me