As a programmer it's definitely appealing to be able to create a theme mathematically by just inverting. But then design will get their hands on it and you really have to be prepared for that with something like a semantic layer. It will look much better in the end as well.