Skip to content

Fullbleed 2.5.27: inline SVG document styling

Choose a tag to compare

@krflol krflol released this 16 Oct 22:15
· 197 commits to master since this release
d40815c

Inline SVG now uses the document cascade for supported paint and font properties. Class and ancestor selectors, inherited paint, currentColor, stylesheet selection, variables and declaration priority reach SVG descendants. Group opacity composites overlapping shapes once; paint alpha and inherited fill/stroke opacity remain separate. Standalone SVG assets keep their own styling context.

Install with python -m pip install fullbleed==2.5.27 or use fullbleed = "=2.5.27" in Cargo. Python's 15 platform wheels and source distribution, plus the default-feature Rust crate, are publicly available and independently verified. Runtime dependencies are unchanged.

The stylesheet contract describes the supported behavior. The static component alpha remains a separate opt-in package; this patch does not change its API or the Node/.NET engine pins.

Verification covers 1,377 native tests, 658 Python tests and 810 installed-output checks across 54 SVG fixtures. All 648 fixture PDFs match between the qualified build, Linux release build and fresh public Windows wheel. Native previews match. Independent PDFium previews retain platform differences in the small order-number text below each SVG; all SVG pixels match. A fresh crates.io consumer verifies 108 vector/form documents, deterministic repeats, compiled output and independent paint samples.

The feature source's complete 1,662-case corpus retains 1,619 PASS, 25 FAIL and 18 REFERENCE-DISPUTED verdicts. One PASS fixture has a slightly higher mismatch at the translucent rectangle's 710-pixel perimeter; the reference, interior and remaining page are unchanged. The evidence keeps those failures and the changed score. These are scoped regression checks, not full CSS/SVG or PDF conformance. The unconfigured dedicated PDF/VT validator remains skipped.