From e440baeeb094e9c6a7c9d7d826d57d19e2b8ceb2 Mon Sep 17 00:00:00 2001 From: brennanb2025 Date: Tue, 12 May 2026 16:34:10 -0700 Subject: [PATCH] fix(activity): match WorktreeCard's selected/hover/unread cues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three stacked tints (selected + unread row tint + hover) made an unread hovered row look identical to a selected row, and hover even fought selected. Mirror WorktreeCard: - selected → solid black/white tint + faint shadow, hover suppressed (the active class wins so the row stays visually fixed) - non-selected → only then does hover apply (bg-accent/40) - unread → weight + left-edge primary bar carry the cue; row tint removed (matches WorktreeCard's "weight alone carries the unread signal") Co-authored-by: Orca --- .../activity/ActivityPrototypePage.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/components/activity/ActivityPrototypePage.tsx b/src/renderer/src/components/activity/ActivityPrototypePage.tsx index 4d5228d3844..920e4fe56a6 100644 --- a/src/renderer/src/components/activity/ActivityPrototypePage.tsx +++ b/src/renderer/src/components/activity/ActivityPrototypePage.tsx @@ -323,11 +323,20 @@ function ThreadRow({ } }} className={cn( - 'group relative grid w-full grid-cols-[minmax(0,1fr)_auto] gap-2 border-b border-border px-3 text-left transition-colors hover:bg-accent/40', + // Why (selected/hover/unread cues match WorktreeCard): + // - selected → solid black/white tint + faint shadow, no hover + // override (the active class wins so hover doesn't fight it). + // - non-selected → only then does hover apply (bg-accent/40), so a + // selected row stays visually fixed when the cursor moves over it. + // - unread → weight + left-edge primary bar carry the cue; no row + // tint, mirroring WorktreeCard's "weight alone" pattern. Three + // stacked tints (selected + unread + hover) made selected and + // unread look identical when hovered. + 'group relative grid w-full grid-cols-[minmax(0,1fr)_auto] gap-2 border-b border-border px-3 text-left transition-colors', compact ? 'py-1.5' : 'py-2.5', - selected && - 'bg-black/[0.08] shadow-[0_1px_2px_rgba(0,0,0,0.04)] dark:bg-white/[0.10] dark:shadow-[0_1px_2px_rgba(0,0,0,0.03)]', - thread.unread && 'bg-primary/[0.045] dark:bg-primary/[0.08]' + selected + ? 'bg-black/[0.08] shadow-[0_1px_2px_rgba(0,0,0,0.04)] dark:bg-white/[0.10] dark:shadow-[0_1px_2px_rgba(0,0,0,0.03)]' + : 'hover:bg-accent/40' )} > {thread.unread ? (