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:
@@ -52,63 +52,6 @@ button,
|
||||
transition: background-color 180ms ease;
|
||||
}
|
||||
|
||||
/* ── macOS vibrancy ───────────────────────────────────────────────────────
|
||||
The window is created transparent with a native 'sidebar' NSVisualEffectView
|
||||
behind it. We keep the whole app opaque (bg-background covers the window)
|
||||
EXCEPT the left sidebar, which is the only translucent surface that lets the
|
||||
native vibrancy show through. `data-oc-vibrancy` = vibrancy active;
|
||||
`data-oc-vibrancy-ready` = native layer has settled (set from the main
|
||||
process after show/restore) — until then the sidebar stays solid to avoid a
|
||||
flash of raw transparency. */
|
||||
html[data-oc-vibrancy] body,
|
||||
html[data-oc-vibrancy] #root {
|
||||
background: transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
html[data-oc-vibrancy] .main-content-safe-area {
|
||||
background: transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Left sidebar: solid until the native layer is ready, then a translucent
|
||||
overlay so the vibrancy frosts through. */
|
||||
html[data-oc-vibrancy] .oc-vibrancy-surface {
|
||||
background: var(--sidebar) !important;
|
||||
}
|
||||
|
||||
html[data-oc-vibrancy][data-oc-vibrancy-ready] .oc-vibrancy-surface {
|
||||
background: var(--sidebar-vibrancy-overlay) !important;
|
||||
}
|
||||
|
||||
/* Inner bg-sidebar elements inside the vibrant surface must not re-paint an
|
||||
opaque fill, or they'd cover the frosted effect. */
|
||||
html[data-oc-vibrancy] .oc-vibrancy-surface .bg-sidebar {
|
||||
background: transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Project-actions pill over the open sidebar: drop its opaque surface so it
|
||||
frosts to the exact same level as the sidebar (border keeps its outline). */
|
||||
html[data-oc-vibrancy] .oc-vibrancy-pill {
|
||||
background: transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Accessibility: drop translucency when the OS asks for reduced transparency. */
|
||||
@media (prefers-reduced-transparency: reduce) {
|
||||
html[data-oc-vibrancy] body,
|
||||
html[data-oc-vibrancy] #root,
|
||||
html[data-oc-vibrancy] .main-content-safe-area {
|
||||
background: var(--surface-background) !important;
|
||||
}
|
||||
|
||||
html[data-oc-vibrancy] .oc-vibrancy-surface,
|
||||
html[data-oc-vibrancy][data-oc-vibrancy-ready] .oc-vibrancy-surface {
|
||||
background: var(--sidebar) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Ensure interactive controls consistently show pointer cursor */
|
||||
:where(
|
||||
button,
|
||||
@@ -348,7 +291,7 @@ div[data-chat-input-footer="true"] {
|
||||
);
|
||||
}
|
||||
|
||||
/* Sticky-fade overlay (desktop sidebar): the crisp duplicate identity stays
|
||||
/* Sticky-fade overlay: the crisp duplicate identity stays
|
||||
mounted and its visibility is driven synchronously by the scroller's own
|
||||
top-scroll data attribute — the same signal that engages the mask — so the
|
||||
overlay appears in the exact frame the mask hides the real header (no blink).
|
||||
@@ -358,8 +301,8 @@ div[data-chat-input-footer="true"] {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.oc-sticky-fade-root:has(.oc-sidebar-scroller[data-top-scroll="true"]) .oc-sticky-fade-overlay,
|
||||
.oc-sticky-fade-root:has(.oc-sidebar-scroller[data-top-bottom-scroll="true"]) .oc-sticky-fade-overlay {
|
||||
.oc-sticky-fade-root:has(.oc-sticky-fade-scroller[data-top-scroll="true"]) .oc-sticky-fade-overlay,
|
||||
.oc-sticky-fade-root:has(.oc-sticky-fade-scroller[data-top-bottom-scroll="true"]) .oc-sticky-fade-overlay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user