update dark and light mode
This commit is contained in:
parent
01b2327dc0
commit
b2a1660aa3
@ -106,3 +106,26 @@ header { font-family: "Reddit Sans"; }
|
|||||||
@media (max-width: 768px) { /* h2 { font-size: 4rem; } */ .flex-col-reverse { flex-direction: column-reverse; } }
|
@media (max-width: 768px) { /* h2 { font-size: 4rem; } */ .flex-col-reverse { flex-direction: column-reverse; } }
|
||||||
@media (max-width: 640px) { .banner h2 { font: 600 7vw/10vw; } .header h1 { font-size: 20px; } .banner h2 svg { font-size: 30px; } }
|
@media (max-width: 640px) { .banner h2 { font: 600 7vw/10vw; } .header h1 { font-size: 20px; } .banner h2 svg { font-size: 30px; } }
|
||||||
@media (max-width: 480px) { .banner, .header { padding: 80px 0; } footer { text-align: center; } /* h2 { font-size: 3rem; } */ }
|
@media (max-width: 480px) { .banner, .header { padding: 80px 0; } footer { text-align: center; } /* h2 { font-size: 3rem; } */ }
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--color-bg: #fff;
|
||||||
|
--color-text: #222;
|
||||||
|
--color-link: #8885e2;
|
||||||
|
--color-header: #000;
|
||||||
|
}
|
||||||
|
.dark {
|
||||||
|
--color-bg: #18181b;
|
||||||
|
--color-text: #f3f4f6;
|
||||||
|
--color-link: #a5b4fc;
|
||||||
|
--color-header: #18181b;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background: var(--color-bg);
|
||||||
|
color: var(--color-text);
|
||||||
|
}
|
||||||
|
a, a:visited {
|
||||||
|
color: var(--color-link);
|
||||||
|
}
|
||||||
|
header, .header, .banner {
|
||||||
|
background: var(--color-header) !important;
|
||||||
|
}
|
||||||
|
@ -107,4 +107,43 @@ window.onload = function () {
|
|||||||
document
|
document
|
||||||
.getElementById("mobile-learn-btn")
|
.getElementById("mobile-learn-btn")
|
||||||
?.addEventListener("click", toggleMenu);
|
?.addEventListener("click", toggleMenu);
|
||||||
|
|
||||||
|
// Theme toggle logic
|
||||||
|
function setTheme(theme) {
|
||||||
|
if (theme === "dark") {
|
||||||
|
document.documentElement.classList.add("dark");
|
||||||
|
localStorage.setItem("theme", "dark");
|
||||||
|
if (document.getElementById("theme-toggle-icon")) document.getElementById("theme-toggle-icon").textContent = "🌙";
|
||||||
|
if (document.getElementById("theme-toggle-icon-mobile")) document.getElementById("theme-toggle-icon-mobile").textContent = "🌙";
|
||||||
|
} else {
|
||||||
|
document.documentElement.classList.remove("dark");
|
||||||
|
localStorage.setItem("theme", "light");
|
||||||
|
if (document.getElementById("theme-toggle-icon")) document.getElementById("theme-toggle-icon").textContent = "☀️";
|
||||||
|
if (document.getElementById("theme-toggle-icon-mobile")) document.getElementById("theme-toggle-icon-mobile").textContent = "☀️";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initial theme
|
||||||
|
const userTheme = localStorage.getItem("theme");
|
||||||
|
if (userTheme) {
|
||||||
|
setTheme(userTheme);
|
||||||
|
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
setTheme("dark");
|
||||||
|
} else {
|
||||||
|
setTheme("light");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle event listeners
|
||||||
|
const themeToggle = document.getElementById("theme-toggle");
|
||||||
|
if (themeToggle) {
|
||||||
|
themeToggle.addEventListener("click", function () {
|
||||||
|
setTheme(document.documentElement.classList.contains("dark") ? "light" : "dark");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const themeToggleMobile = document.getElementById("theme-toggle-mobile");
|
||||||
|
if (themeToggleMobile) {
|
||||||
|
themeToggleMobile.addEventListener("click", function () {
|
||||||
|
setTheme(document.documentElement.classList.contains("dark") ? "light" : "dark");
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,18 @@
|
|||||||
{% set zolaVer = '0.13.0' %}
|
{% set zolaVer = '0.13.0' %}
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
try {
|
||||||
|
var theme = localStorage.getItem('theme');
|
||||||
|
if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
|
||||||
|
document.documentElement.classList.add('dark');
|
||||||
|
} else {
|
||||||
|
document.documentElement.classList.remove('dark');
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
<meta name="generator" content="Zola v.{{ zolaVer }} - getzola.org" />
|
<meta name="generator" content="Zola v.{{ zolaVer }} - getzola.org" />
|
||||||
<link rel="icon" type="image/x-icon" href="{{ get_url(path='images/favicon.png')}}">
|
<link rel="icon" type="image/x-icon" href="{{ get_url(path='images/favicon.png')}}">
|
||||||
{% block title %}
|
{% block title %}
|
||||||
|
@ -58,6 +58,10 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<!-- Dark/Light mode toggle button -->
|
||||||
|
<button id="theme-toggle" aria-label="Toggle dark mode" class="ml-4 p-2 rounded focus:outline-none border border-white bg-gray-800 text-yellow-300 hover:bg-gray-700 transition duration-150 ease-in-out">
|
||||||
|
<span id="theme-toggle-icon">🌙</span>
|
||||||
|
</button>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -116,8 +120,11 @@
|
|||||||
<div id="{{menu_id}}" class="z-50 leading-3 pl-12 pt-6 pb-4 inset-x-0 text-sm transform duration-200 ease-in opacity-0 -translate-y-1 hidden">
|
<div id="{{menu_id}}" class="z-50 leading-3 pl-12 pt-6 pb-4 inset-x-0 text-sm transform duration-200 ease-in opacity-0 -translate-y-1 hidden">
|
||||||
{{ subsection | safe }}
|
{{ subsection | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<!-- Dark/Light mode toggle button for mobile -->
|
||||||
|
<button id="theme-toggle-mobile" aria-label="Toggle dark mode" class="mt-4 p-2 rounded focus:outline-none border border-white bg-gray-800 text-yellow-300 hover:bg-gray-700 transition duration-150 ease-in-out self-center">
|
||||||
|
<span id="theme-toggle-icon-mobile">🌙</span>
|
||||||
|
</button>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden lg:flex-1 lg:flex lg:items-center lg:justify-end lg:space-x-12">
|
<div class="hidden lg:flex-1 lg:flex lg:items-center lg:justify-end lg:space-x-12">
|
||||||
<nav class="flex space-x-10">
|
<nav class="flex space-x-10 items-center">
|
||||||
|
|
||||||
{% for header_item in header_items %}
|
{% for header_item in header_items %}
|
||||||
{% if not loop.first %}
|
{% if not loop.first %}
|
||||||
@ -56,10 +56,15 @@
|
|||||||
<div class="-rotate-90 transition-transform"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg></div>
|
<div class="-rotate-90 transition-transform"><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg></div>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<!-- Dark/Light mode toggle button -->
|
||||||
|
<button id="theme-toggle" aria-label="Toggle dark mode" class="ml-4 p-2 rounded focus:outline-none border border-white bg-gray-800 text-yellow-300 hover:bg-gray-700 transition duration-150 ease-in-out">
|
||||||
|
<span id="theme-toggle-icon">🌙</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user