diff options
author | Gabe Cook <gabe565@gmail.com> | 2023-05-10 02:38:51 -0500 |
---|---|---|
committer | Bastien Wirtz <bastien.wirtz@gmail.com> | 2023-05-13 15:19:54 +0200 |
commit | 6cfa1643b4024af3a504fcc547fcd04dbb1a0d0a (patch) | |
tree | a5e6f8d2b55bf57271c31185aaa9f36b8cca4cee /src/components | |
parent | f0f9f0a017e341bc6bfb41ce82c66cd7c185c787 (diff) | |
download | homer-6cfa1643b4024af3a504fcc547fcd04dbb1a0d0a.tar.gz homer-6cfa1643b4024af3a504fcc547fcd04dbb1a0d0a.tar.zst homer-6cfa1643b4024af3a504fcc547fcd04dbb1a0d0a.zip |
Toggle dark mode when `prefers-color-scheme` changes
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/DarkMode.vue | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/components/DarkMode.vue b/src/components/DarkMode.vue index 4318c22..f0f823d 100644 --- a/src/components/DarkMode.vue +++ b/src/components/DarkMode.vue | |||
@@ -47,6 +47,7 @@ export default { | |||
47 | } | 47 | } |
48 | this.isDark = this.getIsDark(); | 48 | this.isDark = this.getIsDark(); |
49 | this.$emit("updated", this.isDark); | 49 | this.$emit("updated", this.isDark); |
50 | this.watchIsDark(); | ||
50 | }, | 51 | }, |
51 | methods: { | 52 | methods: { |
52 | toggleTheme: function () { | 53 | toggleTheme: function () { |
@@ -81,6 +82,13 @@ export default { | |||
81 | ]; | 82 | ]; |
82 | return values[this.mode]; | 83 | return values[this.mode]; |
83 | }, | 84 | }, |
85 | |||
86 | watchIsDark: function () { | ||
87 | matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => { | ||
88 | this.isDark = this.getIsDark(); | ||
89 | this.$emit("updated", this.isDark); | ||
90 | }); | ||
91 | }, | ||
84 | }, | 92 | }, |
85 | }; | 93 | }; |
86 | </script> | 94 | </script> |