From 61e0d9805756a27afca23de39fcb573993c13de2 Mon Sep 17 00:00:00 2001 From: Admin Date: Mon, 30 Mar 2026 14:54:46 +0500 Subject: [PATCH] =?UTF-8?q?feat(ui):=20declutter=20header=20=E2=80=94=20us?= =?UTF-8?q?er=20menu=20+=20lang=20dropdown,=20mobile=20theme/lang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Desktop header before: logo · Library · Catalogue · Feedback · ●●● · EN RU ID PT-BR FR · Admin · username · Sign out Desktop header after: logo · Library · Catalogue · Feedback · ●●● · [🌐 EN ▾] · [avatar ▾] Changes: - Theme dots kept but made slightly smaller (3.5 → 3.5, less gap) - 5 bare language codes replaced with a compact globe + current locale dropdown (click to expand all 5 options) - Admin link, username, and Sign out collapsed into a single user-initial avatar dropdown (Profile / Admin panel / Sign out) - Click-outside overlay closes any open dropdown - Mobile drawer: added Theme and Language rows so users can switch both without opening the desktop header - Footer locale switcher removed (redundant with header and mobile drawer) Co-Authored-By: Claude Sonnet 4.6 --- ui/src/routes/+layout.svelte | 213 ++++++++++++++++++++++++----------- 1 file changed, 145 insertions(+), 68 deletions(-) diff --git a/ui/src/routes/+layout.svelte b/ui/src/routes/+layout.svelte index 93606f2..fe3ef87 100644 --- a/ui/src/routes/+layout.svelte +++ b/ui/src/routes/+layout.svelte @@ -17,6 +17,16 @@ // Mobile nav drawer state let menuOpen = $state(false); + // Desktop dropdown menus + let userMenuOpen = $state(false); + let langMenuOpen = $state(false); + + const THEMES = [ + { id: 'amber', color: '#f59e0b' }, + { id: 'slate', color: '#818cf8' }, + { id: 'rose', color: '#fb7185' }, + ]; + // Chapter list drawer state for the mini-player let chapterDrawerOpen = $state(false); @@ -303,61 +313,101 @@ {m.nav_feedback()} -
- -