Skip to content

fix(codegen): open a blended decoration's stacking context on its backdrop owner - #123

Merged
owjs3901 merged 2 commits into
mainfrom
devfive/3099154426bffbeef8b62999b80bb038/prime-feedback-followups
Nov 10, 2026
Merged

owjs3901 merged 2 commits into
mainfrom
devfive/3099154426bffbeef8b62999b80bb038/prime-feedback-followups

Conversation

@devfive-relay-c70423

Copy link
Copy Markdown
Contributor

Follow-up to #121, which merged at 55409c7 before this commit was pushed. Fixes Prime feedback 005. The audit is in reports/prime-feedback-2026-11.md → "005 and 009 resolved".

Problem

  • A devup-ui investigation (main 675f7e20) found that Devup UI emits mix-blend-mode/filter/z-index/isolation/position/transform faithfully; its Chromium screenshots are byte-identical to plain CSS. The defect is in devup-mcp codegen.
  • In the Prime SEO-GEO contact banner (instance 32:1929; decorations I32:1929;32:1876 and I32:1929;32:1877), the negative-z policy gave pos="relative" zIndex="0" to the transparent content wrapper inside the gradient owner.
  • The multiply decorations (zIndex="-1") therefore composited against a transparent backdrop and drew white blobs: center pixel 224,224,224 instead of 77,44,208.

Change

  • New codegen/layout/blend_backdrop.rs, called from push_layout_props. The stacking context moves to the nearest ancestor that paints the backdrop when:
    • a node's negative-z children are blended,
    • the node is a wrapper that paints nothing and opens no context of its own (no fill/stroke/effect/opacity/blend/rotation/own negative z),
    • and nothing in that ancestor is drawn before the wrapper.
  • The wrapper keeps pos="relative" for the decoration's coordinates.
  • These cases keep the existing containment on the wrapper:
    • unblended negative-z children,
    • wrappers that paint their own fill,
    • earlier painted siblings.
  • The report records 005 as fixed and 009 as a Devup UI compiler bug fixed in @devup-ui/wasm 1.0.82 (devup-ui PR #681), with no MCP change.
  • Adds a changepack (Patch).

Test evidence

  • tests/blend_backdrop_context.rs: 4 regressions covering the lift onto the gradient owner (none on the wrapper) and the three fallbacks.
  • Harness browser test (harness/runtime-audit/test/codegen-layout.test.mjs): compiles the fixture with the installed Devup UI and checks:
    • computed z-index is 0 on the owner and auto on the wrapper;
    • the decoration pixel is multiplied into the purple gradient;
    • a control that moves the context back to the wrapper shows the light blob, so the check tells the two cases apart.
  • cargo fmt --all -- --check and cargo clippy --locked --workspace --all-targets --all-features -- -D warnings: pass.
  • cargo insta test --workspace --all-features --check: 2264 passed / 1 failed / 2 ignored locally on Windows. No snapshot or golden changed.
  • Node tests: 83 tests, 82 pass, 0 fail.
  • Harness browser suite: 97 tests, 96 pass, 1 skipped (CI-only gate), 0 fail.

🤖 Generated with Claude Code


Submitted via Devfive hub. Employee: ; device: 3099154426bffbeef8b62999b80bb038

leader and others added 2 commits November 10, 2026 11:51
…kdrop owner

A transparent wrapper inside a gradient owner received pos relative +
zIndex 0 for its negative-z multiply decoration, so the decoration
composited against transparency and drew white blobs (Prime contact banner,
instance 32:1929). The context now lives on the nearest ancestor that paints
the backdrop when the wrapper paints nothing and opens no context of its
own and nothing in the ancestor is drawn before it. Unblended children,
painting wrappers and earlier siblings keep the existing containment.

Adds Rust regressions for the lift and its fallbacks, a harness browser
pixel check with a control, and records 005/009 as resolved in the report.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@owjs3901
owjs3901 marked this pull request as ready for review November 10, 2026 08:27
@owjs3901
owjs3901 merged commit e362942 into main Nov 10, 2026
9 checks passed
@owjs3901
owjs3901 deleted the devfive/3099154426bffbeef8b62999b80bb038/prime-feedback-followups branch November 10, 2026 08:27
Sign up for free to 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