По клику на кнопку меняете класс тега body. Соответственно файл css у Вас будет содержать строки, отвечающие за новую тему:
/* тема по умолчанию */
p {
color:green;
font-weight:normal;
}
/* изменение темы */
.template1 p {
color:red;
}
Далее, если хотите, чтобы тема оставалась у человека и при последующих заходах на сайт, а также при переходах между страницами, то Вам его выбор надо сохранить, например в cookie. Если же Вы хотите выбор закрепить намертво и чтобы он был доступен с любого компа, то пользователя необходимо идентифицировать (например, через авторизацию) и записать его выбор в базу данных. В принципе, если изменения очень глобальные и тем предполагается много, то чтобы не предлагать весь css со всеми темами всем пользователям, Вы можете подгружать основной main.css всем, а файл с темой template1.css только тем, кто его выбрал и закрепил за собой. Соответственно, перед формированием страницы проверяете выбор пользователя (cookie или базу данных) и подгружаете соответствующие файлы или как в первом варианте — указываете для body определенный класс.