From 75adf7d603b1b7eae7aee5c6610c0a789f7e0aa7 Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Wed, 3 Jun 2026 22:05:06 -0500 Subject: [PATCH] =?UTF-8?q?style(desktop):=20flatten=20appearance=20settin?= =?UTF-8?q?gs=20=E2=80=94=20drop=20card-in-card=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the outer card chrome (border/bg/shadow/rounded) wrapping each appearance section so they're flat headings + option grids instead of boxes nested inside boxes, matching the other settings pages. --- .../src/app/settings/appearance-settings.tsx | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/apps/desktop/src/app/settings/appearance-settings.tsx b/apps/desktop/src/app/settings/appearance-settings.tsx index 4abd79c8d..8bf208b5a 100644 --- a/apps/desktop/src/app/settings/appearance-settings.tsx +++ b/apps/desktop/src/app/settings/appearance-settings.tsx @@ -1,4 +1,5 @@ import { useStore } from '@nanostores/react' +import type { ReactNode } from 'react' import { triggerHaptic } from '@/lib/haptics' import { Check } from '@/lib/icons' @@ -51,6 +52,20 @@ function ThemePreview({ name }: { name: string }) { ) } +function SectionHead({ title, description, pill }: { title: string; description: string; pill?: ReactNode }) { + return ( +
+
+
{title}
+
+ {description} +
+
+ {pill} +
+ ) +} + export function AppearanceSettings() { const { themeName, mode, availableThemes, setTheme, setMode } = useTheme() const toolViewMode = useStore($toolViewMode) @@ -58,24 +73,18 @@ export function AppearanceSettings() { return ( -
-
-

- These are desktop-only display preferences. Mode controls brightness; theme controls the accent palette and - chat surface styling. -

-
+
+

+ These are desktop-only display preferences. Mode controls brightness; theme controls the accent palette and + chat surface styling. +

-
-
-
-
Color Mode
-
- Pick a fixed mode or let Hermes follow your system setting. -
-
- {prettyName(mode)} -
+
+ {prettyName(mode)}} + title="Color Mode" + />
{MODE_OPTIONS.map(({ id, label, description, icon: Icon }) => { const active = mode === id @@ -113,16 +122,12 @@ export function AppearanceSettings() {
-
-
-
-
Tool Call Display
-
- Product hides raw tool payloads; Technical shows full input/output. -
-
- {toolViewMode === 'technical' ? 'Technical' : 'Product'} -
+
+ {toolViewMode === 'technical' ? 'Technical' : 'Product'}} + title="Tool Call Display" + />
{( [ @@ -170,16 +175,12 @@ export function AppearanceSettings() {
-
-
-
-
Theme
-
- Desktop palettes only. The selected mode is applied on top. -
-
- {activeTheme && {activeTheme.label}} -
+
+ {activeTheme.label} : undefined} + title="Theme" + />
{availableThemes.map(theme => { const active = themeName === theme.name