Completed focused slice — 19 September 2026
PR #501 merged provider-first as WebScene main commit fd3ea54388cd88afb97d86bc9e09384814e5908a; this issue is closed. The change exposes standard/WebKit mask identities and expands bounded single-layer shorthand forms into retained longhands. A stale property-count expectation found by the first CI attempt was corrected before merge. Full cumulative validation remains deferred and is tracked by #256/#235.
Problem
Unchanged Code OSS frequently authors icon and fade masks through the mask shorthand, often paired with a -webkit-mask fallback. WebScene currently exposes only the five longhands. Its native declaration parser drops prefixed mask declarations and retains a standard mask declaration as an unrelated property, so the renderer never receives the longhand image/repeat/position/size/composite state.
Representative consumers include activity/view icons, file-icon themes, progress indicators, Chat welcome icons, voice-glow borders, and session input banners.
Bounded implementation
- Add browser-shaped
mask and prefixed mask property identities/aliases without changing VS Code.
- Canonicalize
-webkit-mask* declarations to the corresponding standard property.
- Expand a single balanced mask layer during declaration parsing into
mask-image, mask-position, mask-size, mask-repeat, mask-composite, and mask-mode so normal cascade ordering operates on effective longhands.
- Support the Code OSS URL/gradient plus repeat and position forms; reset omitted components to their initial values.
- Preserve unsupported multi-layer, geometry-box, luminance, and non-add forms as explicit unclaimed syntax instead of partially applying them.
- Add parser, inline-style, CSSOM/computed-value, mutation, cascade-order, prefixed-alias, and bounded-work regression coverage.
Acceptance and deferred gates
The effective longhands must be identical whether authored directly or through the supported shorthand, including longhand-before/after-shorthand ordering and !important. No product-specific selector or URL is permitted. Browser/WPT, native runtime, performance, memory, package, and CI gates remain required before release promotion but are deferred under the current throughput directive.
Parent: #256. Coordination: #235/#239/#241.
Completed focused slice — 19 September 2026
PR #501 merged provider-first as WebScene main commit
fd3ea54388cd88afb97d86bc9e09384814e5908a; this issue is closed. The change exposes standard/WebKit mask identities and expands bounded single-layer shorthand forms into retained longhands. A stale property-count expectation found by the first CI attempt was corrected before merge. Full cumulative validation remains deferred and is tracked by #256/#235.Problem
Unchanged Code OSS frequently authors icon and fade masks through the
maskshorthand, often paired with a-webkit-maskfallback. WebScene currently exposes only the five longhands. Its native declaration parser drops prefixed mask declarations and retains a standardmaskdeclaration as an unrelated property, so the renderer never receives the longhand image/repeat/position/size/composite state.Representative consumers include activity/view icons, file-icon themes, progress indicators, Chat welcome icons, voice-glow borders, and session input banners.
Bounded implementation
maskand prefixed mask property identities/aliases without changing VS Code.-webkit-mask*declarations to the corresponding standard property.mask-image,mask-position,mask-size,mask-repeat,mask-composite, andmask-modeso normal cascade ordering operates on effective longhands.Acceptance and deferred gates
The effective longhands must be identical whether authored directly or through the supported shorthand, including longhand-before/after-shorthand ordering and
!important. No product-specific selector or URL is permitted. Browser/WPT, native runtime, performance, memory, package, and CI gates remain required before release promotion but are deferred under the current throughput directive.Parent: #256. Coordination: #235/#239/#241.