refactor: externalize all SVG icons to partials/icons
All checks were successful
Deploy Theme / deploy (push) Successful in 14s

This commit is contained in:
2026-02-22 07:59:17 +01:00
parent df38d7d9ef
commit 94b9134f8e
15 changed files with 51 additions and 36 deletions

View File

@@ -23,18 +23,16 @@
<div class="flex items-center space-x-2">
{{!-- Theme Toggle in Mobile Menu --}}
<button @click="theme = (theme === 'dark' ? 'light' : 'dark')" class="p-2 rounded-full text-[var(--text-secondary)] hover:text-[var(--brand-primary)] transition-colors duration-200">
<svg x-show="theme === 'dark'" class="theme-toggle-dark-icon w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" />
</svg>
<svg x-show="theme === 'light'" class="theme-toggle-light-icon w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" x-cloak>
<path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" />
</svg>
<div x-show="theme === 'dark'">
{{> "icons/sun" class="w-6 h-6"}}
</div>
<div x-show="theme === 'light'" x-cloak>
{{> "icons/moon" class="w-6 h-6"}}
</div>
</button>
<button @click.stop="mobileMenuOpen = false" class="p-2 rounded-full text-[var(--text-secondary)] hover:text-[var(--brand-primary)] transition-colors duration-200">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
</svg>
{{> "icons/close" class="w-6 h-6"}}
</button>
</div>
</div>