diff options
Diffstat (limited to 'res/js')
-rwxr-xr-x | res/js/themeswap.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/res/js/themeswap.js b/res/js/themeswap.js new file mode 100755 index 0000000..12969a0 --- /dev/null +++ b/res/js/themeswap.js @@ -0,0 +1,26 @@ +function addStyleSheet(name, id) { + var path = '/res/css/' + name + '.min.css'; + var old = document.getElementById(id); + if (old && (old.href != path)) { + old.href = path; + } +} + +var otherTheme = { + 'dark': 'light', + 'light': 'dark', +}; + +var currentTheme = localStorage.getItem('theme'); + +if (!otherTheme.hasOwnProperty(currentTheme)) { + currentTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; +} + +addStyleSheet(currentTheme, 'theme'); + +function toggleTheme() { + currentTheme = otherTheme[currentTheme] || 'light'; + localStorage.setItem('theme', currentTheme); + addStyleSheet(currentTheme, 'theme'); +}
\ No newline at end of file |