Custom Dark Mode?

I am essentially trying to implement a custom dark and light mode setting that changes the appearance of all buttons on all screens depending on which is enabled.

I have a general understanding of how this can be accomplished but I want to know if anyone has input on what would be the most practical method.