docs(unit-3): Complete functional design based on user answers

All Q1-Q5 answered A:
- Topbar removed; LanguageSwitcher + UserMenu move to sidebar footer
- Mobile: slide-over overlay with hamburger button
- Theme toggle in sidebar footer
- No-flash init via inline script in index.html
- Role-filtered sidebar items client-side

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 11:51:24 +02:00
co-authored by Claude Haiku 4.5
parent 037332e52f
commit 6760257e49
5 changed files with 364 additions and 6 deletions
@@ -1,6 +1,6 @@
# Functional Design Plan — Unit 3: Layout & Navigation
**Status**: 📋 Awaiting answers
**Status**: ✅ Complete
## Unit Context
- **Unit**: Unit 3 — Layout & Navigation
@@ -19,7 +19,7 @@ A) Remove the Topbar entirely — move LanguageSwitcher and UserMenu to the side
B) Keep the Topbar — move LanguageSwitcher and UserMenu to the sidebar footer, leave Topbar as an empty placeholder for future use
C) Keep the Topbar with its current content, only add the same items also to the sidebar
[Answer]:
[Answer]: A
---
@@ -30,7 +30,7 @@ A) Slide-over overlay — hamburger button in a slim top bar opens the full side
B) Bottom navigation bar — fixed bar at the bottom of the screen with icons only
C) Icon-only sidebar — sidebar collapses to icon-only width on mobile, expands on hover/click
[Answer]:
[Answer]: A
---
@@ -41,7 +41,7 @@ A) Sidebar footer — next to LanguageSwitcher and UserMenu (recommended — kee
B) Top of the sidebar — visible without scrolling
C) Only accessible from the Profile page (not in the sidebar)
[Answer]:
[Answer]: A
---
@@ -52,7 +52,7 @@ A) Inline script in `index.html` — runs synchronously before React loads (reco
B) CSS-only — use `prefers-color-scheme` media query only, no localStorage persistence
C) Skip no-flash for now — accept a brief flash on load
[Answer]:
[Answer]: A
---
@@ -71,4 +71,4 @@ A) Filter sidebar items client-side based on `user.role` from AuthContext (recom
B) Show all items to all roles, grey out inaccessible ones
C) Show all items, let the route guard handle the redirect on click
[Answer]:
[Answer]: A