native macOS codings agent orchestrator
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(repo-appearance): tint active-tab highlight in spine with repo color

`ShelfSpineTabSlot.backgroundFill` still hardcoded `Color.accentColor`
for the active-tab fill, so a repo with a pinned color showed a
spine background in that color but its selected tab indicator in the
default accent — the two clashed.

Thread the spine's `effectiveTintColor` (repo color, or accentColor
fallback) into each slot via a new `activeHighlightTint` parameter
and use it for the active fill. The proximity-driven
`activeHighlightAlpha` ladder is unchanged so the selection
indicator still fades with distance from the open book; only the
hue swaps to keep the slot in the same color family as the spine.

Notification tint stays orange — it's an attention idiom that has to
read regardless of repo color.

onevcat 66366f11 7d782a53

+8 -1
+8 -1
supacode/Features/Shelf/Views/ShelfSpineView.swift
··· 238 238 hotkeyIndex: hotkeyIndex, 239 239 isActive: terminalState.tabManager.selectedTabId == tab.id, 240 240 hasUnseenNotification: terminalState.hasUnseenNotification(for: tab.id), 241 + activeHighlightTint: effectiveTintColor, 241 242 activeHighlightAlpha: activeTabHighlightAlpha, 242 243 onTap: { onSelectTab(tab.id) }, 243 244 onClose: { terminalState.closeTab(tab.id) } ··· 379 380 let hotkeyIndex: Int? 380 381 let isActive: Bool 381 382 let hasUnseenNotification: Bool 383 + /// Hue used for the active-tab background fill — repo color when 384 + /// the owning book has one pinned, otherwise `Color.accentColor`. 385 + /// Threaded from the spine so the active-tab indicator stays in 386 + /// the same color family as the surrounding spine background 387 + /// instead of clashing with a contrasting accent. 388 + let activeHighlightTint: Color 382 389 /// Absolute alpha for the active-tab accent fill, supplied by the 383 390 /// enclosing spine so it can fade with proximity on its own curve 384 391 /// (which decays more gently than the spine background — selection ··· 462 469 .fill(Color.orange.opacity(0.3)) 463 470 } else if isActive { 464 471 RoundedRectangle(cornerRadius: ShelfMetrics.slotCornerRadius, style: .continuous) 465 - .fill(Color.accentColor.opacity(activeHighlightAlpha)) 472 + .fill(activeHighlightTint.opacity(activeHighlightAlpha)) 466 473 } else { 467 474 Color.clear 468 475 }