From 1fffe8b7e1d7cd785a45abf4c94bb55990afcca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Battistella=20Nadas?= Date: Tue, 9 Jun 2026 20:02:11 +0200 Subject: [PATCH] ux: hamburger + slide-out side drawer (not a kebab popover) Replace the
-based kebab popover with a proper Material- style navigation drawer: - Hamburger button (menu icon) at top-left. -

finrod

Translation via Ollama · loremaster of tongues
@@ -1189,6 +1248,28 @@ Vim.mapCommand("L", "action", "finrodFocusNext", {}, { context: "normal" }); } + // Side drawer (Settings) wiring — opens from the top-left hamburger. + const drawerEl = document.getElementById("drawer"); + const drawerBackdrop = document.getElementById("drawer-backdrop"); + const drawerToggle = document.getElementById("drawer-toggle"); + const drawerCloseBtn = document.getElementById("drawer-close"); + function openDrawer() { + drawerEl.classList.add("open"); + drawerBackdrop.classList.add("open"); + drawerEl.setAttribute("aria-hidden", "false"); + } + function closeDrawer() { + drawerEl.classList.remove("open"); + drawerBackdrop.classList.remove("open"); + drawerEl.setAttribute("aria-hidden", "true"); + } + drawerToggle.addEventListener("click", openDrawer); + drawerCloseBtn.addEventListener("click", closeDrawer); + drawerBackdrop.addEventListener("click", closeDrawer); + document.addEventListener("keydown", (e) => { + if (e.key === "Escape" && drawerEl.classList.contains("open")) closeDrawer(); + }); + fillLangs(); loadModels().then(() => refreshLoaded(true));