diff options
| author | Filip Wandzio <contact@philw.dev> | 2025-09-08 19:20:16 +0200 |
|---|---|---|
| committer | Filip Wandzio <contact@philw.dev> | 2025-09-08 19:20:16 +0200 |
| commit | fcc7a9157c2c63e86bb6e93558a3a228ff8faa3f (patch) | |
| tree | 0c0fd22a4b8d1fb2c85e9815510f806c73fc839e /src/lib/components/Header.svelte | |
| parent | 74eea9c13a4bd9846fd82bbaae841322cf5650fc (diff) | |
| download | philw.dev-fcc7a9157c2c63e86bb6e93558a3a228ff8faa3f.tar.gz philw.dev-fcc7a9157c2c63e86bb6e93558a3a228ff8faa3f.zip | |
Rewrite whole project in svelte for better accessibility
Signed-off-by: Filip Wandzio <contact@philw.dev>
Diffstat (limited to 'src/lib/components/Header.svelte')
| -rw-r--r-- | src/lib/components/Header.svelte | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte new file mode 100644 index 0000000..eeeb78d --- /dev/null +++ b/src/lib/components/Header.svelte | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | <script> | ||
| 2 | let menuOpen = false; | ||
| 3 | |||
| 4 | function toggleMenu() { | ||
| 5 | menuOpen = !menuOpen; | ||
| 6 | } | ||
| 7 | |||
| 8 | function closeMenu() { | ||
| 9 | menuOpen = false; | ||
| 10 | } | ||
| 11 | </script> | ||
| 12 | |||
| 13 | <header> | ||
| 14 | <div class="header-top"> | ||
| 15 | <h1>Filip Wandzio</h1> | ||
| 16 | <button | ||
| 17 | class="menu-toggle" | ||
| 18 | on:click={toggleMenu} | ||
| 19 | aria-expanded={menuOpen} | ||
| 20 | aria-controls="main-nav" | ||
| 21 | > | ||
| 22 | {#if menuOpen} | ||
| 23 | ✕ <span class="sr-only">Close menu</span> | ||
| 24 | {:else} | ||
| 25 | ☰ <span class="sr-only">Open menu</span> | ||
| 26 | {/if} | ||
| 27 | </button> | ||
| 28 | </div> | ||
| 29 | |||
| 30 | <nav id="main-nav" aria-label="Main navigation"> | ||
| 31 | <ul class:open={menuOpen}> | ||
| 32 | <li><a href="#about" on:click={closeMenu}>About</a></li> | ||
| 33 | <li><a href="#projects" on:click={closeMenu}>Projects</a></li> | ||
| 34 | <li><a href="#research" on:click={closeMenu}>Research</a></li> | ||
| 35 | <li><a href="#contact" on:click={closeMenu}>Contact</a></li> | ||
| 36 | </ul> | ||
| 37 | </nav> | ||
| 38 | </header> | ||
