Суть то не изменилась.
Как это делал бы я.
Стандартный файл стилей, где описан каркас + таблица стилей для цветовой гаммы.
При выборе нужной, через ajax загружаю нужную таблицу стилей в линк, с предыдущей темой, сохраняю выбор на сервере. Ну и сервер отдаёт нам выбранный стиль.
Для красоты повесить лоадер, пока не загрузился стиль.
Это всё с учётом, что меняется только цветовая гамма