trying to make firefox less laggy

This commit is contained in:
Prabhaav Pillai
2026-09-09 02:14:29 -04:00
parent f47322cbee
commit b3a14cb48d
@@ -36,7 +36,6 @@
--glass-border-light: rgba(255, 255, 255, 0.2);
--glass-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.35);
--glass-blur: blur(4px);
--card-scroll-bg: rgba(22, 18, 38, 0.95);
--glass-text: #f3f2f8;
--glass-accent: #9d72ff;
@@ -106,7 +105,6 @@
--surface-container: rgba(255, 255, 255, 0.75);
--surface-container-high: rgba(255, 255, 255, 0.95);
--surface-container-low: rgba(240, 243, 252, 0.75);
--card-scroll-bg: rgba(245, 246, 252, 0.96);
--on-surface: #171526;
--on-surface-variant: #5f5b7d;
@@ -186,44 +184,78 @@ body {
radial-gradient(ellipse at 85% 75%, rgba(85, 45, 180, 0.18) 0%, transparent 60%),
radial-gradient(circle at 75% 15%, rgba(77, 232, 232, 0.12) 0%, transparent 48%);
pointer-events: none;
transform: translateZ(0);
will-change: transform;
isolation: isolate;
contain: strict;
transform: translateZ(0);
}
#galaxy-bg::before {
content: "";
position: absolute;
top: 0; left: 0; width: 100%; height: 200%;
background-image:
radial-gradient(1px 1px at 30px 40px, #ffffff, rgba(255,255,255,0)),
radial-gradient(1px 1px at 110px 220px, rgba(220, 200, 255, 0.8), rgba(255,255,255,0)),
radial-gradient(1.5px 1.5px at 200px 90px, #ffffff, rgba(255,255,255,0)),
radial-gradient(1.5px 1.5px at 310px 340px, rgba(160, 240, 255, 0.9), rgba(255,255,255,0)),
radial-gradient(1px 1px at 410px 150px, #ffffff, rgba(255,255,255,0)),
radial-gradient(1.5px 1.5px at 640px 110px, #ffffff, rgba(255,255,255,0)),
radial-gradient(1px 1px at 890px 180px, #ffffff, rgba(255,255,255,0));
background-size: 800px 400px;
top: 0;
left: 0;
width: 1px;
height: 1px;
border-radius: 50%;
background: #ffffff;
box-shadow:
30px 40px #ffffff,
110px 220px rgba(220, 200, 255, 0.8),
200px 90px #ffffff,
310px 340px rgba(160, 240, 255, 0.9),
410px 150px #ffffff,
640px 110px #ffffff,
890px 180px #ffffff,
150px 450px #ffffff,
270px 580px rgba(220, 200, 255, 0.8),
450px 510px rgba(160, 240, 255, 0.9),
720px 470px #ffffff,
950px 530px #ffffff,
30px 640px #ffffff,
110px 820px rgba(220, 200, 255, 0.8),
200px 690px #ffffff,
310px 940px rgba(160, 240, 255, 0.9),
410px 750px #ffffff,
640px 710px #ffffff,
890px 780px #ffffff,
150px 1050px #ffffff,
270px 1180px rgba(220, 200, 255, 0.8),
450px 1110px rgba(160, 240, 255, 0.9),
720px 1070px #ffffff,
950px 1130px #ffffff;
opacity: 0.5;
animation: gx-drift-layer1 240s linear infinite;
will-change: transform;
transform: translate3d(var(--gx-para-x), 0, 0);
}
#galaxy-bg::after {
content: "";
position: absolute;
top: 0; left: 0; width: 100%; height: 200%;
background-image:
radial-gradient(1.5px 1.5px at 80px 140px, #ffffff, rgba(255,255,255,0)),
radial-gradient(2px 2px at 240px 390px, rgba(190, 235, 255, 0.9), rgba(255,255,255,0)),
radial-gradient(1.5px 1.5px at 380px 60px, rgba(230, 195, 255, 0.85), rgba(255,255,255,0)),
radial-gradient(2px 2px at 560px 480px, #ffffff, rgba(255,255,255,0)),
radial-gradient(1.5px 1.5px at 730px 220px, rgba(255, 255, 255, 0.9), rgba(255,255,255,0));
background-size: 900px 450px;
opacity: 0.6;
top: 0;
left: 0;
width: 2px;
height: 2px;
border-radius: 50%;
background: #ffffff;
box-shadow:
80px 140px #ffffff,
240px 390px rgba(190, 235, 255, 0.9),
380px 60px rgba(230, 195, 255, 0.85),
560px 480px #ffffff,
730px 220px rgba(255, 255, 255, 0.9),
80px 590px #ffffff,
320px 520px rgba(255, 255, 255, 0.9),
610px 380px rgba(190, 235, 255, 0.9),
80px 740px #ffffff,
240px 990px rgba(190, 235, 255, 0.9),
380px 660px rgba(230, 195, 255, 0.85),
560px 1080px #ffffff,
730px 820px rgba(255, 255, 255, 0.9),
80px 1190px #ffffff,
320px 1120px rgba(255, 255, 255, 0.9),
610px 980px rgba(190, 235, 255, 0.9);
opacity: 0.65;
animation: gx-drift-layer2 150s linear infinite;
will-change: transform;
transform: translate3d(var(--gx-para-x), 0, 0);
}
#galaxy-bg .galaxy-hero {
@@ -234,16 +266,28 @@ body {
background: #ffffff;
box-shadow: 0 0 6px rgba(255, 255, 255, 0.9);
animation: galaxy-twinkle 6s ease-in-out infinite alternate;
will-change: opacity, transform;
}
@keyframes gx-drift-layer1 {
0% { transform: translate3d(var(--gx-para-x, 0px), 0, 0); }
100% { transform: translate3d(var(--gx-para-x, 0px), -600px, 0); }
}
@keyframes gx-drift-layer2 {
0% { transform: translate3d(var(--gx-para-x, 0px), 0, 0); }
100% { transform: translate3d(var(--gx-para-x, 0px), -600px, 0); }
}
@keyframes galaxy-twinkle {
0%, 100% { opacity: 0.3; transform: scale(0.9); }
50% { opacity: 1; transform: scale(1.2); }
50% { opacity: 1.0; transform: scale(1.2); }
}
@media (prefers-reduced-motion: reduce) {
#galaxy-bg, #galaxy-bg::before, #galaxy-bg::after, #galaxy-bg .galaxy-hero,
#galaxy-stars, #galaxy-stars .galaxy-hero {
#galaxy-bg::before,
#galaxy-bg::after,
#galaxy-bg .galaxy-hero {
animation: none !important;
}
}
@@ -259,9 +303,11 @@ body {
[data-theme="light"] #galaxy-bg::before,
[data-theme="light"] #galaxy-bg::after,
[data-theme="light"] #galaxy-bg .galaxy-hero {
opacity: 0.12;
opacity: 0.18;
}
[v-cloak] { display: none !important; }
a { color: inherit; text-decoration: none; }
button { font-family: var(--font-body); }
@@ -304,8 +350,6 @@ ul { list-style: none; margin: 0; padding: 0; }
position: sticky;
top: 0;
z-index: var(--z-appbar);
transform: translateZ(0);
isolation: isolate;
}
.gx-appbar__pill {
@@ -325,7 +369,8 @@ ul { list-style: none; margin: 0; padding: 0; }
transition: background-color var(--motion-fast), border-color var(--motion-fast);
}
.gx-appbar__back {
.gx-appbar__back,
.gx-theme-toggle {
background: var(--glass-bg);
backdrop-filter: var(--glass-blur);
-webkit-backdrop-filter: var(--glass-blur);
@@ -339,7 +384,8 @@ ul { list-style: none; margin: 0; padding: 0; }
transition: transform var(--motion-fast), background-color var(--motion-fast);
}
.gx-appbar__back:active { transform: scale(0.92); }
.gx-appbar__back:active,
.gx-theme-toggle:active { transform: scale(0.92); }
.gx-appbar__title {
background: linear-gradient(135deg, #8b6cc5 0%, #5ec8c8 55%, #d4789c 100%);
@@ -411,27 +457,6 @@ ul { list-style: none; margin: 0; padding: 0; }
.gx-back-btn { display: none; }
.gx-menu-btn { display: inline-flex; }
.gx-theme-toggle {
background: var(--glass-bg);
backdrop-filter: var(--glass-blur);
-webkit-backdrop-filter: var(--glass-blur);
border: 1px solid var(--glass-border);
border-radius: 50%;
box-shadow: var(--glass-shadow);
color: var(--glass-text);
flex: none;
height: var(--touch-target);
width: var(--touch-target);
transition: transform var(--motion-fast), background-color var(--motion-fast), border-color var(--motion-fast);
}
.gx-theme-toggle:active { transform: scale(0.92); }
[data-theme="light"] .gx-theme-toggle {
border: 1.5px solid var(--primary);
box-shadow: 0 2px 8px rgba(120, 73, 232, 0.2);
}
.gx-searchwrap {
align-items: center;
display: flex;
@@ -513,10 +538,7 @@ ul { list-style: none; margin: 0; padding: 0; }
position: fixed;
bottom: calc(18px + env(safe-area-inset-bottom, 0px));
left: 50%;
transform: translateX(-50%) translateZ(0);
will-change: transform;
isolation: isolate;
contain: layout style;
transform: translateX(-50%);
z-index: 1000;
display: flex;
@@ -592,81 +614,7 @@ ul { list-style: none; margin: 0; padding: 0; }
box-shadow: var(--elev-1);
margin-bottom: var(--sp-4);
overflow: hidden;
transition: transform var(--motion-fast), box-shadow var(--motion-fast), background-color 0.15s ease-out;
}
/* Surgical content-visibility for top-level non-collapsible cards */
.dh-card:not(.dh-stat),
.gx-content > div > .gx-card {
content-visibility: auto;
contain-intrinsic-size: 280px;
contain-intrinsic-size: auto 280px;
}
.dh-stat {
content-visibility: auto;
contain-intrinsic-size: 110px;
contain-intrinsic-size: auto 110px;
}
/* Disarm containment on collapsible sections and nested cards */
.gx-card:has(.gx-section__body),
.gx-card .gx-card,
.gx-tree-node .gx-card {
content-visibility: visible !important;
contain-intrinsic-size: none !important;
}
/* Velocity-Adaptive Glass: bypass blur on scrolling cards with contrast boost */
body.is-scrolling .gx-card,
body.is-scrolling .gx-tile {
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
background: var(--card-scroll-bg) !important;
}
/* Layer 2: Celestial Starlight Canopy */
#galaxy-stars {
position: fixed;
inset: 0;
z-index: 20;
pointer-events: none;
overflow: hidden;
contain: strict;
transform: translateZ(0);
}
#galaxy-stars .galaxy-hero {
position: absolute;
border-radius: 50%;
background: radial-gradient(
circle,
rgba(255, 255, 255, 0.95) 0%,
rgba(157, 114, 255, 0.65) 35%,
rgba(77, 232, 232, 0.2) 65%,
transparent 100%
);
box-shadow:
0 0 8px rgba(157, 114, 255, 0.4),
0 0 3px rgba(255, 255, 255, 0.8);
mix-blend-mode: screen;
will-change: transform, opacity;
animation: galaxy-twinkle 6s ease-in-out infinite alternate;
}
/* Keep decorative animation out of modal backdrops and drawer content. */
body:has(.gx-scrim, .gx-underlay, .gx-drawer.open) #galaxy-stars {
display: none;
}
[data-theme="light"] #galaxy-stars {
opacity: 0.4;
}
[data-theme="light"] #galaxy-stars .galaxy-hero {
background: radial-gradient(circle at center, #7849e8 0%, #b38fff 60%, rgba(120, 73, 232, 0) 100%);
box-shadow: 0 0 4px rgba(120, 73, 232, 0.45), 0 0 8px rgba(77, 232, 232, 0.3);
mix-blend-mode: normal;
transition: transform var(--motion-fast), box-shadow var(--motion-fast);
}
.gx-unit-note {
@@ -944,10 +892,6 @@ input[type="range"].gx-slider:active::-webkit-slider-thumb {
border: 1.5px solid var(--primary);
}
/* Fields are fluid and shrinkable: never let a select/textarea blow past its
container (intrinsic width from options/content) or refuse to shrink inside
a flex row. Contexts that want a full-width field (e.g. stacked toggle rows,
.gx-field--full) still stretch explicitly. */
.gx-field {
background: rgba(255, 255, 255, 0.06);
border: 1px solid var(--glass-border);
@@ -1373,8 +1317,6 @@ input[type="color"].gx-color {
margin-top: var(--sp-5);
}
/* Native-style bottom sheet used for fullscreen player overlays. Kept as a
sibling of gx-sheet so confirm dialogs keep their centered look. */
.gx-scrim--bottomsheet {
align-items: flex-end;
padding: var(--sp-4) 0 calc(var(--bottomnav-height) + var(--sp-3));
@@ -1536,9 +1478,6 @@ input[type="color"].gx-color {
.gx-fade-enter-active, .gx-fade-leave-active { transition: opacity var(--motion-base); }
.gx-fade-enter-from, .gx-fade-leave-to { opacity: 0; }
/* Keep the underlay (and star suppression) until the drawer finishes closing. */
.gx-underlay.gx-fade-leave-active { transition: opacity var(--motion-slow); }
.gx-slide-enter-active, .gx-slide-leave-active {
transition: transform var(--motion-base), opacity var(--motion-base);
}
@@ -1552,8 +1491,6 @@ input[type="color"].gx-color {
}
.gx-collapse-enter-from, .gx-collapse-leave-to { max-height: 0; opacity: 0; }
/* ---- PWA install guidance (Galaxy page) ---- */
.gx-install__body {
display: grid;
gap: var(--sp-3);
@@ -1644,4 +1581,4 @@ input[type="color"].gx-color {
.gx-menu-btn { display: inline-flex; }
.gx-back-btn { display: none; }
.gx-content { padding-bottom: var(--sp-6); }
}
}