Skip to content

Commit

Permalink
Create dark-mode.js
Browse files Browse the repository at this point in the history
  • Loading branch information
rluvaton committed Apr 23, 2024
1 parent b55e579 commit 74f282b
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions docs/.vitepress/theme/dark-mode.js
@@ -0,0 +1,27 @@
import { ref, computed, inject } from 'vue';

export function createDarkMode(app) {
const prefersDark = ref(false);
const setting = ref('auto');

const isDark = computed(
() =>
setting.value === 'dark' ||
(prefersDark.value && setting.value !== 'light')
);
const toggleDark = () => {
setting.value = setting.value === 'dark' ? 'light' : 'dark';
localStorage.setItem('color-scheme', setting.value);
};

prefersDark.value =
window.matchMedia &&
window.matchMedia('(prefers-color-scheme: dark)').matches;
setting.value = localStorage.getItem('color-scheme') || 'auto';

app.provide('is-dark', { isDark, toggleDark });
}

export function useDarkMode() {
return inject('is-dark');
}

0 comments on commit 74f282b

Please sign in to comment.