Многим на сайтах очень не хватает быстрой смены встроенных тем, как минимум смены светлой на тёмную и наоборот. Ситуация с темами в вебе до сих пор не самая лучшая из-за многих сложностей. Всё, что касается темы, ложится прямиком на сторону сайта. Разработчикам сайтов приходится либо на js, либо на серверной стороне создавать всякие переключатели тем, которые обычно запрятаны где-то в настройках пользователя. Т.е. просто для смены темы посетителю надо обязательно регистрироваться на сайте, либо приходится использовать cookie, если делать смену темы на JavaScript. В общем, как не крути, а для такой простой задачи надо городить много лишнего. Всё это можно в разы упростить, если добавить этот функционал в CSS и браузер.
Нужны правила CSS описывающие разные цветовые темы сайта и их поддержка на уровне интерфейса самого браузера. Так чтобы было возможно переключить тему сайта через интерфейс самого браузера. Напр., в CSS файле для тем созданы следующие правила:
@theme (light, 1, default) { /* это будет при выборе темы light */ body {background-color: white;} @import "/style/light.css" screen; } @theme (dark, 2) { /* это будет при выборе темы dark */ body {background-color: black;} @import "/style/dark.css" screen; }
Здесь CSS @-правила @theme
задают темы сайта. Значения light
и dark
это названия тем, которые могут быть любым набором символов, после следуют их порядковые номера в результирующем списке, что браузер выведет для пользователя. Значение default
говорит о том, что эту тему надо устанавливать по-умолчанию. Обязательным значением является только название темы, оно должно быть уникальным для всего CSS сайта.
Браузер из значений этих правил заполняет собственный список названий доступных тем данного сайта и выводит его где-нибудь в своём интерфейсе, напр., справа от строки URL, чтобы пользователь в любое время мог выбрать желаемую тему сайта непосредственно в самом браузере. В этом примере у сайта будут доступны темы «light» и «dark», но их может быть сколько угодно. После выбора конкретной темы применяются CSS правила этой темы. Более того, браузер должен запоминать текущую выбранную/активную тему для каждого сайта, чтобы при каждом новом заходе на сайт не приходилось заново выбирать тему. Всё это никак не связано с cookie, т.е. по этому поводу сайт и браузер никак не переговариваются, сам сайт может не знать какая сейчас тема сайта активна у каждого конкретного пользователя.