|
@@ -13,13 +13,29 @@
|
|
|
(!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: light)').matches)
|
|
|
) {
|
|
|
document.documentElement.classList.add('light');
|
|
|
- } else if (localStorage.theme) {
|
|
|
+ } else if (localStorage.theme && localStorage.theme !== 'system') {
|
|
|
localStorage.theme.split(' ').forEach((e) => {
|
|
|
document.documentElement.classList.add(e);
|
|
|
});
|
|
|
- } else {
|
|
|
+ } else if (localStorage.theme && localStorage.theme === 'system') {
|
|
|
+ systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
|
+ document.documentElement.classList.add(systemTheme ? 'dark' : 'light');
|
|
|
+ }
|
|
|
+ else {
|
|
|
document.documentElement.classList.add('dark');
|
|
|
}
|
|
|
+
|
|
|
+ window.matchMedia('(prefers-color-scheme: dark)').addListener((e) => {
|
|
|
+ if (localStorage.theme === 'system') {
|
|
|
+ if (e.matches) {
|
|
|
+ document.documentElement.classList.add('dark');
|
|
|
+ document.documentElement.classList.remove('light');
|
|
|
+ } else {
|
|
|
+ document.documentElement.classList.add('light');
|
|
|
+ document.documentElement.classList.remove('dark');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
</script>
|
|
|
|
|
|
%sveltekit.head%
|