18 lines
No EOL
525 B
JavaScript
18 lines
No EOL
525 B
JavaScript
// Theme detection and switching
|
|
const getPreferredTheme = () => {
|
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
|
|
}
|
|
|
|
const setTheme = theme => {
|
|
document.documentElement.setAttribute('data-bs-theme', theme)
|
|
}
|
|
|
|
// Set initial theme
|
|
setTheme(getPreferredTheme())
|
|
|
|
// Listen for changes in user's preferred color scheme
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
|
setTheme(getPreferredTheme())
|
|
})
|
|
|
|
export { getPreferredTheme, setTheme };
|