dark mode fixes
Build Images and Deploy / Update-PROD-Stack (push) Successful in 29s

This commit is contained in:
2026-02-28 01:43:50 -05:00
parent 4f9e92bda7
commit e97bf95ca8
4 changed files with 40 additions and 10 deletions
+29 -1
View File
@@ -101,6 +101,16 @@ body {
background: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.1);
} }
/* Desktop: hide mobile toggle, show nav toggle */
.mobile-theme-toggle {
display: none;
}
.nav-theme-item {
display: flex;
align-items: center;
}
.nav-toggle span { .nav-toggle span {
display: block; display: block;
width: 24px; width: 24px;
@@ -186,8 +196,13 @@ body {
color: #fff; color: #fff;
} }
.btn-primary:visited {
color: #fff;
}
.btn-primary:hover { .btn-primary:hover {
background: var(--primary-dark); background: var(--primary-dark);
color: #fff;
} }
.btn-success { .btn-success {
@@ -195,6 +210,10 @@ body {
color: #fff; color: #fff;
} }
.btn-success:visited {
color: #fff;
}
.btn-success:hover { .btn-success:hover {
background: #00a381; background: #00a381;
} }
@@ -571,7 +590,7 @@ tr:hover {
background: linear-gradient(135deg, var(--card-bg) 0%, #0d2618 100%); background: linear-gradient(135deg, var(--card-bg) 0%, #0d2618 100%);
} }
[data-theme="dark"] a { [data-theme="dark"] a:not(.btn) {
color: var(--primary); color: var(--primary);
} }
@@ -605,6 +624,15 @@ tr:hover {
display: flex; display: flex;
} }
/* Show mobile theme toggle, hide nav one */
.mobile-theme-toggle {
display: inline-flex;
}
.nav-theme-item {
display: none;
}
.navbar { .navbar {
padding: 0 0.75rem; padding: 0 0.75rem;
height: 52px; height: 52px;
+3
View File
@@ -7,6 +7,9 @@
<div style="display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap;"> <div style="display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap;">
<a href="/hunts" class="btn btn-primary">Browse Hunts</a> <a href="/hunts" class="btn btn-primary">Browse Hunts</a>
<a href="/leaderboard" class="btn btn-outline">Leaderboard</a> <a href="/leaderboard" class="btn btn-outline">Leaderboard</a>
<% if (!currentUser) { %>
<a href="/auth/login" class="btn btn-success">Login</a>
<% } %>
</div> </div>
</div> </div>
+6 -8
View File
@@ -3,22 +3,20 @@
</footer> </footer>
<script src="/js/timeago.js"></script> <script src="/js/timeago.js"></script>
<script> <script>
function setThemeIcons(isDark) {
var icon = isDark ? '\u2600\uFE0F' : '\uD83C\uDF19';
document.querySelectorAll('.theme-toggle').forEach(function(btn) { btn.textContent = icon; });
}
function toggleTheme() { function toggleTheme() {
var html = document.documentElement; var html = document.documentElement;
var current = html.getAttribute('data-theme'); var current = html.getAttribute('data-theme');
var next = current === 'dark' ? 'light' : 'dark'; var next = current === 'dark' ? 'light' : 'dark';
html.setAttribute('data-theme', next); html.setAttribute('data-theme', next);
localStorage.setItem('theme', next); localStorage.setItem('theme', next);
// Update toggle icon setThemeIcons(next === 'dark');
var btn = document.querySelector('.theme-toggle');
if (btn) btn.textContent = next === 'dark' ? '\u2600\uFE0F' : '\uD83C\uDF19';
} }
// Set correct icon on load // Set correct icon on load
(function() { setThemeIcons(document.documentElement.getAttribute('data-theme') === 'dark');
var isDark = document.documentElement.getAttribute('data-theme') === 'dark';
var btn = document.querySelector('.theme-toggle');
if (btn) btn.textContent = isDark ? '\u2600\uFE0F' : '\uD83C\uDF19';
})();
</script> </script>
</body> </body>
</html> </html>
+2 -1
View File
@@ -19,7 +19,7 @@
<nav class="navbar"> <nav class="navbar">
<a href="/" class="navbar-brand">&#x1F3AF; Loot Hunt</a> <a href="/" class="navbar-brand">&#x1F3AF; Loot Hunt</a>
<div style="display: flex; align-items: center; gap: 0.25rem;"> <div style="display: flex; align-items: center; gap: 0.25rem;">
<button class="theme-toggle" onclick="toggleTheme()" aria-label="Toggle dark mode" title="Toggle dark mode">&#x1F319;</button> <button class="theme-toggle mobile-theme-toggle" onclick="toggleTheme()" aria-label="Toggle dark mode" title="Toggle dark mode">&#x1F319;</button>
<button class="nav-toggle" aria-label="Toggle menu" onclick="document.querySelector('.navbar-nav').classList.toggle('open')"> <button class="nav-toggle" aria-label="Toggle menu" onclick="document.querySelector('.navbar-nav').classList.toggle('open')">
<span></span><span></span><span></span> <span></span><span></span><span></span>
</button> </button>
@@ -37,6 +37,7 @@
<li><a href="/auth/login">Login</a></li> <li><a href="/auth/login">Login</a></li>
<li><a href="/auth/register">Register</a></li> <li><a href="/auth/register">Register</a></li>
<% } %> <% } %>
<li class="nav-theme-item"><button class="theme-toggle" onclick="toggleTheme()" aria-label="Toggle dark mode" title="Toggle dark mode">&#x1F319;</button></li>
</ul> </ul>
</nav> </nav>
<% if (typeof flash !== 'undefined' && flash) { %> <% if (typeof flash !== 'undefined' && flash) { %>