при действии пользователя — сохранять в LS выбранное.
при загрузке страницы — брать значение из LS или если-пусто, подставлять значение по-умолчанию.
Что именно вызывает ступор?
Пока там только две настройки: выбранный цвет и день/ночь. Я бы предложил хранить их в виде JSON под одним ключом localStorage. В одном объекте.
Вообще, сделал бы объект Настроек центром всей затеи )
В начале берётся или сохранённый в LS, или с дефолтными значениями.
С помощью Proxy (обёртки) этого объекта, любое изменение любой из настроек сразу сохраняет весь объект в LS и применяет все эти настройки.
Есть функция, которая получает на вход объект Настроек, и все везде отрисовывает как надо.
Когда юзер выбирает цвет, день-ночь, или добавите что-то ещё – это действие только меняет настройку в проксированном объекте Настроек. Хитрость в том, что этот объект не простой, а Proxy-обёртка, которая реагирует на каждое изменение: сохраняет его в LS и отрисовывает.
p.s. да и одинаковые квадраты делать в статичной разметке некруто. Заменил на массив цветов и программную отрисовку одинаковых элементов.
Песочница