Цвет должен соответствовать контрастности, если оно не соответствует, то читаться будет плохо
Обьединить контексты ты всегда можешь, а разъединить будет сложнее
ну типа я вижу это так:
1, В светлой теме у тебя белая кнопка с чёрным текстом
2. В тёмной теме у тебя зелёная кнопка с чёрным текстом (допустим пусть тоже чёрный)
Итого у тебя 2 переменных и по 2 значения для светлой и тёмной темы. Они матчатся 1 к 1