1
0
Fork 0
mirror of https://github.com/netz39/www.netz39.de.git synced 2025-05-29 15:49:59 +02:00

Initial commit

This commit is contained in:
MG-5 2023-10-16 01:36:59 +02:00 committed by GitHub
commit ecca3df926
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
259 changed files with 53743 additions and 0 deletions
assets/js/partials

View file

@ -0,0 +1,47 @@
/* @preserve Dark mode Init */
/*
* There are two color palettes on CSS for the data-theme: 'light' and 'dark'.
* Initially the script check if a theme is set in session storage and
* alternatively listens to a MediaQuery callback looking for "prefers-color-scheme: dark".
*/
const themeButton = {
'light': '<i class="fas fa-adjust" aria-hidden="true"></i>',
'dark': '<i class="fas fa-adjust fa-rotate-180" aria-hidden="true"></i>'
}
const currentTheme = () => sessionStorage.getItem('theme')
function setMode(theme) {
document.documentElement.setAttribute('data-theme', theme)
sessionStorage.setItem('theme', theme)
const toggle = document.getElementById('theme-toggle')
if (toggle) {
toggle.innerHTML = themeButton[theme]
}
}
function themeToggle() {
let sessionPrefers = currentTheme()
if (sessionPrefers === 'light') {
setMode('dark')
} else {
setMode('light')
}
}
window.onload = function bootstrapTheme() {
if (isAutoTheme) {
if (!currentTheme()) {
// Load browser's preference
let browserPrefersDark = window.matchMedia('(prefers-color-scheme: dark)');
browserPrefersDark.addEventListener('change', () => {
if (browserPrefersDark.matches) sessionStorage.setItem('theme', 'dark')
});
}
// Load theme
let sessionPrefers = currentTheme()
setMode(sessionPrefers ? sessionPrefers : 'light')
}
}