Inspect the CSS comparison¶
Latest published wheel: 2.5.22¶
Search by CSS feature, category or verdict, compare the printed pages, and download the actual PDF without extracting an archive.
The complete October 14, 2026 run tests the published Fullbleed 2.5.22 Linux wheel against the same pinned 1,662-fixture corpus. It records 1,619 PASS, 25 FAIL and 18 REFERENCE-DISPUTED. The unchanged upstream gate still fails; its original reasons and all fixture verdicts are retained.
All 1,662 generated PDFs are byte-identical to the reviewed 2.5.22 source run below. Fixture verdicts, reference metadata and reference page fingerprints also match. The downloaded wheel's SHA-256 matches PyPI's published file record.
Complete published-wheel evidence (57.4 MiB) · Structured verification · SHA-256 checksums · Workflow run · Explorer build pin
For the original offline report, extract this ZIP once and open
ironpress-evidence/current/reports/index.html. The upstream report labels its
candidate “ironpress”; that candidate is Fullbleed in this run. The online
browser presents the same original PDF and preview bytes, verdicts and reference
notes. It does not change the comparator's policy or promote disputed cases to
passes.
These results apply to the exact Linux wheel, explicit assets, pinned references and comparison policy. They do not establish complete CSS support, arbitrary website rendering, or PDF standards conformance. Historical tables and failure lists further down this page retain their stated release versions.
Latest reviewed source: 2.5.22¶
The 2.5.22 release
includes a complete run of the unchanged 1,662-fixture corpus against source
commit 4951d81c73f0e5eec56c312aaf5b17ababd731eb. Its results are 1,619 PASS,
25 FAIL, and 18 REFERENCE-DISPUTED. The existing upstream gate still fails;
the remaining failures and disputed references are retained in the evidence.
This earlier run tested a source candidate. The complete published-wheel run above now verifies the final Linux package against the same corpus. Fresh public Python and Rust packages also have separate focused verification. The tagged release has the same source tree as the reviewed candidate.
The latest change fixes floated ::first-letter layout. Large initials now
sit inside their styled box, and body text wraps beside the full float height.
In the unchanged comparator, generated-content-first-letter-dropcap moved
from REFERENCE-DISPUTED to PASS. The upstream reference's disputed metadata
is preserved. The other 1,661 PDFs are byte-identical to the retained
source baseline reviewed for 2.5.21, with no new FAIL or lost PASS verdicts.
These are unmodified renders of the same upstream fixture. The public 2.5.22 Python wheel produces the exact reviewed candidate PDF. Twenty focused cases also compare text and decoration geometry with independent Chrome print references; public Python reproduces all 60 direct/compiled/reflow PDFs, and a default-feature crates.io consumer reproduces all 40 direct/compiled PDFs.
Complete source corpus and review · Browser references and runnable checks · Verification record · Image and PDF provenance
To inspect the full source report, extract the outer archive, then its
source-corpus-evidence.zip, and open
ironpress-evidence/current/reports/index.html. The upstream report calls the
candidate “ironpress”; that candidate is Fullbleed in this run.
The browser playground and language-specific downloads identify their own tested engine versions. Check that version when trying a recent fix. These fixture results do not establish complete CSS parity or PDF standards conformance.
Published-wheel baseline: 2.5.14¶
This maintainer-run comparison tests the published Fullbleed 2.5.14 Linux wheel
against the independent IronPress corpus at commit
0d1e53b6d8174d0a5059a8696c24e62759381f6d. The corpus contains 1,662 HTML/CSS
fixtures and committed reference PDFs: 1,629 Chromium references and 33
WeasyPrint references. Each fixture identifies its reference renderer; this run uses those pinned PDFs rather than launching current browser
or WeasyPrint versions.
The full run completed with 1,616 PASS, 27 FAIL, and 19 REFERENCE-DISPUTED across 1,662 fixtures.
These are the retained 2.5.14 results. A later border-image fix is available in 2.5.15.
| Verdict | Fixtures |
|---|---|
| PASS | 1,616 |
| FAIL | 27 |
| REFERENCE-DISPUTED | 19 |
| Total | 1,662 |
The unchanged upstream gate failed (process exit 101). It records 27 failing fixtures. Its 799 gate entries also include changes relative to the committed IronPress baseline; several entries can refer to the same fixture. All reasons remain in the raw report.
The upstream gate also checks its committed IronPress raster baseline. A changed fingerprint can fail that regression check even when the fixture's visibility verdict is PASS. The run retains this gate result and its reasons alongside the fixture verdicts; the baseline is not rewritten for this comparison.
Read the verdicts¶
- PASS means the fixture meets the upstream visibility policy. It does not necessarily mean pixel-identical output. Raw differences remain in the report.
- FAIL means the candidate failed the comparator or a rendering check.
- REFERENCE-DISPUTED means a visible mismatch against a reference tagged as disputed by the upstream corpus. These verdicts are not counted as passes. The reference dispute does not establish that Fullbleed renders the case correctly.
The corpus marks 20 reference PDFs as disputed. In this run, 19 receive REFERENCE-DISPUTED verdicts and one receives PASS under the unchanged comparator. That PASS does not resolve the reference's standards dispute. The raw JSON retains both the verdict and reference metadata. The passing tagged case is interactions/interactions-cartesian-effects-x-paged-media.
The same Poppler pdftoppm 24.08.0 executable rasterizes both sides. The upstream
comparator compares the same coordinates without moving one image to fit the
other. Fixtures, reference PDFs, comparator source, and thresholds are unchanged;
the integration substitutes Fullbleed at the candidate-renderer boundary.
Of the 1,662 fixtures, 858 have identical candidate and reference page raster fingerprints. This compares raster dimensions and RGBA hashes, not PDF file bytes. The remaining cases retain their measured differences and individual verdicts in the report.
Inspect the evidence¶
Download the complete evidence (50.0 MiB) · Structured summary · SHA-256 checksums
Open ironpress-evidence/current/reports/index.html in the downloaded archive.
The unmodified upstream report retains IronPress headings and candidate labels;
its candidate is Fullbleed in this run. The archive includes candidate PDFs,
reference and candidate page images, difference images, and the raw JSON report.
The upstream MIT license and font notices are retained. Category pages initially show non-PASS cases; select show PASS to inspect passing fixtures too.
fullbleed-run.json identifies the wheel, runner, adapter, patch, dependency lock,
container image, and invocation. manifest.json records each exported file's
SHA-256. The wrapper verifies a complete, unique fixture inventory and checks
that the JSON, Markdown, and HTML identify the same invocation and JSON digest.
Example of a failing fixture¶
border-image-intrinsic-overlap-reset fails with a 4.30% above-floor page difference. The repeated border-image patterns differ visibly. These are unmodified page images from the retained report; open an image to inspect it at full size.
Image provenance and hashes | Upstream MIT license. All failing cases remain in the complete report.
Border-image follow-up in 2.5.15¶
Fullbleed 2.5.15 fixes the overlapping source slices in the fixture above.
In a complete corpus run of source commit 9ec4f71, before the version bump,
that fixture changed from FAIL to PASS: 1,617 PASS, 26 FAIL and 19
REFERENCE-DISPUTED. Its above-floor page difference fell from 4.30% to 0.24%.
The other 1,661 PDFs were byte-identical to the published 2.5.14 baseline;
there were no new failures or lost passes. The unchanged upstream gate still failed.
The source candidate's wheel reports 2.5.14; its commit and wheel hash distinguish
it from the published package. This is not a complete corpus run of the final
2.5.15 registry wheel. Fresh public Python and Rust installations passed 21 focused
border-image cases, with Rust's svg_raster feature enabled to match the Python
wheel. The original failing input also matched the reviewed source
pixels when the public 2.5.15 Python output was rendered with PDFium.
Inspect the source corpus comparison, download its full evidence, or read the release verification and reproduction instructions. The remaining failures are tracked publicly. The tables, failure list and images on this page retain the original 2.5.14 results.
Results by category¶
These are fixture counts within this corpus, not percentages of the CSS standard.
| Category | PASS | FAIL | Disputed |
|---|---|---|---|
| backgrounds-borders | 79 | 3 | 1 |
| backgrounds-gradients | 46 | 0 | 0 |
| block-box-model | 59 | 0 | 0 |
| clip-mask | 52 | 0 | 0 |
| color-opacity | 49 | 0 | 1 |
| effects | 57 | 2 | 1 |
| filters | 46 | 0 | 1 |
| flexbox | 132 | 0 | 0 |
| fonts-advanced | 25 | 1 | 0 |
| generated-content | 33 | 2 | 2 |
| grid | 95 | 1 | 0 |
| images-replaced | 38 | 0 | 0 |
| inline-text | 45 | 4 | 1 |
| interactions | 350 | 10 | 2 |
| lists-counters | 34 | 0 | 1 |
| multicol | 36 | 0 | 0 |
| overflow-clipping | 17 | 0 | 3 |
| paged-media | 82 | 2 | 3 |
| positioning | 22 | 0 | 0 |
| probes | 6 | 0 | 0 |
| selectors-cascade | 60 | 0 | 0 |
| tables | 97 | 1 | 1 |
| text-advanced | 47 | 0 | 2 |
| transforms | 44 | 0 | 0 |
| typography | 23 | 1 | 0 |
| units-values | 42 | 0 | 0 |
Failing fixtures¶
The raw report retains the diagnostics and images for every failing case.
backgrounds-borders/border-image-fill-axis-repeatbackgrounds-borders/border-image-intrinsic-overlap-resetbackgrounds-borders/border-image-round-horizontaleffects/r2-box-shadow-inset-blur-radiuseffects/r2-text-shadow-blur-rgbafonts-advanced/fonts-advanced-font-synthesis-nonegenerated-content/generated-content-counters-nestedgenerated-content/generated-content-no-open-quote-depthgrid/grid-display-contents-fragmentation-text-survivalinline-text/inline-text-decoration-subpoint-geometryinline-text/inline-text-text-decoration-line-throughinline-text/inline-text-text-decoration-overlineinline-text/inline-text-text-decoration-colorinteractions/interactions-grid-fragmentation-svg-background-single-ownerinteractions/interactions-cartesian-backgrounds-borders-x-effectsinteractions/interactions-cartesian-block-box-model-x-clip-maskinteractions/interactions-cartesian-clip-mask-x-clip-maskinteractions/interactions-cartesian-clip-mask-x-tablesinteractions/interactions-cartesian-effects-x-overflow-clippinginteractions/interactions-cartesian-effects-x-page-marginsinteractions/interactions-cartesian-filters-x-overflow-clippinginteractions/interactions-cartesian-filters-x-paged-mediainteractions/interactions-transforms-x-font-synthesis-matrixpaged-media/paged-footnote-counter-resetpaged-media/paged-string-set-attr-starttables/tables-cell-generated-before-childtypography/typography-font-weight-bold
Disputed references¶
These 19 REFERENCE-DISPUTED verdicts remain separate from the PASS count. The reference metadata is retained for every fixture, including the passing tagged case described above.
background-clip-text-gradientopacity-text-glyph-groupr2-mix-blend-mode-text-differencer2-filter-url-feturbulence-displacementgenerated-content-first-letter-dropcapgenerated-content-string-set-running-headerinline-text-text-decoration-wavyinteractions-cartesian-page-margins-x-paged-mediainteractions-cartesian-positioning-x-tableslists-counters-marker-side-match-parentoverflow-axis-visible-hidden-coercionoverflow-scroll-print-clipoverflow-x-y-separatefootnote-floatpaged-footnote-display-compactpaged-footnote-max-heighttables-colspan-max-clamptext-advanced-text-combine-upright-centertext-advanced-text-combine-upright-digits
Reproduce and evaluate your templates¶
Follow the pinned runner instructions to use the same corpus and adapter. The retained workflow run records the execution.
The corpus runner needs Git, Docker, and a compatible Linux wheel. Its container
and external rasterizer are test tools, not dependencies of pip install
fullbleed. Cargo dependencies are locked separately for the upstream comparator.
The actual container image is recorded; operating-system packages are not a
byte-identical environment lock.
A corpus result applies to its exact engine version, fixtures, fonts, references, and comparison policy. It does not establish support for all CSS, browser JavaScript, arbitrary web pages, accessibility standards, or PDF conformance. Test your own templates with representative data and explicit fonts.
See CSS coverage for documented behavior and boundaries, or the shared-document renderer comparison for PDFs and timings from three application-style documents. That comparison uses different versions and inputs; its results should not be combined with this corpus run.




