fix(popover): arrow inherits custom background colors, replace data-placement with classes #4144
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.
The popover arrow color was not matching the background color when developers set custom background colors via CSS, and the component was using CSS attribute selectors that aren't supported in miniprogram environments.
Root Cause
Arrow color inheritance: The arrow couldn't adapt to custom background colors set by developers on the content element. It only worked with predefined theme colors.
Unsupported attribute selectors: The CSS used
[data-placement^='...']attribute selectors which aren't properly supported in miniprogram environments.Changes
1. Arrow Color Inheritance
The arrow now automatically inherits any background color set on the content element:
The arrow uses
border-{direction}-color: currentColorto inherit thecolorproperty from its parent content element. When developers set a custombackground-coloron the content via CSS, they can also set thecolorproperty to match, and the arrow will automatically adapt.2. Class-Based Placement Selectors
Replaced all CSS attribute selectors with class-based selectors:
The placement is now added as a CSS class (
.t-popover--placement-{placement}) to the root popover element in the WXML template.Testing
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.