From 4a35e8b42ad9566f9681bf49e52910a5781635c8 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Thu, 11 Jun 2026 22:16:07 +0200 Subject: [PATCH] fix(ui): stronger frosted glass + frosted settings backdrop; declutter header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Increase .glass blur (32px) so overlay menus (account) read as proper frosted glass. - Blur the settings modal backdrop (overlay backdrop-blur) so the panel reliably frosts the content behind it instead of showing a sharp video through. - Remove the now-redundant header buttons (dark/light, color scheme, grid/list) — they live in Settings → Appearance. Header keeps search, sync, bell, account. --- frontend/src/App.tsx | 4 - frontend/src/components/Header.tsx | 108 +--------------------- frontend/src/components/SettingsPanel.tsx | 2 +- frontend/src/index.css | 10 +- 4 files changed, 8 insertions(+), 116 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 039c216..3569a9f 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -132,12 +132,8 @@ export default function App() {
setSettingsOpen(true)} diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index 22f2dc9..2f7a5a8 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -1,98 +1,25 @@ import { useRef, useState } from "react"; -import { - Home, - LayoutGrid, - List, - LogOut, - Moon, - Palette, - Search, - Settings, - Shield, - Sun, - Tv, -} from "lucide-react"; -import { SCHEMES, type Scheme, type ThemePrefs } from "../lib/theme"; +import { Home, LogOut, Search, Settings, Shield, Tv } from "lucide-react"; import type { FeedFilters, Me } from "../lib/api"; import type { Page } from "../lib/urlState"; import SyncStatus from "./SyncStatus"; import NotificationCenter from "./NotificationCenter"; -function IconBtn(props: React.ButtonHTMLAttributes) { - const { className = "", ...rest } = props; - return ( -
-
Text size
- setTheme({ ...theme, fontScale: Number(e.target.value) })} - className="w-full accent-accent" - /> -
- {Math.round(theme.fontScale * 100)}% -
- - ); -} - export default function Header({ me, - theme, - setTheme, filters, setFilters, - view, - setView, page, setPage, onOpenSettings, }: { me: Me; - theme: ThemePrefs; - setTheme: (t: ThemePrefs) => void; filters: FeedFilters; setFilters: (f: FeedFilters) => void; - view: "grid" | "list"; - setView: (v: "grid" | "list") => void; page: Page; setPage: (p: Page) => void; onOpenSettings: () => void; }) { - const [menuOpen, setMenuOpen] = useState(false); - async function logout() { await fetch("/auth/logout", { method: "POST", credentials: "include" }); location.reload(); @@ -125,34 +52,7 @@ export default function Header({ )}
- {page === "feed" && ( - setView(view === "grid" ? "list" : "grid")} - title={view === "grid" ? "List view" : "Grid view"} - > - {view === "grid" ? : } - - )} - setTheme({ ...theme, mode: theme.mode === "dark" ? "light" : "dark" })} - title="Toggle dark / light" - > - {theme.mode === "dark" ? : } - -
- setMenuOpen((o) => !o)} title="Theme"> - - - {menuOpen && ( - <> -
setMenuOpen(false)} /> - - - )} -
- -
+