Skip to content

perf(liquid-glass): static large surfaces and true intensity-0 early-out - #183

Open
yanhenrique-dev wants to merge 1 commit into
OpenMouse-Project:control-panelfrom
yanhenrique-dev:fix/liquid-glass-p0-static
Open

perf(liquid-glass): static large surfaces and true intensity-0 early-out#183
yanhenrique-dev wants to merge 1 commit into
OpenMouse-Project:control-panelfrom
yanhenrique-dev:fix/liquid-glass-p0-static

Conversation

@yanhenrique-dev

Copy link
Copy Markdown

Problem

The Liquid Glass theme janks, especially on scroll. Two full-size live filters are responsible: the control panel (the scrollport itself) carries a full-sheet backdrop-filter + SVG displacement map re-sampled every scroll frame, and the sidebar carries a full-height refraction layer over an almost entirely static backdrop. Additionally, dragging Glass intensity to 0 only shrinks blur radius to 0 — the backdrop snapshot, url() displacement and saturate passes keep running.

Changes

  • control-panel sheet becomes a static material (existing gradients + hairline); live refraction stays only on small floating surfaces (tabs, dialogs, menus, toasts, sliders, switches).
  • Sidebar refraction layer display:none'd (tint + specular keep the look for free); sidebar hover drops the box-shadow transition and the hover sheen no longer travels across it.
  • New .is-glass-min shell class (set from App.tsx when the slider hits 0) display:none's every remaining live filter layer instead of fading it.
  • Removes the now-unreferenced lg-sheet-filter SVG def from index.html.

Verification

  • CSS braces balanced, zero remaining lg-sheet-filter references.
  • Full suite in the working copy: 122/122 pass. Dev server HMR picks the changes up cleanly.

The control panel (the scrollport) carried a full-sheet backdrop-filter
plus SVG displacement map, re-sampled on every scroll frame; the sidebar
carried a full-height refraction layer with a near-static backdrop.
Both become static materials (gradients, hairlines) while live
refraction survives on small floating surfaces only.
Also adds .is-glass-min (set when the intensity slider hits 0): fading
blur radius to 0 still pays the backdrop snapshot + url() + saturate
passes, so every live filter layer is display:none'd instead. Removes
the now-unreferenced lg-sheet-filter SVG def and the sidebar's
box-shadow transition / hover sheen travel (full-height repaints).
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@yanhenrique-dev