Отмена события «Onclick»?
button.onclick = function(e){
//меняем цвет
}
document.onclick = function(e){
if(e.target != button) //ставим другой цвет
}
Условия типа e.target.classList.contains() могут не срабатывать, если в кнопке есть картинка или другой элемент. Поэтому попробуйте еще e.target.closest('СЕЛЕКТОР КНОПКИ') в условиях.
Делегирование. Вешаете на документ\область обработчик клика, проверяете есть в ли месте клика нужный класс - делаете свои делишки, если нету - делаете другие делишки. //внутри функции onclick
if (event.target.classList.contains('нужный класс')){
...
} else { ... }