
A report with a point of view.
Editorial type, vector illustration, gradient charts, and clear allocations.
diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..ec12c43 --- /dev/null +++ b/website/README.md @@ -0,0 +1,29 @@ +# Main website source + +`squarespace-home.html` is the maintained HTML code block for +[www.fullbleed.dev](https://www.fullbleed.dev/). Squarespace owns the surrounding +navigation, footer and page metadata. This directory is not deployed by MkDocs. + +The homepage leads with component authoring, includes a runnable stable Python +example, and links to the component alpha notebook, paired Northstar/Common +Ground sources, and the accessible showcase with its retained validation reports. +The alpha is explicitly labeled; an ordinary install still selects the stable API. + +`homepage-example.py` is the exact copyable example. With Python 3.10–3.14: + +```sh +python -m pip install fullbleed +python website/homepage-example.py +``` + +It writes `order.pdf` in the current directory and registers the bundled Inter +font explicitly. The example was verified with the published 2.5.31 wheel: +one page, the expected text, embedded fonts, and identical PDF bytes on repeat +rendering. It does not claim PDF/UA conformance. + +To update Squarespace, back up the current homepage code block and global code +injection, review the candidate in the existing public page shell, and replace +only the homepage block. Verify the saved page anonymously at desktop and mobile +widths, including real clipboard contents and linked PDF downloads. Do not paste +this block into global code injection. Keep the copyable example synchronized +with `homepage-example.py`. diff --git a/website/homepage-example.py b/website/homepage-example.py new file mode 100644 index 0000000..d86af1b --- /dev/null +++ b/website/homepage-example.py @@ -0,0 +1,22 @@ +from importlib.resources import files +from pathlib import Path +import fullbleed +from fullbleed.ui import Document, Heading, Paragraph, Stack, Strong + +@Document(title="Order summary", styles={ + "@page": {"size": "A4", "margin": "18mm"}, + "body": {"font_family": "Inter", "color": "#18372e"}, + "h1": {"font_size": "32pt", "margin": 0}, + "p": {"margin": 0}, +}) +def OrderSummary(customer): + return Stack( + Heading("Made for you", level=1), + Paragraph("Prepared for ", Strong(customer)), + gap="12pt", + ) + +font = files("fullbleed_assets").joinpath("fonts/Inter-Variable.ttf") +engine = fullbleed.PdfEngine(font_files=[str(font)]) +order = OrderSummary("Moss & Fern") +Path("order.pdf").write_bytes(order.render_pdf(engine)) diff --git a/website/squarespace-home.html b/website/squarespace-home.html new file mode 100644 index 0000000..3ed67ae --- /dev/null +++ b/website/squarespace-home.html @@ -0,0 +1,193 @@ + +
Components + HTML/CSS → PDF
Invoices, statements, and reports.
Compose with Python, JavaScript, or C# components. Bring your own HTML/CSS, too.
pip install fullbleedPython 3.10–3.14 · MIT licensed · Explore the PDFs & source ↓

Static HTML/CSS, pagination, and typography. A dedicated engine for print documents.
Pin your engine, inputs, assets, and metadata. Compare the resulting PDF bytes.
Open source under MIT. Free for personal projects and commercial applications.
01 / The authoring
Write a function. Pass it data. Compose headings, rich text, and layouts with ordinary Python. Styles belong to your document; fonts are bundled with the engine.
+This example uses the stable Python API and the install command above. Reuse OrderSummary for each customer.
from importlib.resources import files
+from pathlib import Path
+import fullbleed
+from fullbleed.ui import Document, Heading, Paragraph, Stack, Strong
+
+@Document(title="Order summary", styles={
+ "@page": {"size": "A4", "margin": "18mm"},
+ "body": {"font_family": "Inter", "color": "#18372e"},
+ "h1": {"font_size": "32pt", "margin": 0},
+ "p": {"margin": 0},
+})
+def OrderSummary(customer):
+ return Stack(
+ Heading("Made for you", level=1),
+ Paragraph("Prepared for ", Strong(customer)),
+ gap="12pt",
+ )
+
+font = files("fullbleed_assets").joinpath("fonts/Inter-Variable.ttf")
+engine = fullbleed.PdfEngine(font_files=[str(font)])
+order = OrderSummary("Moss & Fern")
+Path("order.pdf").write_bytes(order.render_pdf(engine))02 / The output
Northstar and Common Ground: one design, two authoring paths. Compare the Python components and HTML/CSS, with matching-output checks on the pinned 2.6.0a5 alpha. Explore both sources ↗
+
Editorial type, vector illustration, gradient charts, and clear allocations.

Headings, image descriptions, and table headers. A two-page component guide with PDF/UA-1 validation evidence.

One compiled layout. Three member records. Balances, charts, and a distinct identity.
03 / Choose your stack
Reusable components or existing HTML/CSS.
Choose the integration that fits your application.
Native API + CLI
Function components, reusable styles, and batch documents, with bundled fonts and inspection tools.
Build with Python components Python quickstart FastAPI, Flask & DjangoWeb Worker SDK
Generate PDFs and PNG previews in your user's browser. Author with JavaScript components or your existing HTML/CSS templates.
JavaScript & JSX components Start with the browser SDK Try the editable demoForms + automatic previews
Connect a form to a live PDF preview. Edit the templates and reuse a React hook or Vue composable in your app.
Get the React starter Get the Vue starterWebAssembly package
Compose documents with JavaScript, TypeScript, or JSX. Render PDF bytes and PNG previews in Node.js 22+.
Node.js quickstart Get the Next.js starterNative .NET bindings
Compose with typed components, LINQ children, and immutable styles. Render PDFs and previews on Windows, Linux, and macOS.
Build with C# components .NET quickstart Get the ASP.NET Core starter Create tagged PDFs in C#Native library
Embed the print engine directly in a Rust application. Start with a runnable example.
Rust quickstart04 / Beyond hello world
Serve PDF bytes from FastAPI, Flask, or Django with runnable examples.
Build an invoice endpoint ↗Use fixed or reflow bindings for variable-data documents and statement batches.
Explore variable data ↗Preview finalized PDFs and retain structured diagnostics alongside the output.
Render, preview, inspect ↗A dedicated print engine with documented CSS support and explicit validation workflows.
Supported CSS & known gaps ↗05 / Fullbleed Commerce · Preview
Give order summaries and packing slips the same care as your storefront. Start with a designed template, edit visually or paste HTML/CSS, and preview the actual PDF.
+The free preview is available now. Automation is for staging and development stores; paid plans and marketplace listings are not live.

Edit a designed example. Download your PDF. No account needed.