[css-borders-4] Update box-shadow interaction with border-shape#13730
Merged
Conversation
noamr
approved these changes
Mar 26, 2026
chromium-wpt-export-bot
pushed a commit
to web-platform-tests/wpt
that referenced
this pull request
Mar 28, 2026
This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9
beckysiegel
pushed a commit
to chromium/chromium
that referenced
this pull request
Mar 28, 2026
This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1606659}
chromium-wpt-export-bot
pushed a commit
to web-platform-tests/wpt
that referenced
this pull request
Mar 28, 2026
This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1606659}
chromium-wpt-export-bot
pushed a commit
to web-platform-tests/wpt
that referenced
this pull request
Mar 28, 2026
This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1606659}
Quantumshapeshift
approved these changes
Mar 29, 2026
Quantumshapeshift
approved these changes
Mar 29, 2026
beckysiegel
pushed a commit
to chromium/chromium
that referenced
this pull request
Mar 31, 2026
Original change's description: > [border-shape] Align box-shadow with CSS Borders 4 spec > > This patch updates the border-shape box-shadow implementation to align > with the latest specification. > Spec changes: w3c/csswg-drafts#13730 > > Key changes: > - Corrected spread expansion: Replaced bounding-box scaling (which > non-uniformly distorted shapes) with mathematically correct SkPath > operations. > - Outer box shadows expand via Path union and contract via Path > difference of the stroked outer border edge. > - Inset box shadows correctly expand/contract the 'hole' via Path > difference/union of the stroked inner border edge. > - Shadow paths are no longer artificially inflated by the blur radius, > preventing 'over-inflated' shadows. Blur is now handled exclusively > by the paint looper. > - Fixed a bug where transparent/semi-transparent shadows were > double-drawing the caster shape by correctly using black to > generate the looper shadow mask. > - Cleaned up OverflowClipInnerPath as the overflow-clip-margin > expansion applies to the reference box earlier in the pipeline. > - Updated outdated WPT test references that misaligned with the new > specification's geometry logic, keeping minimum required fuzzy tags > for anti-aliasing differences between Skia paths and SVG stroke > rendering. > > Fixed: 496140391 > Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 > Reviewed-by: Philip Rogers <pdr@chromium.org> > Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1606659} (cherry picked from commit 776a2c5) Bug: 497163292,496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7707059 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Chrome Cherry Picker <chrome-cherry-picker@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/branch-heads/7727@{#1885} Cr-Branched-From: ce01102-refs/heads/main@{#1596535}
lando-worker Bot
pushed a commit
to mozilla-firefox/firefox
that referenced
this pull request
Apr 4, 2026
… Borders 4 spec, a=testonly Automatic update from web-platform-tests [border-shape] Align box-shadow with CSS Borders 4 spec This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1606659} -- wpt-commits: 86410041c6121bcb229b1a2b3e0d600bd94fa00f wpt-pr: 58835
lando-worker Bot
pushed a commit
to mozilla-firefox/firefox
that referenced
this pull request
Apr 9, 2026
… Borders 4 spec, a=testonly Automatic update from web-platform-tests [border-shape] Align box-shadow with CSS Borders 4 spec This patch updates the border-shape box-shadow implementation to align with the latest specification. Spec changes: w3c/csswg-drafts#13730 Key changes: - Corrected spread expansion: Replaced bounding-box scaling (which non-uniformly distorted shapes) with mathematically correct SkPath operations. - Outer box shadows expand via Path union and contract via Path difference of the stroked outer border edge. - Inset box shadows correctly expand/contract the 'hole' via Path difference/union of the stroked inner border edge. - Shadow paths are no longer artificially inflated by the blur radius, preventing 'over-inflated' shadows. Blur is now handled exclusively by the paint looper. - Fixed a bug where transparent/semi-transparent shadows were double-drawing the caster shape by correctly using black to generate the looper shadow mask. - Cleaned up OverflowClipInnerPath as the overflow-clip-margin expansion applies to the reference box earlier in the pipeline. - Updated outdated WPT test references that misaligned with the new specification's geometry logic, keeping minimum required fuzzy tags for anti-aliasing differences between Skia paths and SVG stroke rendering. Fixed: 496140391 Change-Id: I2ac7fcd9132135a6de7e5bd412b234d8c5a89ff9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706396 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: Daniil Sakhapov <sakhapov@chromium.org> Cr-Commit-Position: refs/heads/main@{#1606659} -- wpt-commits: 86410041c6121bcb229b1a2b3e0d600bd94fa00f wpt-pr: 58835
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.
No description provided.