Implementation checkpoint — 19 September 2026
The focused implementation is merged:
Delivered behavior includes the canonical WebKit spelling, bounded versioned kind-48 resource, authored blur/saturation order, foreground phase placement after retained canvas/GPU content, sampled-prior-content damage, Avalonia 12 and Flutter reference projection, exact AppScene Skia/Graphite consumption, rounded/elliptical clipping, strict limits, and authored regression/performance contracts.
Keep #503 open for deferred native/reference/product pixels, mutation, performance, memory, lifecycle, exact-package, and zero-browser gates. Only git diff --check ran; no other gate is claimed.
Problem
Unchanged Code OSS uses backdrop-filter: blur(...) on welcome/onboarding surfaces and blur(...) saturate(1.08) on chat response surfaces. WebScene exposes the property but does not sample and filter previously painted content, so these overlays lose the intended separation and translucency.
Focused implementation
- Canonicalize
-webkit-backdrop-filter to the standard effective property and preserve computed-value/CSSOM behavior.
- Parse a bounded authored-order list containing non-negative
blur() lengths and saturate() factors, including the already-supported top-level functional length forms.
- Introduce an explicit retained backdrop-effect command that samples only prior pixels inside the element paint box after its border-radius/overflow clip and before its own foreground/descendants.
- Project the same isolation and filter order in Skia/Avalonia/Uno and Flutter without copying the whole viewport.
- Expand old/new damage by the blur fringe and invalidate when geometry, clip, filter, opacity, stacking order, or sampled prior content changes.
- Fail closed and keep capability reporting explicit for unsupported functions or unavailable backend paths.
Quality and performance gates
- Browser/native computed-value, command-order, rounded-clip, nested stacking-context, opacity, transform, scroll, resize, mutation, detach, and unsupported-value contracts.
- Fixed Chromium/native pixels for the Code OSS chat and welcome fixtures on light/dark themes.
- A 1,024-overlay fixture records sampled pixel area, temporary surfaces, publications, allocations, CPU, GPU/paint time, and peak RSS; work must scale with damaged effect bounds rather than viewport size.
- One hundred panel add/remove and resize cycles return temporary surfaces and retained nodes to the warmed baseline.
Parent: #256. Coordination: #241/#243/#246.
Implementation checkpoint — 19 September 2026
The focused implementation is merged:
Delivered behavior includes the canonical WebKit spelling, bounded versioned kind-48 resource, authored blur/saturation order, foreground phase placement after retained canvas/GPU content, sampled-prior-content damage, Avalonia 12 and Flutter reference projection, exact AppScene Skia/Graphite consumption, rounded/elliptical clipping, strict limits, and authored regression/performance contracts.
Keep #503 open for deferred native/reference/product pixels, mutation, performance, memory, lifecycle, exact-package, and zero-browser gates. Only git diff --check ran; no other gate is claimed.
Problem
Unchanged Code OSS uses
backdrop-filter: blur(...)on welcome/onboarding surfaces andblur(...) saturate(1.08)on chat response surfaces. WebScene exposes the property but does not sample and filter previously painted content, so these overlays lose the intended separation and translucency.Focused implementation
-webkit-backdrop-filterto the standard effective property and preserve computed-value/CSSOM behavior.blur()lengths andsaturate()factors, including the already-supported top-level functional length forms.Quality and performance gates
Parent: #256. Coordination: #241/#243/#246.