Слава: Почему "говнокодить"? А если класс .button необходимо будет прописать не тегу button, а тегу span? У него, как известно, псевдокласса :active не бывает и проблему можно решить на JS. Вы с принципами БЭМ познакомьтесь прежде, чем делать какие-то выводы. А за ответ - благодарен. С уважением!)
Ох!)) По поводу value у span - аж стыдно стало. Я-то думал, в чем проблема: и события выставлял и манипуляции с добавлением класса менял, - все бесполезно.
Алексей Уколов: Может лучше разделить стили на общие (встречающиеся во всех темах) и изменяемые (то, что меняется в зависимости от выбранной темы). В таком случае мы легко вешаем класс к body.