Fix invisible context menus and confirm dialogs (transparent panel background) - #433
Merged
epeicher merged 1 commit intoJul 28, 2026
Conversation
…m dialogs The desktop-themes texture slots added a background-image longhand right after each surface's background: shorthand. These three surfaces resolve their color through --desktop-mode-bg, which holds the wallpaper GRADIENT — an <image>, not a <color> — so the shorthand routed the whole paint into background-image, and the texture slot's `background-image: var(--slot, none)` then reset it to nothing. With no desktop theme active the panels rendered fully transparent: white menu items floating unreadably over the My WordPress window body. Split the paint into longhands, matching the conversion the texture work applied elsewhere: background-color carries the surface token with a literal dark fallback, and background-image stays owned by the texture slot. --desktop-mode-bg leaves the chain — an image- valued token can never feed background-color, and keeping it in the texture slot's fallback would paint over theme-set surface colors.
epeicher
enabled auto-merge (squash)
July 28, 2026 10:55
epeicher
deleted the
deskmod-61-fix-invisible-contextual-menu-items-in-my-wordpress
branch
July 28, 2026 10:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What it does
Restores the opaque dark panel behind
<wpd-context-menu>,<wpd-confirm-dialog>, and<wpd-modal>. All three currently render fully transparent — right-clicking a tile in My WordPress shows the menu items as loose white text floating over the window body, and the delete-confirmation prompt is equally unreadable.Rationale
The desktop-themes texture work (#420) added a texture-slot longhand immediately after each surface's
background:shorthand:--desktop-mode-bgis the wallpaper token and holds a gradient — an<image>, not a<color>. The shorthand therefore routed the entire paint intobackground-image(leavingbackground-color: transparent), and the texture slot'snonefallback then wiped that image out. With no desktop theme active, nothing painted at all.#420 converted other surfaces from
background:tobackground-colorfor exactly this shorthand-resets-the-texture reason; these three were missed because their fallback chain bottoms out in the gradient rather than a color literal.Implementation
Each surface now splits the paint into its two longhands, so the texture slot owns
background-imageoutright:--desktop-mode-bgleaves the chain deliberately: an image-valued token can never feedbackground-color, and keeping it as the texture slot's fallback would paint the default gradient over any theme-set surface color (the:rootgradient is always defined). The literal#1d2327matches the gradient's base tone, so the default look is unchanged apart from losing an imperceptible tint sweep. A comment at each site documents the constraint.Testing instructions
npm run env:start, then in the desktop shell open My WordPress → Media (any section with tiles works).npm run test:js(2353 tests),npm run lint,npm run typecheck— all green.