43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
---
|
|
const {} = Astro.props;
|
|
---
|
|
|
|
<script is:inline>
|
|
if (
|
|
localStorage.theme === "dark" ||
|
|
(!("theme" in localStorage) &&
|
|
window.matchMedia("(prefers-color-scheme: dark)").matches)
|
|
) {
|
|
document.documentElement.classList.add("dark");
|
|
} else {
|
|
document.documentElement.classList.remove("dark");
|
|
}
|
|
|
|
function attachEvent(selector, event, fn) {
|
|
const elem = document.querySelector(selector);
|
|
if (elem) {
|
|
elem.addEventListener(
|
|
event,
|
|
function () {
|
|
fn(elem);
|
|
},
|
|
false
|
|
);
|
|
}
|
|
}
|
|
|
|
window.onload = function () {
|
|
attachEvent("[data-aw-toggle-menu]", "click", function (elem) {
|
|
elem.classList.toggle("menu-opened");
|
|
document.getElementById("menu").classList.toggle("hidden");
|
|
});
|
|
|
|
attachEvent("[data-aw-toggle-color-scheme]", "click", function (elem) {
|
|
document.documentElement.classList.toggle("dark");
|
|
localStorage.theme = document.documentElement.classList.contains("dark")
|
|
? "dark"
|
|
: "light";
|
|
});
|
|
};
|
|
</script>
|