Сообщение # 1 | 04:07:53
Здравствуйте. В первую очередь хочу сказать спасибо всем кто работает над нововведениями платформы! В этом году я взял 2 мегаполезных для своих сайтов дополнения - всплывающие окна с привязкой к куки и тёмную тему сайта.

Но с тёмной темой возникли сложности. Было бы замечательно подстраивать сайт под настройки пользователя, но к сожалению автопереход в тёмную-светлую тему на вашем скрипте не работает нигде. Ни в Firefox, ни в Chrome, ни на iPad и iPhone в Safari



В Firefox и Chrome по умолчанию стоит тёмная тема - сайт светлый пока не переключишь по иконке.

На планшетах и телефонах такая же история - в 10 вечера они переходят в тёмную системную тему, но сайт не реагирует, остаётся в светлой теме.

Сперва думал я где-то накосячил с установкой и CSS, но сайт-образец тоже показывает белую тему по умолчанию вне зависимости от настроек девайсов или браузеров на компьютере.

Сейчас скрипт такой:

Код
  let dmTimeoutId = null;
  const btnEl = document.getElementById('dm_btn');
  const icon = btnEl.querySelector('svg');
  const iconUseEL = btnEl.querySelector('use');
  const darkModeMediaQuery = window.matchMedia("(prefers-color-scheme: dark)");

  const toggleBtnState = (force, init=false) => {
    clearTimeout(dmTimeoutId);
    if (!init) {
      icon.classList.add('dm-spin');
      dmTimeoutId = setTimeout(() => icon.classList.remove('dm-spin'), 500);
    }
    iconUseEL.setAttribute('xlink:href', force ? '#moon_icon' : '#sun_icon');
  };
  const getPreferredTheme = () => {
    const mode = localStorage.getItem("darkmode");

    if (mode) {
      return mode === "true";
    } else {
      return darkModeMediaQuery.matches;
    }
  };
  const applyMode = (isDarkMode, fromListener = false)=>{
     document.body.classList.toggle('dark-mode', isDarkMode);
     toggleBtnState(isDarkMode, fromListener);
     localStorage.setItem('darkmode', isDarkMode)
  };

  applyMode(getPreferredTheme(), true);

  btnEl.addEventListener('click', () => {
    document.body.classList.toggle('dark-mode');
    applyMode(document.body.classList.contains('dark-mode'));
  });


Как можно решить проблему?
Прикрепления: 40536222.png (37.1 Kb)