CSS правила для тем сайтов и их поддержка в браузерах

Многим на сайтах очень не хватает быстрой смены встроенных тем, как минимум смены светлой на тёмную и наоборот. Ситуация с темами в вебе до сих пор не самая лучшая из-за многих сложностей. Всё, что касается темы, ложится прямиком на сторону сайта. Разработчикам сайтов приходится либо на 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, т.е. по этому поводу сайт и браузер никак не переговариваются, сам сайт может не знать какая сейчас тема сайта активна у каждого конкретного пользователя.