fix: onboarding 401 redirect, glass card rendering bugs
- rpc-client: don't redirect to /login on 401 during onboarding flow, which caused session expired kicks on fresh installs - style.css: add translateZ(0) + isolation:isolate to glass-card, glass-strong, path-option-card to fix Chromium compositor bug where backdrop-filter + animated fixed overlays cause black rectangles - App.vue: pause background animations when tab hidden, force compositor layer rebuild on tab return to prevent stale renders Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
6b857e59d0
commit
e4b4519061
+29
-1
@@ -115,14 +115,18 @@ input[type="radio"]:active + * {
|
||||
-webkit-backdrop-filter: blur(18px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.18);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
|
||||
transform: translateZ(0);
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
|
||||
.glass-strong {
|
||||
background-color: rgba(0, 0, 0, 0.35);
|
||||
backdrop-filter: blur(24px);
|
||||
-webkit-backdrop-filter: blur(24px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.18);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
|
||||
transform: translateZ(0);
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.glass-card {
|
||||
@@ -134,6 +138,11 @@ input[type="radio"]:active + * {
|
||||
border-radius: 1rem;
|
||||
overflow-x: hidden;
|
||||
overflow-y: visible;
|
||||
/* Fix Chromium compositor bug: backdrop-filter + fixed animated overlays
|
||||
causes cards to render as black rectangles on scroll/tab-switch.
|
||||
Own layer + isolation prevents stacking context confusion. */
|
||||
transform: translateZ(0);
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
/* Mode switcher - sidebar toggle */
|
||||
@@ -767,6 +776,8 @@ input[type="radio"]:active + * {
|
||||
cursor: pointer;
|
||||
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.2s ease, box-shadow 0.3s ease;
|
||||
border: none;
|
||||
transform: translateZ(0);
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.path-option-card:active {
|
||||
@@ -1175,6 +1186,23 @@ body::after {
|
||||
animation-fill-mode: backwards;
|
||||
}
|
||||
|
||||
/* Pause background animations when tab is hidden to prevent
|
||||
Chromium compositor from corrupting backdrop-filter layers on tab return */
|
||||
html.tab-hidden body::before,
|
||||
html.tab-hidden body::after,
|
||||
html.tab-hidden::before {
|
||||
animation-play-state: paused !important;
|
||||
will-change: auto !important;
|
||||
}
|
||||
|
||||
/* Strip all backdrop-filters to force compositor layer rebuild on tab return */
|
||||
html.no-backdrop *,
|
||||
html.no-backdrop *::before,
|
||||
html.no-backdrop *::after {
|
||||
backdrop-filter: none !important;
|
||||
-webkit-backdrop-filter: none !important;
|
||||
}
|
||||
|
||||
/* Dashboard: full viewport width, no letterboxing, no body scroll */
|
||||
body.dashboard-active {
|
||||
overflow: hidden;
|
||||
|
||||
Reference in New Issue
Block a user