+
{(
[
- { mode: "system" as const, label: "System" },
- { mode: "light" as const, label: "Light" },
- { mode: "dark" as const, label: "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 }) => (
+ ).map(({ mode, label, Icon }) => (
))}
- {/* Theme list based on selected mode */}
+ {/* Theme grid based on selected mode */}
-
-
Themes
- {((selectedMode === "system" && pairedLight.length > 4) ||
- (selectedMode === "light" && allLightThemes.length > 4) ||
- (selectedMode === "dark" && allDarkThemes.length > 4)) && (
-
- )}
-
-
-
+
{selectedMode === "system" &&
pairedLight.map((lightName) => {
const darkName = getThemePair(lightName);
@@ -538,7 +473,7 @@ function ThemeSettingsCard() {
vars={getVars(name)}
/>
))}
-
+
{/* Accent color picker */}
diff --git a/desktop/src/shared/theme/ThemePreviewFrame.tsx b/desktop/src/shared/theme/ThemePreviewFrame.tsx
index 7379495a34..05e9748856 100644
--- a/desktop/src/shared/theme/ThemePreviewFrame.tsx
+++ b/desktop/src/shared/theme/ThemePreviewFrame.tsx
@@ -233,12 +233,12 @@ function SystemPreferencePreviewSvg({
viewBox="0 0 118 80"
xmlns="http://www.w3.org/2000/svg"
>
- {/* Dark half (top) */}
-
-
-
+ {/* Light half (top) */}
+
+
+
- {/* Light half (bottom) — clipped to bottom portion */}
-
+ {/* Dark half (bottom) — clipped to bottom portion */}
+
-
-
+
+
-
+
-
+