Add vegeburger menu backdrop

This commit is contained in:
Kuba Orlik 2026-07-21 15:49:37 +02:00
parent d68d94553d
commit 53da7a41b4
2 changed files with 24 additions and 3 deletions

View File

@ -52,6 +52,10 @@ nav {
display: none; display: none;
} }
.hamburger-backdrop {
display: none;
}
@media (max-width: 1000px) { @media (max-width: 1000px) {
.hamburger-menu-toggle { .hamburger-menu-toggle {
display: flex; display: flex;
@ -77,6 +81,7 @@ nav {
padding: 12px; padding: 12px;
padding-top: 2px; padding-top: 2px;
align-items: flex-end; align-items: flex-end;
z-index: 10;
ul { ul {
display: flex !important; display: flex !important;
@ -110,6 +115,19 @@ nav {
opacity: 1; opacity: 1;
pointer-events: all; pointer-events: all;
} }
.hamburger-backdrop {
display: block;
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
background-color: #0000002b;
cursor: pointer;
z-index: 2;
backdrop-filter: blur(2px);
}
} }
} }
} }

View File

@ -27,6 +27,8 @@ export async function default_navbar(ctx: Context): Promise<FlatTemplatable> {
) )
.join("\n"); .join("\n");
const checkbox_id = `hamburger-menu-toggle-checkbox`;
return tempstream /* HTML */ `<nav> return tempstream /* HTML */ `<nav>
<a href="/" class="nav-logo"> <a href="/" class="nav-logo">
<img <img
@ -41,17 +43,18 @@ export async function default_navbar(ctx: Context): Promise<FlatTemplatable> {
${linksHTML} ${linksHTML}
</ul> </ul>
<div class="hamburger-menu-toggle"> <div class="hamburger-menu-toggle">
<input type="checkbox" id="hamburger-menu-toggle-checkbox" /> <input type="checkbox" id="${checkbox_id}" />
<label <label
for="hamburger-menu-toggle-checkbox" for="${checkbox_id}"
class="hamburger-menu__icon hamburger-menu__open-icon" class="hamburger-menu__icon hamburger-menu__open-icon"
> >
${icon("hamburger")} ${icon("hamburger")}
</label> </label>
</div> </div>
<label for="${checkbox_id}" class="hamburger-backdrop"></label>
<div class="hamburger-menu"> <div class="hamburger-menu">
<label <label
for="hamburger-menu-toggle-checkbox" for="${checkbox_id}"
class="hamburger-menu__icon hamburger-menu__close-icon" class="hamburger-menu__icon hamburger-menu__close-icon"
> >
${icon("hamburger-close")} ${icon("hamburger-close")}