У меня есть компонент темы, который меняет логотип сайта в зависимости от категории, в которой находится пользователь, и добавляет логотипы к категориям в боковой панели. Теперь они хотят использовать другой логотип в темной теме.
Я ужасно разбираюсь в CSS, но кажется, что было бы гораздо проще, если бы существовал класс “это-темная-режим”. Или, возможно, что-то вроде вышеприведенного сработает.
Или, возможно, если бы это был «настоящий» компонент темы с настройками (сейчас он просто написан вручную, как выше), то было бы достаточно просто добавить эти настройки в CSS. Похоже, что мне, вероятно, следует сделать именно это, верно?
Это имеет смысл. У меня тоже был такой случай, но @david, для меня это сработало бы.
Кроме того, считается ли сложность выдачи значков ошибкой или чем-то другим?
Это может быть ошибкой, но нам потребуются дополнительные детали, чтобы точно определить это. Кроме того, это не относится к данной теме, поэтому лучше всего поискать информацию по этой проблеме. Если вы не найдёте ответа, создайте новую тему и подробно опишите, что вы пытаетесь сделать и на каком этапе возникает сбой.
Чисто CSS-решение, вероятно, использовало бы CSS-переменную --scheme-type или даже свойство color-scheme, которое было добавлено всего несколько часов назад (ура!), в сочетании с @container-запросами по стилю или функцией light-dark().
К сожалению, light-dark() работает только со значениями цветов. Возможно, можно использовать @container-запросы по стилю, нацеленные на свойство color-scheme (в Firefox пока не поддерживаются запросы по стилю для пользовательских свойств). Протестировать эту идею пока не удалось, так как моя среда разработки сейчас недоступна.
Наличие отдельного класса .dark-mode или .light-mode на корне определённо сделало бы работу с этим максимально простой.