Skip to content

Component preview: static Bootstrap and HTML export

Pre-release
Pre-release

Choose a tag to compare

@krflol krflol released this 16 Oct 16:42

Try the runnable guide ? Open the report PDF ? Browse the static HTML catalog

This experimental Python snapshot adds static Bootstrap 5.0.0 components and HTML export to the component authoring prototype. Cards own their sections, tables accept column definitions, grouped components derive child IDs, and forms pair labels with values. Components carry their CSS into a document once.

The kit covers the 23 Bootstrap component families plus layout, forms, content, helpers and checked utility classes. document.to_html(include_styles=True) produces HTML with collected CSS; False removes generated/inline styles while retaining content and class names. Nodes support the same calls for fragments. All Bootstrap behavior is static in both HTML and PDF; no Bootstrap JavaScript is included.

Try the preview

Download project.zip, extract it and open a terminal in fullbleed-bootstrap-preview. Use CPython 3.10+ and an isolated environment:

python -m venv .venv

Activate it with .venv\Scripts\Activate.ps1 on Windows PowerShell, or source .venv/bin/activate on macOS/Linux. Then run:

python -m pip install --force-reinstall -r requirements-preview.txt
python first_document.py
python examples/component_bootstrap/main.py --out output --catalog-pdfs

Open order.pdf, order.html and order.unstyled.html, then output/report.pdf and output/catalog.html. The source kit also generates 27 static specimen PDFs. All data is fictional.

The installer selects one of the 15 compatible prebuilt wheels attached here and checks its SHA-256 hash. Windows, macOS and Linux wheels do not need a Rust build. The explicit requirements-source.txt fallback requires Rust/Cargo and native build tools.

This snapshot retains package metadata version 2.5.26, but differs from PyPI 2.5.26 and the earlier component-preview-f88cced. Its exact source is 41a2cee2e96b085429d2b9518f4c7d7cfab99817; the source commit and hashes identify the preview. --force-reinstall replaces a same-version package inside your isolated environment. This prerelease does not replace the stable GitHub or PyPI release.

Evidence and scope

The documentation workflow passed all 40 jobs. Both Windows and Linux install the public pinned wheel and run the exact nine-file kit: 29 one-page PDFs and three guide blocks, including byte-identical HTML exports. The deployed guide and its visible PDF/HTML/ZIP links also pass desktop and mobile browser checks.

The build-only Release workflow and core CI validate this commit. PyPI publication is disabled. preview-wheels.json records distribution hashes and checks all 23 experimental source/type files plus the exact Bootstrap CSS in every wheel and source distribution. A Windows checkout issue found by CI was corrected by preserving the upstream stylesheet's bytes.

The native catalog checks 27 one-page specimens, an authored report, printed form values and selections, hidden panels, pagination fills, and an 80-row table with repeated headers. The downloadable starter adds a standalone order example and executable guide blocks. Browser checks cover static states and styled/unstyled HTML. These are bounded checks, not exhaustive Bootstrap CSS coverage, browser pixel parity, accessibility conformance or independent usability evidence.

Styled HTML embeds CSS, not fonts or images. Bootstrap CSS includes global reset rules; use an unstyled fragment when your host application already provides its stylesheet. HTML export does not create a PDF renderer, but still requires the installed Fullbleed distribution. PDF form controls are printed values, not fillable fields. Sass compilation and interactive Bootstrap behavior are outside this preview.

Read the API and styling guide, implementation review, and draft PR #85. The deeper nested-part forwarding contract, stable API promotion and other language surfaces remain open. Try adding a column, rebranding a card or changing an authored state, then share a small synthetic example in the design discussion.