diff --git a/app.js b/app.js index ccea8c8..cea0841 100644 --- a/app.js +++ b/app.js @@ -2,7 +2,7 @@ function loadPage(section, page) { let buttons = document.getElementById(section).getElementsByTagName("button"); let currSel; for (let i in buttons) { - if (buttons[i].classList?.contains("sel-btn")) { + if (buttons[i].classList?.contains("selected")) { if (page - 1 == i) return; else { currSel = buttons[i]; @@ -16,9 +16,9 @@ function loadPage(section, page) { .then((data) => { document.getElementById(section + "-content").innerHTML = data; if (currSel) { - currSel.classList.remove("sel-btn"); + currSel.classList.remove("selected"); } - document.getElementById(section).getElementsByTagName("button")[page - 1].classList.add("sel-btn"); + document.getElementById(section).getElementsByTagName("button")[page - 1].classList.add("selected"); }); } @@ -27,9 +27,9 @@ function activeSection(section) { const targetSection = document.getElementById(section); targetSection.style.display = "block"; - setTimeout(()=>{ - targetSection.scrollIntoView({ block: "start", behavior: "smooth" }); - },100) + setTimeout(() => { + targetSection.scrollIntoView({ block: "start", behavior: "smooth" }); + }, 100); } function hideAll() { @@ -37,18 +37,37 @@ function hideAll() { s.style.display = "none"; }); } +const HIDDEN_CLASS = "hidden"; - -function switchTheme(){ - let currTheme = document.documentElement.style.getPropertyValue('color-scheme'); - console.log(currTheme); - if (currTheme == "dark") { - document.getElementsByClassName("fa-sun")[0].style.display = "none"; - document.getElementsByClassName("fa-moon")[0].style.display = "block"; - document.documentElement.style.setProperty('color-scheme', 'light'); +function hideThemeSwitcher(currentTheme) { + if (currentTheme == "dark") { + document.getElementById("dark-icon")?.classList.add(HIDDEN_CLASS); + document.getElementById("light-icon")?.classList.remove(HIDDEN_CLASS); } else { - document.getElementsByClassName("fa-moon")[0].style.display = "none"; - document.getElementsByClassName("fa-sun")[0].style.display = "block"; - document.documentElement.style.setProperty('color-scheme', 'dark'); + document.getElementById("light-icon")?.classList.add(HIDDEN_CLASS); + document.getElementById("dark-icon")?.classList.remove(HIDDEN_CLASS); } -} \ No newline at end of file +} +function getCurrentTheme() { + const fromProperty = document.documentElement.style.getPropertyValue("color-scheme"); + if (fromProperty) return fromProperty; + const prefersTheme = window.matchMedia("(prefers-color-scheme: dark)") ? "dark" : "light"; + return prefersTheme; +} + +function setTheme(newTheme) { + document.documentElement.style.setProperty("color-scheme", newTheme); + hideThemeSwitcher(newTheme); +} + +function switchTheme() { + let currentTheme = getCurrentTheme(); + console.debug("Start theme switching to " + currentTheme + " theme"); + setTheme(currentTheme == "dark" ? "light" : "dark"); +} + +function initColorTheme() { + const currentTheme = getCurrentTheme(); + console.debug("Current theme is " + currentTheme + ""); + setTheme(currentTheme); +} diff --git a/build.sh b/build.sh index 48e19f5..83f25e6 100755 --- a/build.sh +++ b/build.sh @@ -22,14 +22,14 @@ write_section_header(){ - echo "