refactor: remove macOS vibrancy support and unify glass surfaces

Drops the macOS vibrancy toggle, IPC, and related settings copy
Updates dialogs, popovers, tooltips, and dropdowns to use shared glass styles
Adds sticky header fade behavior to model picker and sidebar lists
This commit is contained in:
Bohdan Triapitsyn
2026-08-10 15:10:37 +03:00
parent 90a16d1d44
commit 2c30af5807
36 changed files with 273 additions and 302 deletions
@@ -25,6 +25,8 @@ It is **not** a context-panel surface. It is not registered in
`lib/surfaces/registry.ts`, has no rail icon, no tab, no persisted width and no
resizer. It is a card floating inside the chat column — rounded border, faint
fill, its own margin — rather than a docked pane flush against the window edge.
When it overlays the transcript, it uses the shared `oc-glass-panel` surface;
the inline card keeps its lighter, non-blurred fill instead.
## Placement
@@ -178,13 +178,14 @@ export const WorkStatusPanel: React.FC<Props> = ({ sessionId, directory, visible
// Beside the transcript the translucent fill reads as depth; on top
// of it, message bubbles showed straight through the rows. Frosting
// separates the two without going fully opaque.
'bg-[var(--surface-muted)]/80 backdrop-blur-md',
'oc-glass-panel',
],
// An empty card is a border around a settings icon, which reads as a
// fault rather than as "nothing to report".
renderedSections === 0 && 'border-transparent bg-transparent shadow-none',
'motion-reduce:transition-none',
'rounded-xl border border-[var(--interactive-border)] bg-[var(--surface-muted)]/40',
'rounded-xl border border-[var(--interactive-border)]',
!overlay && 'bg-[var(--surface-muted)]/40',
// A lighter version of the composer's lift: the same shape, but this
// card is taller, so the composer's spread reads as heavy here.
'shadow-[0_2px_8px_-3px_rgb(0_0_0_/_0.08)]',