X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/d98df9cb4fb14f54acb85c59fcff90800be73e01..cf106be38f365e8db3a63dfbca70c8a9a402f3df:/prefer.js?ds=sidebyside diff --git a/prefer.js b/prefer.js index 2bf092b..6f5c379 100644 --- a/prefer.js +++ b/prefer.js @@ -1,14 +1,22 @@ +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); }); })();