summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/layouts/partials/header.html
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 21:42:04 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 21:42:04 +0200
commit9934e042c1e97765ac839f6c3f06d30f02b5d9d0 (patch)
treecf102ee79caf5d304e303956a1becd5fb680ca39 /themes/danix-xyz-hacker/layouts/partials/header.html
parenteb8a17482fc138c861db685f9efc86871bf2d7d2 (diff)
downloaddanixxyz-9934e042c1e97765ac839f6c3f06d30f02b5d9d0.tar.gz
danixxyz-9934e042c1e97765ac839f6c3f06d30f02b5d9d0.zip
Fix design system compliance: CSS variables, accessibility, and theme system
Core CSS improvements: - Add --surface-rgb, --type-* (tech, life, quote, link, photo) custom properties - Add --type-* semantic color classes for article badges - Convert article badges from inline styles to CSS variable system - Add prefers-color-scheme light fallback for no-JS users - Add prefers-reduced-motion support to respect user accessibility settings - Replace *:focus with *:focus-visible (keyboard-only outlines) - Add clamp() fluid typography for hero-title and section-title - Refactor container rules to mobile-first with 1060px breakpoint Theme & Icon fixes: - Fix theme toggle icon display with Alpine.js (was broken with Tailwind dark: classes) - Add aria-hidden="true" to icon elements - Update header with proper ARIA attributes on menu toggle Accessibility enhancements: - Add skip-to-main-content link in baseof.html - Update hamburger menu with aria-expanded, aria-controls, aria-hidden - Implement focus trap (Tab loops) within mobile menu - Return focus to trigger button on menu close - Add menu open/close state management with proper ARIA Semantic HTML: - Wrap article pages in <article> element (articles/single.html, _default/single.html) - Fix quote article to use --type-quote border color instead of generic accent Image optimization: - Add loading="lazy" to profile image in index.html - Add loading="lazy" to featured image in photo.html Template fixes: - Remove broken os.Getenv "THEME" runtime check from article-list-item.html - Replace inline color styles with semantic .type-* classes - Add 1060px lg: breakpoint to tailwind.config.js i18n updates: - Add skipToContent translations (en, it) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/layouts/partials/header.html')
-rw-r--r--themes/danix-xyz-hacker/layouts/partials/header.html8
1 files changed, 6 insertions, 2 deletions
diff --git a/themes/danix-xyz-hacker/layouts/partials/header.html b/themes/danix-xyz-hacker/layouts/partials/header.html
index 2ddb2e3..7f99748 100644
--- a/themes/danix-xyz-hacker/layouts/partials/header.html
+++ b/themes/danix-xyz-hacker/layouts/partials/header.html
@@ -48,17 +48,21 @@
<!-- Theme toggle button -->
<button
id="theme-toggle"
+ x-data="{ theme: localStorage.getItem('theme') || 'dark' }"
+ @click="theme = theme === 'dark' ? 'light' : 'dark'; document.documentElement.className = 'theme-' + theme; localStorage.setItem('theme', theme)"
aria-label="{{ i18n "toggleTheme" }}"
class="p-2 rounded hover:bg-surface transition-colors"
>
- <i data-feather="sun" class="w-5 h-5 hidden dark:block"></i>
- <i data-feather="moon" class="w-5 h-5 block dark:hidden"></i>
+ <i x-show="theme === 'dark'" data-feather="sun" class="w-5 h-5" aria-hidden="true"></i>
+ <i x-show="theme === 'light'" data-feather="moon" class="w-5 h-5" aria-hidden="true"></i>
</button>
<!-- Hamburger menu button (mobile only) -->
<button
id="menu-toggle"
aria-label="{{ i18n "toggleMenu" }}"
+ aria-expanded="false"
+ aria-controls="hamburger-menu"
class="md:hidden p-2 rounded hover:bg-surface transition-colors"
>
<i data-feather="menu" class="w-5 h-5"></i>