blob: 5bc2d41d7b9aaff809868fe58a5b3694b5072514 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// 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);
}
});
});
|