Skip to content

Fullbleed 2.5.40: continuous text decorations

Choose a tag to compare

@krflol krflol released this 27 Oct 23:11

Underlines, overlines and strikethroughs now continue across spaces inside decorated text. Nested inline spans preserve the ancestor's decoration color, thickness and baseline; collapsed spaces at line edges remain unpainted, and atomic inline boxes retain their own decoration boundaries.

Install Python with python -m pip install fullbleed==2.5.40 or pin Rust with fullbleed = "=2.5.40".

The public 2.5.39 wheel reproduces 13 failing cases in the 16-case direct-render control. This release passes all 80 cases across direct, compiled, fixed, reflow and compact rendering, plus 100 existing decoration-thickness cases. Qualification also passed 769 Python tests, 1,408 native tests and 11 documentation tests.

All 16 public Python distributions match the tagged release artifacts. A fresh Python installation reproduces all 80 candidate PDFs and preview checks; a fresh public Rust consumer reproduces the glyph geometry and native/PDFium pixels of the 16 direct cases. Windows and Linux CI artifacts match the candidate for all 80 decoration cases.

In the unchanged 1,662-case CSS corpus, four failures become passes, with no worsened case. All other 1,658 fixture verdicts and raster hashes remain unchanged. The result is 1,624 PASS, 20 FAIL and 18 REFERENCE-DISPUTED; the all-pass gate remains failed. Before/reference/after images and the original reports are attached.

No new public API or runtime dependency is introduced. Component authoring remains alpha. These checks do not establish complete CSS support, general raster parity, performance improvement or standards conformance; dedicated PDF/VT validation remains unavailable.