Colour that works in more than one setting.
Naming your colours once, in one place, is what makes a second theme possible at all.
Many people now prefer a dark interface, and many switch depending on the time of day, so the practical requirement is that a design work in at least two settings rather than one. The mistake that makes this painful is scattering literal colour values throughout your work, one at a time, wherever each is needed. Do that and a second theme means finding and changing every single one, correctly, without missing any, and then maintaining both versions in step forever. It is not conceptually hard. It is simply an enormous, error prone chore that grows every time you add anything.
The alternative is to name your colours in one place and refer to them everywhere else by name. Not by what they look like, though, but by the job they do: the main background, the ordinary text, the quiet text, the accent, the line that separates things, the warning. Then a second theme is a second set of values for the same names, defined once, and the entire design follows. This also improves your first theme, because being forced to name the roles makes you notice that you were using five slightly different greys where two would have been clearer and more consistent.
Two cautions worth carrying. First, a dark theme is not the light one with the values reversed: pure white text on pure black is harsh, large areas of saturated colour behave differently against dark backgrounds, and shadows that gave depth on a pale surface simply disappear. Both need looking at with your own eyes. Second, sufficient contrast between text and its background is not decoration, it is the difference between readable and not, and it must be checked in every theme you offer rather than assumed to carry over from the one you designed first.