From 570bc4febde683107b2071ee347e98e48e18efb6 Mon Sep 17 00:00:00 2001 From: klopez4212 Date: Mon, 6 Jul 2026 14:06:08 +0100 Subject: [PATCH] feat(desktop): constrain theme grid to 3 rows, accent back at bottom - Theme grid has max-h-[430px] with internal scroll (~3 rows visible) - Accent color picker moved back below the theme grid - Page scrolls normally (no split scroll regions) - Mode selector stays above the theme grid --- .../features/settings/ui/SettingsPanels.tsx | 139 +++++++++--------- 1 file changed, 68 insertions(+), 71 deletions(-) diff --git a/desktop/src/features/settings/ui/SettingsPanels.tsx b/desktop/src/features/settings/ui/SettingsPanels.tsx index 6909c31a1c..64c36e986e 100644 --- a/desktop/src/features/settings/ui/SettingsPanels.tsx +++ b/desktop/src/features/settings/ui/SettingsPanels.tsx @@ -399,82 +399,44 @@ function ThemeSettingsCard() { return (
- {/* Fixed header area — does not scroll */} -
- + - {/* Accent color picker */} -
-

Accent color

-
- {ACCENT_COLORS.map((color) => { - const isNeutral = color.value === NEUTRAL_ACCENT; - const swatchColor = isNeutral - ? "hsl(var(--foreground))" - : color.value; - const checkClassName = - isNeutral && isDark ? "text-black" : "text-white"; - - return ( - - ); - })} -
-
- - {/* Mode selector: System / Light / Dark */} -
- {( - [ - { mode: "system" as const, label: "System", Icon: SunMoon }, - { mode: "light" as const, label: "Light", Icon: Sun }, - { mode: "dark" as const, label: "Dark", Icon: Moon }, - ] as const - ).map(({ mode, label, Icon }) => ( - - ))} -
+ {/* Mode selector: System / Light / Dark */} +
+ {( + [ + { mode: "system" as const, label: "System", Icon: SunMoon }, + { mode: "light" as const, label: "Light", Icon: Sun }, + { mode: "dark" as const, label: "Dark", Icon: Moon }, + ] as const + ).map(({ mode, label, Icon }) => ( + + ))}
- {/* Theme grid — only this area scrolls */} -
+ {/* Theme grid — constrained to ~3 rows, scrolls internally */} +
{selectedMode === "system" && pairedLight.map((lightName) => { @@ -513,6 +475,41 @@ function ThemeSettingsCard() { ))}
+ + {/* Accent color picker */} +
+

Accent color

+
+ {ACCENT_COLORS.map((color) => { + const isNeutral = color.value === NEUTRAL_ACCENT; + const swatchColor = isNeutral + ? "hsl(var(--foreground))" + : color.value; + const checkClassName = + isNeutral && isDark ? "text-black" : "text-white"; + + return ( + + ); + })} +
+
); }