You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Repeating background layer converts to a single intrinsic-size core/image (tiling lost) #3552
An empty element whose only output is a repeating background image is converted to a single core/image at the image's intrinsic size. A tiled texture that covers a whole section renders as one tile in the corner.
HtmlCompilation::backgroundImageBlockFromElement() reads only background-size. It ignores background-repeat (and background-position), although CoverStyleResolver::hasRepeatingBackground() already detects repetition (CoverPattern uses it to decline).
Reduced reproduction (released SSI 1.33.156)
tile.png is a 40×40 checker.
<style>body{margin:0}.band{position:relative;padding:80px24px}.t{position:absolute;inset:0}h2{position:relative}</style><sectionclass="band"><divclass="t" style="background-image:url(tile.png);background-repeat:repeat"></div><h2>Answer every call</h2></section>
Painted element
Box
Tiling
Source
div.t background
800×206 (fills section)
repeat
WordPress
<img src=tile.png>
40×40 at top-left
none
The quality gate reports 0 fallbacks, so the loss is invisible to the gate.
Expected
A repeating background stays a background. One option is a native container carrying style.background (backgroundImage, backgroundRepeat, backgroundSize, backgroundPosition), which core supports on core/group; this keeps the element's geometry, so the tiled texture fills the same box. Non-repeating cover/contain layers can keep today's image path.
Acceptance
A regression test using the reduced page. It fails on trunk and passes with the fix: the repeating layer is not a core/image, and its block carries the repeat.
Before/after render evidence: the painted box and repeat match the source.
Existing suites pass.
This also blocks #3551 (#2613 class 1). That PR routes empty background-only custom elements (Wix wix-bg-image tiled overlays) through this same path. It removes the fallback, but on https://www.getringwave.com/ the tiled overlays would render as single tiles.
AI disclosure: Claude (Opus) via Roadie/Pi found this while reviewing #3551 on a real import, and measured it with Playwright, under Chris Huber's direction.
Activity