From a587d5343f321320b69e663eaebf960436a66f33 Mon Sep 17 00:00:00 2001
From: DemchaAV
Date: Mon, 29 Jun 2026 11:50:14 +0100
Subject: [PATCH] feat(templates): pixel-port invoice/v2 ModernInvoice to the
cinematic look
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Retune BrandTheme.invoiceModern() to mirror BusinessTheme.modern() and
align ModernInvoice so it renders the exact builtins/InvoiceTemplateV2
appearance on the layered stack — verified pixel-identical (0% raster
diff) against the cinematic builtin.
- core.theme: Palette.invoiceModern() / Typography.invoiceModern() values
now match modern() (cream page, soft-tan panels, deep-teal title +
table header, gold accent, Helvetica 28 / 11 / 10).
- ModernInvoice: title + table header use a preset-local teal; hero
accent + status use gold; labels + footer read the theme. Line-item
cells inherit the DSL default table text to stay a pixel match for the
builtin (documented inline).
- example: render on the cream page background.
- InvoiceV2VisualParityTest + blessed baseline lock the look against drift.
- data.invoice package-info: note it now backs both the builtin and
invoice/v2.
---
.../invoice/v2/ModernInvoiceV2Example.java | 5 +-
.../templates/core/theme/BrandTheme.java | 11 +-
.../templates/core/theme/Palette.java | 24 ++--
.../templates/core/theme/Typography.java | 14 +--
.../templates/data/invoice/package-info.java | 4 +-
.../invoice/v2/presets/ModernInvoice.java | 57 ++++++---
.../v2/presets/InvoiceV2VisualParityTest.java | 119 ++++++++++++++++++
.../v2/presets/ModernInvoiceSmokeTest.java | 4 +-
.../modern_invoice-page-0.png | Bin 0 -> 81557 bytes
9 files changed, 196 insertions(+), 42 deletions(-)
create mode 100644 src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java
create mode 100644 src/test/resources/visual-baselines/invoice-v2-layered/modern_invoice-page-0.png
diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java
index b27f82d2f..b043d7772 100644
--- a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java
+++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java
@@ -4,6 +4,7 @@
import com.demcha.compose.document.api.DocumentPageSize;
import com.demcha.compose.document.api.DocumentSession;
import com.demcha.compose.document.templates.api.DocumentTemplate;
+import com.demcha.compose.document.templates.core.theme.BrandTheme;
import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec;
import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice;
import com.demcha.examples.support.ExampleDataFactory;
@@ -36,11 +37,13 @@ public static Path generate() throws Exception {
Path outputFile = ExampleOutputPaths.prepare(
"templates/invoice", "invoice-modern-v2.pdf");
InvoiceDocumentSpec spec = ExampleDataFactory.sampleInvoice();
- DocumentTemplate template = ModernInvoice.create();
+ BrandTheme theme = BrandTheme.invoiceModern();
+ DocumentTemplate template = ModernInvoice.create(theme);
float m = (float) ModernInvoice.RECOMMENDED_MARGIN;
try (DocumentSession document = GraphCompose.document(outputFile)
.pageSize(DocumentPageSize.A4)
+ .pageBackground(theme.palette().mainFill())
.margin(m, m, m, m)
.create()) {
template.compose(document, spec);
diff --git a/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java b/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java
index 0f20fd036..b16768358 100644
--- a/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java
+++ b/src/main/java/com/demcha/compose/document/templates/core/theme/BrandTheme.java
@@ -320,11 +320,12 @@ public static BrandTheme mintEditorial() {
}
/**
- * The "Modern Invoice" look — Helvetica, slate ink, a pale-blue
- * rounded hero panel with a blue accent strip, and light table
- * rules. The first layered invoice flavour: the invoice
- * presets read it exactly the way the CV presets read their own
- * flavours, so the two families share one theme model.
+ * The "Modern Invoice" look — Helvetica on a cream page, a soft-tan
+ * rounded hero panel with a gold accent strip, a deep-teal title and
+ * table header, and light table rules. Mirrors the cinematic business
+ * "modern" theme. The first layered invoice flavour: the
+ * invoice presets read it exactly the way the CV presets read their
+ * own flavours, so the two families share one theme model.
*
* @return a {@code BrandTheme} for the "Modern Invoice" look
*/
diff --git a/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java b/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java
index fd0ad864f..e2ab093fc 100644
--- a/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java
+++ b/src/main/java/com/demcha/compose/document/templates/core/theme/Palette.java
@@ -300,21 +300,23 @@ public static Palette mintEditorial() {
}
/**
- * Modern Invoice palette: slate body ink, grey metadata, light
- * table-border rules, and a pale-blue fill carried in the
- * {@code banner} slot for the invoice hero panel and table zebra
- * rows. The stronger accent blue used for the hero strip / status
- * is preset-local in {@code ModernInvoice} because no other v2
- * preset shares it today.
+ * Modern Invoice palette mirroring the cinematic business "modern"
+ * look: slate body ink, grey metadata, light table-border rules, a
+ * soft-tan fill in the {@code banner} slot (the hero panel + table
+ * zebra rows), and a cream {@code mainFill} used as both the page
+ * background and the table surface. The deep-teal title / table
+ * header and the gold hero accent are preset-local in
+ * {@code ModernInvoice} because the layered palette has no
+ * primary / accent slot.
*
* @return a {@code Palette} for the Modern Invoice flavour
*/
public static Palette invoiceModern() {
return new Palette(
- DocumentColor.rgb(33, 37, 41), // ink — slate body text
- DocumentColor.rgb(108, 117, 125), // muted — metadata
- DocumentColor.rgb(206, 212, 218), // rule — table borders / separators
- DocumentColor.rgb(232, 240, 254), // banner — pale-blue hero panel / zebra fill
- DocumentColor.WHITE); // mainFill — table surface
+ DocumentColor.rgb(34, 38, 50), // ink — body text (modern textPrimary)
+ DocumentColor.rgb(110, 110, 120), // muted — metadata (modern textMuted)
+ DocumentColor.rgb(212, 200, 178), // rule — table borders (modern rule)
+ DocumentColor.rgb(244, 238, 228), // banner — soft-tan hero panel / zebra (modern surfaceMuted)
+ DocumentColor.rgb(252, 248, 240)); // mainFill — cream surface + page background (modern surface)
}
}
diff --git a/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java b/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java
index b7d03ee29..d75580466 100644
--- a/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java
+++ b/src/main/java/com/demcha/compose/document/templates/core/theme/Typography.java
@@ -373,13 +373,13 @@ public static Typography mintEditorial() {
public static Typography invoiceModern() {
return new Typography(
FontName.HELVETICA_BOLD, FontName.HELVETICA,
- 22.0, // headline (invoice title)
- 9.0, // contact (unused by invoice; kept for the record shape)
- 9.5, // banner (FROM / BILL TO / column labels)
- 10.0, // entry title
- 9.5, // entry date
- 9.0, // entry subtitle (footer note)
- 9.5, // body (party blocks, table cells)
+ 28.0, // headline (invoice title — modern h1)
+ 10.0, // contact (unused by invoice; kept for the record shape)
+ 11.0, // banner (FROM / BILL TO / table header labels — modern body-bold)
+ 11.0, // entry title
+ 11.0, // entry date
+ 10.0, // entry subtitle (footer caption — modern caption)
+ 11.0, // body (party blocks, table cells — modern body)
1.3); // line spacing
}
}
diff --git a/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java b/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java
index 2238bc61a..f1be624f0 100644
--- a/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java
+++ b/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java
@@ -1,4 +1,6 @@
/**
- * Invoice document specs and supporting data records for canonical templates.
+ * Shared, render-neutral invoice document specs and supporting data
+ * records, consumed by both the cinematic builtin {@code InvoiceTemplateV2}
+ * and the layered {@code invoice.v2} presets.
*/
package com.demcha.compose.document.templates.data.invoice;
diff --git a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java b/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java
index 022a2550c..99442667b 100644
--- a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java
+++ b/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java
@@ -31,9 +31,11 @@
* {@link DocumentTemplate} whose {@code compose} sequences a hero panel,
* the FROM / BILL TO parties, the line-items table, and a notes /
* payment-terms footer. The visual intent is ported from the cinematic
- * {@code builtins.InvoiceTemplateV2}; this preset reads every colour,
- * font, size, and spacing value from the theme instead of a
- * {@code BusinessTheme}.
+ * {@code builtins.InvoiceTemplateV2}; the hero, party labels, table
+ * header, totals, and footer read their colours / fonts / sizes from the
+ * theme (replacing the {@code BusinessTheme} the builtin used). The
+ * line-item body cells intentionally inherit the DSL default table-cell
+ * text to stay a pixel match for the builtin — see {@code compose}.
*
* Why the parties render inline rather than through
* {@code core.identity.PartyIdentity}: an invoice carries two
@@ -64,13 +66,19 @@ public final class ModernInvoice {
private static final double TABLE_PADDING = 7.0;
/**
- * Strong accent blue for the hero accent strip and the status read
- * out. Preset-local because no other v2 preset shares it today; if a
- * second invoice preset reaches for it, promote it to a
- * {@link com.demcha.compose.document.templates.core.theme.Palette}
- * slot.
+ * Deep teal used for the invoice title and the line-items table header
+ * fill (the modern business primary). Preset-local — no other v2 preset
+ * shares it today; promote to a {@link
+ * com.demcha.compose.document.templates.core.theme.Palette} slot if a
+ * second invoice preset reaches for it.
*/
- private static final DocumentColor ACCENT = DocumentColor.rgb(41, 128, 185);
+ private static final DocumentColor PRIMARY = DocumentColor.rgb(20, 60, 75);
+
+ /**
+ * Gold accent for the hero accent strip and the status read-out (the
+ * modern business accent). Preset-local, same rationale as {@link #PRIMARY}.
+ */
+ private static final DocumentColor ACCENT = DocumentColor.rgb(196, 153, 76);
private ModernInvoice() {
}
@@ -115,21 +123,38 @@ public void compose(DocumentSession document, InvoiceDocumentSpec spec) {
Objects.requireNonNull(document, "document");
InvoiceData data = Objects.requireNonNull(spec, "spec").invoice();
- DocumentColor panelFill = theme.palette().banner();
+ DocumentColor panelFill = theme.palette().banner(); // soft tan
DocumentColor rule = theme.palette().rule();
- DocumentColor surface = theme.palette().mainFill();
+ DocumentColor surface = theme.palette().mainFill(); // cream
- DocumentTextStyle titleStyle = theme.headlineStyle();
- DocumentTextStyle labelStyle = theme.bannerStyle();
+ // Title + table header use the deep teal PRIMARY; FROM / BILL TO
+ // labels + body read from the theme; the footer note is a quiet
+ // caption. Mirrors the cinematic builtin's modern look.
+ DocumentTextStyle titleStyle = DocumentTextStyle.builder()
+ .fontName(theme.typography().headlineFont())
+ .size(theme.typography().sizeHeadline())
+ .decoration(DocumentTextDecoration.BOLD)
+ .color(PRIMARY)
+ .build();
+ DocumentTextStyle labelStyle = theme.bodyBoldStyle();
DocumentTextStyle bodyStyle = theme.bodyStyle();
+ DocumentTextStyle captionStyle = DocumentTextStyle.builder()
+ .fontName(theme.typography().bodyFont())
+ .size(theme.typography().sizeEntrySubtitle())
+ .color(theme.palette().muted())
+ .build();
+ // Line-item cells intentionally carry NO textStyle — they inherit
+ // the DSL default table-cell text, exactly as the cinematic builtin's
+ // defaultCellStyle does. That is what makes this a pixel-for-pixel
+ // match; do NOT add a textStyle here (it would break parity). The
+ // theme-driven surfaces are the hero, labels, header, totals, footer.
DocumentTableStyle bordered = DocumentTableStyle.builder()
.stroke(DocumentStroke.of(rule, 0.6))
.padding(DocumentInsets.of(TABLE_PADDING))
- .textStyle(bodyStyle)
.build();
DocumentTableStyle headerStyle = DocumentTableStyle.builder()
- .fillColor(theme.palette().ink())
+ .fillColor(PRIMARY)
.stroke(DocumentStroke.of(rule, 0.6))
.padding(DocumentInsets.of(TABLE_PADDING + 1))
.textStyle(DocumentTextStyle.builder()
@@ -261,7 +286,7 @@ public void compose(DocumentSession document, InvoiceDocumentSpec spec) {
.name("InvoiceV2ModernFooter")
.addParagraph(p -> p
.text(data.footerNote())
- .textStyle(theme.entrySubtitleStyle())
+ .textStyle(captionStyle)
.margin(new DocumentInsets(14, 0, 0, 0)))
.build();
}
diff --git a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java b/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java
new file mode 100644
index 000000000..61d6faa75
--- /dev/null
+++ b/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java
@@ -0,0 +1,119 @@
+package com.demcha.compose.document.templates.invoice.v2.presets;
+
+import com.demcha.compose.GraphCompose;
+import com.demcha.compose.document.api.DocumentPageSize;
+import com.demcha.compose.document.api.DocumentSession;
+import com.demcha.compose.document.templates.api.DocumentTemplate;
+import com.demcha.compose.document.templates.data.invoice.InvoiceData;
+import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec;
+import com.demcha.compose.testing.visual.PdfVisualRegression;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.nio.file.Path;
+import java.util.function.Supplier;
+import java.util.stream.Stream;
+
+/**
+ * Pixel-diff visual parity gate for the v2 layered invoice presets.
+ *
+ *
Each preset renders the same canonical {@link InvoiceDocumentSpec}
+ * on A4 at the preset's {@code RECOMMENDED_MARGIN}; the PDF is rasterised
+ * page-by-page and compared per-pixel against a checked-in baseline PNG.
+ * {@code ModernInvoice} reproduces the cinematic {@code InvoiceTemplateV2}
+ * look on a {@code BrandTheme}, so this gate locks that look against drift.
+ *
+ * Re-blessing baselines — after a deliberate visual
+ * change, re-run with {@code -Dgraphcompose.visual.approve=true} to
+ * overwrite the baselines, and commit the updated PNGs in the same change.
+ * Baselines live under
+ * {@code src/test/resources/visual-baselines/invoice-v2-layered/}.
+ */
+class InvoiceV2VisualParityTest {
+
+ private static final Path BASELINE_ROOT = Path.of(
+ "src", "test", "resources", "visual-baselines", "invoice-v2-layered");
+
+ // Mirrors CvV2VisualParityTest: Helvetica is the PDFBox built-in font
+ // with the widest cross-platform glyph/colour drift, so the budget is
+ // sized generously for Windows-recorded vs Linux-CI rendering.
+ private static final long PIXEL_DIFF_BUDGET = 50_000L;
+ private static final int PER_PIXEL_TOLERANCE = 8;
+
+ @ParameterizedTest(name = "{0}")
+ @MethodSource("presets")
+ void rendersWithinPixelDiffBudget(String slug,
+ double margin,
+ Supplier> factory)
+ throws Exception {
+ DocumentTemplate template = factory.get();
+ float m = (float) margin;
+ byte[] pdfBytes;
+ try (DocumentSession document = GraphCompose.document()
+ .pageSize(DocumentPageSize.A4)
+ .margin(m, m, m, m)
+ .create()) {
+ template.compose(document, canonicalInvoice());
+ pdfBytes = document.toPdfBytes();
+ }
+
+ PdfVisualRegression.standard()
+ .baselineRoot(BASELINE_ROOT)
+ .perPixelTolerance(PER_PIXEL_TOLERANCE)
+ .mismatchedPixelBudget(PIXEL_DIFF_BUDGET)
+ .assertMatchesBaseline(slug, pdfBytes);
+ }
+
+ private static Stream presets() {
+ return Stream.of(
+ Arguments.of("modern_invoice",
+ ModernInvoice.RECOMMENDED_MARGIN,
+ (Supplier>) ModernInvoice::create));
+ }
+
+ /**
+ * Canonical sample invoice — exercises the hero, both parties, a
+ * multi-row line-items table, subtotal / tax / total summary, and the
+ * notes / payment-terms footer. Kept inline so the test depends only
+ * on main + main-test code.
+ */
+ private static InvoiceDocumentSpec canonicalInvoice() {
+ return InvoiceDocumentSpec.from(InvoiceData.builder()
+ .title("Invoice")
+ .invoiceNumber("GC-2026-041")
+ .issueDate("02 Apr 2026")
+ .dueDate("16 Apr 2026")
+ .status("Pending")
+ .fromParty(from -> from
+ .name("GraphCompose Studio")
+ .addressLines("18 Layout Street", "London, UK", "EC1A 4GC")
+ .email("billing@graphcompose.dev")
+ .phone("+44 20 5555 1000")
+ .taxId("GB-99887766"))
+ .billToParty(to -> to
+ .name("Northwind Systems")
+ .addressLines("Attn: Finance Team", "410 Market Avenue", "Manchester, UK")
+ .email("ap@northwind.example")
+ .phone("+44 161 555 2200")
+ .taxId("NW-2026-01"))
+ .lineItem("Discovery workshop", "Stakeholder interviews",
+ "1", "GBP 1,450", "GBP 1,450")
+ .lineItem("Template architecture", "Reusable document flows",
+ "2", "GBP 980", "GBP 1,960")
+ .lineItem("Render QA", "Cross-platform pixel diffing",
+ "3", "GBP 320", "GBP 960")
+ .lineItem("Developer enablement", "Authoring docs + examples",
+ "1", "GBP 780", "GBP 780")
+ .summaryRow("Subtotal", "GBP 5,150")
+ .summaryRow("VAT (20%)", "GBP 1,030")
+ .totalRow("Total", "GBP 6,180")
+ .note("Please include the invoice number on your remittance advice.")
+ .note("All work was delivered as agreed during the April implementation window.")
+ .paymentTerm("Payment due within 14 calendar days.")
+ .paymentTerm("Bank transfer preferred; contact billing@graphcompose.dev for remittance details.")
+ .paymentTerm("Late payments may delay additional template customization work.")
+ .footerNote("Thank you for choosing GraphCompose for production document rendering.")
+ .build());
+ }
+}
diff --git a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java b/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java
index 86050e706..f02aafda0 100644
--- a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java
+++ b/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java
@@ -91,7 +91,9 @@ void rendersWithExplicitTheme() throws Exception {
@Test
void readsAnyTheme() throws Exception {
- // Proves the preset reads the theme rather than assuming invoiceModern() slots.
+ // Renders under a non-invoice theme without crashing: the hero, labels,
+ // header, totals, and footer follow the theme; the line-item body cells
+ // inherit the DSL default (as in the cinematic builtin).
render(ModernInvoice.create(BrandTheme.boxedClassic()), sampleSpec());
}
diff --git a/src/test/resources/visual-baselines/invoice-v2-layered/modern_invoice-page-0.png b/src/test/resources/visual-baselines/invoice-v2-layered/modern_invoice-page-0.png
new file mode 100644
index 0000000000000000000000000000000000000000..65ff32c5b34c18d23cf3aa86138278ae6e0c5af4
GIT binary patch
literal 81557
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≈<<3
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