Как сделать возможность изменения цветовой схемы на сайте для пользователей?
Самый простой вариант, использовать несколько css файлов и в зависимости от выбранной темы, подключать нужный. Сам выбор хранить в куках.
Создаешь разные классы (is-red, is-green и т.д), накидываешь их на корневой элемент html при клике на кнопку темы  В стилях прописываешь что-то типа такого:
.is-red body {
  background-color: red;
}
.is-green body {
 background-color: green;
}
И так для всего, что меняет внешний вид в зависимости от темы.
Сохранять выбор темы можно в куки и считывать при загрузки страницы.