+function setstyle(name, state = true) {
+ document.documentElement.classList.toggle('s-'+name, state);
+}
+
(function prefstyle() {
- docroot = document.documentElement;
- if (docroot.className) {
+ const cookies = new Map(
+ document.cookie.split(';').map(v => v.trim().split('=', 2))
+ );
+ if ((pref = cookies.get('style'))) {
+ setstyle(pref);
return;
}
+
new Map([
- ['s-mono', '(monochrome)'],
- ['s-dark', '(prefers-color-scheme: dark)'],
- ['s-circus', '(prefers-contrast: more)'],
+ ['mono', '(monochrome)'],
+ ['dark', '(prefers-color-scheme: dark)'],
+ ['circus', '(prefers-contrast: more)'],
]).forEach((q,c) => {
if (m = window.matchMedia(q))
- (m.onchange = e => docroot.classList.toggle(c, e.matches))(m);
+ (m.onchange = e => setstyle(c, e.matches))(m);
});
})();