Я создал 2 файла css: base1 и base2(где белая и чёрная тема, соответственно), в них хранились переменные, при чём с одинаковым названием, но разным значением в зависимости от файла.
В main.js добавил функцию по импортированию первого или второго файла css в зависимости от значения переменной theme(dark-theme или light-theme) в локальном хранилище таким образом:
if (localstorage.theme === "dark-theme") {
import(путь к файлу)
} else {
import(другой путь к файлу)
}
Дальше в файле, в моём случае это был компонент vue, добавлял слушатель событий по нажатию на иконку, в этом слушателе я устанавливал при помощи localstorage.setItem() тему в зависимости от иконки(солнца/луна), релоудил страницу и вызывал функцию из main.js, которую предворительно импортировал в мой компонент. Надесь было полезным :)