mirror of
https://git.mills.io/prologic/zs
synced 2025-02-15 03:23:14 +03:00
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
// Toggle the navigation menu and theme
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var menuToggle = document.getElementById('menu-toggle');
|
|
var mainNav = document.getElementById('main-nav');
|
|
var themeToggle = document.getElementById('theme-toggle');
|
|
var body = document.body;
|
|
|
|
// Menu toggle functionality
|
|
menuToggle.addEventListener('click', function() {
|
|
mainNav.classList.toggle('open');
|
|
});
|
|
|
|
// Theme toggle functionality
|
|
themeToggle.addEventListener('click', function() {
|
|
// Toggle between 'light' and 'dark' themes
|
|
var currentTheme = body.getAttribute('data-theme') || 'light';
|
|
var newTheme = currentTheme === 'dark' ? 'light' : 'dark';
|
|
body.setAttribute('data-theme', newTheme);
|
|
localStorage.setItem('theme', newTheme);
|
|
});
|
|
|
|
// On page load, set the theme from localStorage or system preference
|
|
var storedTheme = localStorage.getItem('theme');
|
|
if (storedTheme) {
|
|
body.setAttribute('data-theme', storedTheme);
|
|
} else {
|
|
// Detect system preference
|
|
var prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
var defaultTheme = prefersDarkScheme ? 'dark' : 'light';
|
|
body.setAttribute('data-theme', defaultTheme);
|
|
}
|
|
|
|
// Listen for changes in the system color scheme
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) {
|
|
var storedTheme = localStorage.getItem('theme');
|
|
if (!storedTheme) {
|
|
var newColorScheme = e.matches ? 'dark' : 'light';
|
|
body.setAttribute('data-theme', newColorScheme);
|
|
}
|
|
});
|
|
});
|