From 96e5facf05ec70f51dc798546b05e2808458a8ce Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Wed, 27 May 2026 11:54:01 +0100 Subject: [PATCH] feat(cv-v2): migrate Engineering Resume preset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ports the legacy Engineering Resume CV preset onto the v2 layered architecture. The preset stays a thin orchestrator that uses theme tokens for body ink / muted / rule / profile-band fill and keeps the navy header, green accent and rail-text variants as preset-local fifth+ tokens (same pattern as NordicClean / EditorialBlue). Preset * CvTheme.engineeringResume() factory wires CvPalette.engineeringResume() (slate body ink, muted slate subtitles, pale teal-green rule, soft green profile-band fill), CvTypography.engineeringResume() (Barlow display + Lato body, 24.5/7.2/7.8/8.0/7.1/7.0/7.25, 1.08 line spacing), and CvSpacing.engineeringResume() (8pt page-flow, 2.5pt header accent rule, 4pt card corner). * Navy command header (top-rounded card with green-accent bottom strip): UPPERCASE Barlow name + subtitle line (uses identity.jobTitle() with a deterministic 'SECURE BACKEND SYSTEMS / DELIVERY LEADERSHIP' fallback) + right-aligned contact stack with cyan-green underlined links. * 2-column body (weights 0.76 / 1.64): - Navy skill rail (bottom-rounded, accent-top strip): Core Stack (skills key:value), Learning (education title / date), Details (additional rows). Rail body uses preset-local RAIL_TEXT/RAIL_DATE. - Main column: Profile card (pale green fill with green left accent), Leadership Experience (white cards with green left accent, role title / date header), Technical Evidence (compact white project cards with green context strip via ProjectLabel). * Preset-local body rendering avoids EntryRenderer's 2-column Row (the engine bans nested horizontal rows and every body card sits inside flow.addRow). Also includes a tiny TimelineMinimal cleanup: * StringBuilder.length() > 0 → !StringBuilder.isEmpty() (Java 15+ idiomatic). No behaviour change. Tests * CvV2VisualParityTest now exercises 13 presets (added engineering_resume); 13/13 pass at the existing 50k pixel-diff budget against the new visual-baselines/cv-v2-layered/engineering_resume-page-0.png baseline. * EngineeringResumeSmokeTest covers stable identity + default-factory and custom-theme render paths. --- .../cv/v2/CvEngineeringResumeExample.java | 50 ++ .../cv/v2/presets/EngineeringResume.java | 693 ++++++++++++++++++ .../cv/v2/presets/TimelineMinimal.java | 6 +- .../templates/cv/v2/theme/CvPalette.java | 17 + .../templates/cv/v2/theme/CvSpacing.java | 24 + .../templates/cv/v2/theme/CvTheme.java | 16 + .../templates/cv/v2/theme/CvTypography.java | 19 + .../cv/v2/presets/CvV2VisualParityTest.java | 5 +- .../presets/EngineeringResumeSmokeTest.java | 93 +++ .../engineering_resume-page-0.png | Bin 0 -> 92684 bytes 10 files changed, 919 insertions(+), 4 deletions(-) create mode 100644 examples/src/main/java/com/demcha/examples/templates/cv/v2/CvEngineeringResumeExample.java create mode 100644 src/main/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResume.java create mode 100644 src/test/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResumeSmokeTest.java create mode 100644 src/test/resources/visual-baselines/cv-v2-layered/engineering_resume-page-0.png diff --git a/examples/src/main/java/com/demcha/examples/templates/cv/v2/CvEngineeringResumeExample.java b/examples/src/main/java/com/demcha/examples/templates/cv/v2/CvEngineeringResumeExample.java new file mode 100644 index 00000000..4742fe4a --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/cv/v2/CvEngineeringResumeExample.java @@ -0,0 +1,50 @@ +package com.demcha.examples.templates.cv.v2; + +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.cv.v2.data.CvDocument; +import com.demcha.compose.document.templates.cv.v2.presets.EngineeringResume; +import com.demcha.examples.support.ExampleDataFactory; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the v2 Engineering Resume CV preset against the shared + * grouped skills sample data — full-width navy command header with + * UPPERCASE Barlow name, right-aligned contact stack with cyan-green + * underlined links, dark navy skill rail (Core Stack / Learning / + * Details) and white evidence cards for Leadership Experience and + * Technical Evidence on the right. + * + *

Output: + * {@code examples/target/generated-pdfs/templates/cv/cv-engineering-resume-v2.pdf}.

+ */ +public final class CvEngineeringResumeExample { + + private CvEngineeringResumeExample() { + } + + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/cv", "cv-engineering-resume-v2.pdf"); + CvDocument doc = ExampleDataFactory.sampleCvDocumentV2(); + DocumentTemplate template = EngineeringResume.create(); + + float m = (float) EngineeringResume.RECOMMENDED_MARGIN; + try (DocumentSession document = GraphCompose.document(outputFile) + .pageSize(DocumentPageSize.A4) + .margin(m, m, m, m) + .create()) { + template.compose(document, doc); + document.buildPdf(); + } + return outputFile; + } + + public static void main(String[] args) throws Exception { + System.out.println("Generated: " + generate()); + } +} diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResume.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResume.java new file mode 100644 index 00000000..5222019d --- /dev/null +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResume.java @@ -0,0 +1,693 @@ +package com.demcha.compose.document.templates.cv.v2.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentLinkOptions; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentCornerRadius; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.v2.components.CvTextStyles; +import com.demcha.compose.document.templates.cv.v2.components.MarkdownInline; +import com.demcha.compose.document.templates.cv.v2.components.ProjectLabel; +import com.demcha.compose.document.templates.cv.v2.components.SectionLookup; +import com.demcha.compose.document.templates.cv.v2.data.CvDocument; +import com.demcha.compose.document.templates.cv.v2.data.CvEntry; +import com.demcha.compose.document.templates.cv.v2.data.CvIdentity; +import com.demcha.compose.document.templates.cv.v2.data.CvLink; +import com.demcha.compose.document.templates.cv.v2.data.CvRow; +import com.demcha.compose.document.templates.cv.v2.data.CvSection; +import com.demcha.compose.document.templates.cv.v2.data.EntriesSection; +import com.demcha.compose.document.templates.cv.v2.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.v2.data.RowsSection; +import com.demcha.compose.document.templates.cv.v2.data.SkillGroup; +import com.demcha.compose.document.templates.cv.v2.data.SkillsSection; +import com.demcha.compose.document.templates.cv.v2.data.Slot; +import com.demcha.compose.document.templates.cv.v2.theme.CvTheme; + +import java.util.List; +import java.util.Locale; +import java.util.Objects; + +/** + * v2 port of the legacy "Engineering Resume" CV preset. + * + *

Senior engineering CV with a full-width navy command header + * (UPPERCASE name, subtitle line, right-aligned contact stack with + * cyan-green underlined links), a dark navy skill rail + * (Core Stack / Learning / Details with + * green accent labels), and white evidence cards for Leadership + * Experience plus Technical Evidence on the right.

+ * + *

The preset stays a thin orchestrator. Theme tokens cover body + * ink / muted / rule / profile-band fill; the navy header, brighter + * green accent, navy-rail text variants and the cyan-green contact + * link colour stay preset-local because no other v2 preset shares + * them today (same pattern as NordicClean / EditorialBlue).

+ * + *

Body rendering uses a preset-local dispatcher because the engine + * bans nested horizontal rows and every body card sits inside the + * page-level 2-column {@code flow.addRow}; entries are drawn as a + * single "title / date" header paragraph instead of the standard + * {@code EntryRenderer}'s 2-column Row.

+ */ +public final class EngineeringResume { + + /** Stable template identifier. */ + public static final String ID = "engineering-resume"; + + /** Human-readable display name. */ + public static final String DISPLAY_NAME = "Engineering Resume"; + + /** Recommended page margin (in points) — matches V1 TechLead. */ + public static final double RECOMMENDED_MARGIN = 20.0; + + /** V1 TechLead deep navy used for the command header + rail fill. */ + private static final DocumentColor NAVY = + DocumentColor.rgb(13, 32, 47); + + /** V1 TechLead lighter navy used for inside-rail rule lines. */ + private static final DocumentColor NAVY_SOFT = + DocumentColor.rgb(35, 56, 72); + + /** V1 TechLead green accent for headings, strips and link colour. */ + private static final DocumentColor GREEN = + DocumentColor.rgb(27, 145, 104); + + /** Body text colour for items rendered inside the navy rail. */ + private static final DocumentColor RAIL_TEXT = + DocumentColor.rgb(220, 231, 236); + + /** Secondary text colour (e.g. dates) inside the navy rail. */ + private static final DocumentColor RAIL_DATE = + DocumentColor.rgb(182, 201, 210); + + /** Subtitle colour used under the masthead name. */ + private static final DocumentColor SUBTITLE_COLOR = + DocumentColor.rgb(190, 209, 219); + + /** Contact metadata colour (right-aligned over the navy header). */ + private static final DocumentColor CONTACT_META = + DocumentColor.rgb(196, 211, 220); + + /** Contact-link colour (cyan-green underlined over the navy header). */ + private static final DocumentColor CONTACT_LINK = + DocumentColor.rgb(78, 207, 161); + + /** Fallback masthead subtitle when {@code identity.jobTitle()} is blank. */ + private static final String SUBTITLE_FALLBACK = + "SECURE BACKEND SYSTEMS / DELIVERY LEADERSHIP"; + + private static final List SUMMARY_KEYS = + List.of("summary", "professional summary", "profile"); + private static final List SKILL_KEYS = + List.of("technical skills", "skills"); + private static final List EDUCATION_KEYS = + List.of("education", "certifications"); + private static final List EXPERIENCE_KEYS = + List.of("experience", "professional experience", "employment", "work"); + private static final List PROJECT_KEYS = + List.of("projects", "project"); + private static final List ADDITIONAL_KEYS = + List.of("additional information", "additional"); + + private EngineeringResume() { + } + + /** + * Builds the preset with its Engineering Resume theme. + */ + public static DocumentTemplate create() { + return create(CvTheme.engineeringResume()); + } + + /** + * Builds the preset with a caller-supplied theme. + */ + public static DocumentTemplate create(CvTheme theme) { + Objects.requireNonNull(theme, "theme"); + return new Template(theme); + } + + private static final class Template implements DocumentTemplate { + + private final CvTheme theme; + + Template(CvTheme theme) { + this.theme = theme; + } + + @Override + public String id() { + return ID; + } + + @Override + public String displayName() { + return DISPLAY_NAME; + } + + @Override + public void compose(DocumentSession document, CvDocument doc) { + Objects.requireNonNull(document, "document"); + Objects.requireNonNull(doc, "doc"); + + List sections = doc.sectionsIn(Slot.MAIN); + PageFlowBuilder flow = document.dsl() + .pageFlow() + .name("CvV2EngineeringResumeRoot") + .spacing(theme.spacing().pageFlowSpacing()); + + addHeader(flow, doc.identity()); + addBody(flow, sections); + + flow.build(); + } + + // -- Header -------------------------------------------------------- + + private void addHeader(PageFlowBuilder flow, CvIdentity identity) { + flow.addSection("CvV2EngineeringResumeHeader", section -> section + .spacing(5) + .padding(new DocumentInsets(13, 15, 13, 15)) + .fillColor(NAVY) + .cornerRadius(DocumentCornerRadius.top( + theme.spacing().bannerCornerRadius())) + .accentBottom(GREEN, theme.spacing().accentRuleWidth()) + .addRow("CvV2EngineeringResumeHeaderRow", row -> row + .spacing(12) + .weights(1.15, 0.85) + .addSection("CvV2EngineeringResumeIdentity", + identityBlock -> addIdentityBlock( + identityBlock, identity)) + .addSection("CvV2EngineeringResumeContact", + contact -> addContactStack(contact, + identity)))); + } + + private void addIdentityBlock(SectionBuilder block, CvIdentity identity) { + block.padding(DocumentInsets.zero()) + .spacing(3) + .addParagraph(paragraph -> paragraph + .text(identity.name().full() + .toUpperCase(Locale.ROOT)) + .textStyle(nameStyle()) + .autoSize(theme.typography().sizeHeadline(), 19.0) + .margin(DocumentInsets.zero())) + .addParagraph(paragraph -> paragraph + .text(headerSubtitleText(identity)) + .textStyle(subtitleStyle()) + .margin(DocumentInsets.zero())); + } + + private void addContactStack(SectionBuilder section, CvIdentity identity) { + section.spacing(2).padding(DocumentInsets.zero()); + DocumentTextStyle meta = contactMetaStyle(); + DocumentTextStyle link = contactLinkStyle(); + for (ContactPart part : contactParts(identity)) { + section.addParagraph(paragraph -> paragraph + .text(part.text()) + .textStyle(part.linkOptions() == null ? meta : link) + .link(part.linkOptions()) + .align(TextAlign.RIGHT) + .margin(DocumentInsets.zero())); + } + } + + private static List contactParts(CvIdentity identity) { + if (identity == null) { + return List.of(); + } + java.util.List parts = new java.util.ArrayList<>(); + addPart(parts, identity.contact().address(), null); + addPart(parts, identity.contact().phone(), null); + String email = identity.contact().email(); + if (!email.isBlank()) { + addPart(parts, email, + new DocumentLinkOptions("mailto:" + email)); + } + for (CvLink link : identity.links()) { + addPart(parts, link.label(), link.url().isBlank() + ? null + : new DocumentLinkOptions(link.url().trim())); + } + return List.copyOf(parts); + } + + private static void addPart(java.util.List parts, + String text, + DocumentLinkOptions linkOptions) { + if (text != null && !text.isBlank()) { + parts.add(new ContactPart(text.trim(), linkOptions)); + } + } + + private static String headerSubtitleText(CvIdentity identity) { + if (identity == null) { + return SUBTITLE_FALLBACK; + } + String jobTitle = identity.jobTitle(); + if (jobTitle == null || jobTitle.isBlank()) { + return SUBTITLE_FALLBACK; + } + return MarkdownInline.plainText(jobTitle) + .toUpperCase(Locale.ROOT); + } + + // -- Body 2-column ------------------------------------------------- + + private void addBody(PageFlowBuilder flow, List sections) { + CvSection skills = SectionLookup.firstMatching(sections, SKILL_KEYS); + CvSection education = SectionLookup.firstMatching(sections, + EDUCATION_KEYS); + CvSection additional = SectionLookup.firstMatching(sections, + ADDITIONAL_KEYS); + CvSection summary = SectionLookup.firstMatching(sections, + SUMMARY_KEYS); + CvSection experience = SectionLookup.firstMatching(sections, + EXPERIENCE_KEYS); + CvSection projects = SectionLookup.firstMatching(sections, + PROJECT_KEYS); + + flow.addRow("CvV2EngineeringResumeBody", row -> row + .spacing(14) + .weights(0.76, 1.64) + .addSection("CvV2EngineeringResumeRail", rail -> { + rail.spacing(8) + .padding(new DocumentInsets(10, 10, 11, 10)) + .fillColor(NAVY) + .cornerRadius(DocumentCornerRadius.bottom( + theme.spacing().bannerCornerRadius())) + .accentTop(GREEN, 2.0); + addRailSkills(rail, skills); + addRailEducation(rail, education); + addRailAdditional(rail, additional); + }) + .addSection("CvV2EngineeringResumeMain", main -> { + main.spacing(8); + addProfile(main, summary); + addExperience(main, experience); + addProjects(main, projects); + })); + } + + // -- Rail modules --------------------------------------------------- + + private void addRailSkills(SectionBuilder parent, CvSection section) { + if (!hasContent(section) || !(section instanceof SkillsSection skills)) { + return; + } + parent.addSection("CvV2EngineeringResumeSkills", block -> { + addRailHeading(block, "Core Stack"); + List groups = skills.groups(); + for (int i = 0; i < Math.min(groups.size(), 7); i++) { + SkillGroup group = groups.get(i); + block.addParagraph(paragraph -> paragraph + .textStyle(railBodyStyle()) + .lineSpacing(1.0) + .margin(DocumentInsets.bottom(1.8)) + .rich(rich -> { + String category = group.category(); + if (!category.isBlank()) { + rich.style(category + ":", + railLabelStyle()); + rich.style(" " + + compactValues( + group.skillsInline(), 5), + railBodyStyle()); + } else { + rich.style( + compactValues(group.skillsInline(), + 6), + railBodyStyle()); + } + })); + } + }); + } + + private void addRailEducation(SectionBuilder parent, CvSection section) { + if (!hasContent(section) + || !(section instanceof EntriesSection entries)) { + return; + } + parent.addSection("CvV2EngineeringResumeEducation", block -> { + addRailHeading(block, "Learning"); + List list = entries.entries(); + for (int i = 0; i < Math.min(list.size(), 4); i++) { + CvEntry entry = list.get(i); + block.addParagraph(paragraph -> paragraph + .textStyle(railBodyStyle()) + .lineSpacing(1.0) + .margin(DocumentInsets.bottom(2.3)) + .rich(rich -> { + rich.style(entry.title(), railTitleStyle()); + if (!entry.date().isBlank()) { + rich.style(" / " + entry.date(), + railDateStyle()); + } + })); + } + }); + } + + private void addRailAdditional(SectionBuilder parent, CvSection section) { + if (!hasContent(section) + || !(section instanceof RowsSection rows)) { + return; + } + parent.addSection("CvV2EngineeringResumeAdditional", block -> { + addRailHeading(block, "Details"); + List list = rows.rows(); + for (int i = 0; i < Math.min(list.size(), 2); i++) { + CvRow row = list.get(i); + String text = row.label().isBlank() + ? row.body() + : (row.body().isBlank() + ? row.label() + : row.label() + ": " + row.body()); + String clean = MarkdownInline.plainText(text); + block.addParagraph(paragraph -> paragraph + .text(clean) + .textStyle(railBodyStyle()) + .lineSpacing(1.0) + .margin(DocumentInsets.bottom(1.8))); + } + }); + } + + // -- Main modules --------------------------------------------------- + + private void addProfile(SectionBuilder parent, CvSection section) { + if (!hasContent(section) + || !(section instanceof ParagraphSection summary)) { + return; + } + parent.addSection("CvV2EngineeringResumeProfile", card -> card + .spacing(4) + .padding(new DocumentInsets(8, 10, 8, 10)) + .fillColor(theme.palette().banner()) + .accentLeft(GREEN, 3.0) + .cornerRadius(DocumentCornerRadius.right( + theme.spacing().bannerCornerRadius())) + .addParagraph(paragraph -> paragraph + .text("ENGINEERING PROFILE") + .textStyle(profileHeadingStyle()) + .margin(DocumentInsets.zero())) + .addParagraph(paragraph -> paragraph + .text(MarkdownInline.plainText(summary.body())) + .textStyle(profileBodyStyle()) + .lineSpacing(1.2) + .margin(DocumentInsets.zero()))); + } + + private void addExperience(SectionBuilder parent, CvSection section) { + if (!hasContent(section) + || !(section instanceof EntriesSection entries)) { + return; + } + parent.addSection("CvV2EngineeringResumeExperience", block -> { + addMainHeading(block, "Leadership Experience"); + List list = entries.entries(); + for (int i = 0; i < Math.min(list.size(), 2); i++) { + CvEntry entry = list.get(i); + block.addSection("CvV2EngineeringResumeRoleCard", card -> { + card.spacing(3) + .padding(new DocumentInsets(6, 8, 6, 8)) + .fillColor(DocumentColor.WHITE) + .stroke(DocumentStroke.of(theme.palette().rule(), + 0.35)) + .cornerRadius(DocumentCornerRadius.right(3)) + .accentLeft(GREEN, 2.0); + addRoleHeader(card, entry); + if (!entry.subtitle().isBlank()) { + card.addParagraph(paragraph -> paragraph + .text(MarkdownInline.plainText( + entry.subtitle())) + .textStyle(subtitleBodyStyle()) + .margin(DocumentInsets.zero())); + } + if (!entry.body().isBlank()) { + card.addParagraph(paragraph -> paragraph + .text(MarkdownInline.plainText(entry.body())) + .textStyle(roleBodyStyle()) + .lineSpacing(1.08) + .margin(DocumentInsets.zero())); + } + }); + } + }); + } + + private void addProjects(SectionBuilder parent, CvSection section) { + if (!hasContent(section) + || !(section instanceof RowsSection rows)) { + return; + } + parent.addSection("CvV2EngineeringResumeProjects", block -> { + addMainHeading(block, "Technical Evidence"); + List list = rows.rows(); + for (int i = 0; i < Math.min(list.size(), 4); i++) { + CvRow row = list.get(i); + ProjectLabel label = ProjectLabel.parse(row.label()); + String body = MarkdownInline.plainText(row.body()); + block.addSection("CvV2EngineeringResumeProjectCard", card -> card + .spacing(3) + .padding(new DocumentInsets(5, 8, 5, 8)) + .fillColor(DocumentColor.WHITE) + .stroke(DocumentStroke.of(theme.palette().rule(), 0.3)) + .cornerRadius(3) + .addParagraph(paragraph -> paragraph + .textStyle(projectBodyStyle()) + .lineSpacing(1.06) + .margin(DocumentInsets.zero()) + .rich(rich -> { + rich.style(label.title(), + projectTitleStyle()); + if (!label.stack().isBlank()) { + rich.style(" (" + label.stack() + + ")", + projectContextStyle()); + } + if (!body.isBlank()) { + rich.style(" - " + body, + projectBodyStyle()); + } + }))); + } + }); + } + + // -- Headings ------------------------------------------------------- + + private void addRailHeading(SectionBuilder section, String title) { + section.spacing(3) + .addParagraph(paragraph -> paragraph + .text(title.toUpperCase(Locale.ROOT)) + .textStyle(railHeadingStyle()) + .margin(DocumentInsets.zero())) + .addLine(line -> line + .horizontal(82) + .color(NAVY_SOFT) + .thickness(0.8) + .margin(DocumentInsets.bottom(2))); + } + + private void addMainHeading(SectionBuilder section, String title) { + section.spacing(5) + .addParagraph(paragraph -> paragraph + .text(title.toUpperCase(Locale.ROOT)) + .textStyle(mainHeadingStyle()) + .margin(DocumentInsets.zero())) + .addLine(line -> line + .horizontal(176) + .color(GREEN) + .thickness(1.0) + .margin(DocumentInsets.bottom(1))); + } + + private void addRoleHeader(SectionBuilder card, CvEntry entry) { + card.addParagraph(paragraph -> paragraph + .textStyle(roleTitleStyle()) + .margin(DocumentInsets.zero()) + .rich(rich -> { + rich.style(entry.title(), roleTitleStyle()); + if (!entry.date().isBlank()) { + rich.style(" / " + entry.date(), + roleDateStyle()); + } + })); + } + + // -- Style factories ------------------------------------------------ + + private DocumentTextStyle nameStyle() { + return CvTextStyles.of(theme.typography().headlineFont(), + theme.typography().sizeHeadline(), + DocumentTextDecoration.BOLD, + DocumentColor.WHITE); + } + + private DocumentTextStyle subtitleStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 7.6, + DocumentTextDecoration.BOLD, + SUBTITLE_COLOR); + } + + private DocumentTextStyle contactMetaStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeContact(), + DocumentTextDecoration.DEFAULT, + CONTACT_META); + } + + private DocumentTextStyle contactLinkStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeContact(), + DocumentTextDecoration.UNDERLINE, + CONTACT_LINK); + } + + private DocumentTextStyle railHeadingStyle() { + return CvTextStyles.of(theme.typography().headlineFont(), + 7.4, + DocumentTextDecoration.BOLD, + GREEN); + } + + private DocumentTextStyle railBodyStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 6.95, + DocumentTextDecoration.DEFAULT, + RAIL_TEXT); + } + + private DocumentTextStyle railLabelStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 6.95, + DocumentTextDecoration.BOLD, + GREEN); + } + + private DocumentTextStyle railTitleStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 6.95, + DocumentTextDecoration.BOLD, + DocumentColor.WHITE); + } + + private DocumentTextStyle railDateStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 6.7, + DocumentTextDecoration.DEFAULT, + RAIL_DATE); + } + + private DocumentTextStyle mainHeadingStyle() { + return CvTextStyles.of(theme.typography().headlineFont(), + theme.typography().sizeBanner(), + DocumentTextDecoration.BOLD, + GREEN); + } + + private DocumentTextStyle profileHeadingStyle() { + return CvTextStyles.of(theme.typography().headlineFont(), + 8.0, + DocumentTextDecoration.BOLD, + GREEN); + } + + private DocumentTextStyle profileBodyStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 7.75, + DocumentTextDecoration.DEFAULT, + theme.palette().ink()); + } + + private DocumentTextStyle roleTitleStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeEntryTitle(), + DocumentTextDecoration.BOLD, + theme.palette().ink()); + } + + private DocumentTextStyle roleDateStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeEntryDate(), + DocumentTextDecoration.BOLD, + GREEN); + } + + private DocumentTextStyle subtitleBodyStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeEntrySubtitle(), + DocumentTextDecoration.DEFAULT, + theme.palette().muted()); + } + + private DocumentTextStyle roleBodyStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + theme.typography().sizeBody(), + DocumentTextDecoration.DEFAULT, + theme.palette().ink()); + } + + private DocumentTextStyle projectTitleStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 7.35, + DocumentTextDecoration.BOLD, + theme.palette().ink()); + } + + private DocumentTextStyle projectContextStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 6.85, + DocumentTextDecoration.DEFAULT, + GREEN); + } + + private DocumentTextStyle projectBodyStyle() { + return CvTextStyles.of(theme.typography().bodyFont(), + 7.1, + DocumentTextDecoration.DEFAULT, + theme.palette().ink()); + } + } + + // -- Static helpers ---------------------------------------------------- + + private static boolean hasContent(CvSection section) { + return section != null && SectionLookup.hasContent(section); + } + + private static String compactValues(String value, int maxItems) { + String clean = MarkdownInline.plainText(value); + String[] tokens = clean.split(","); + StringBuilder builder = new StringBuilder(); + int count = 0; + for (String token : tokens) { + String trimmed = token.trim(); + if (trimmed.isBlank()) { + continue; + } + if (count > 0) { + builder.append(", "); + } + builder.append(trimmed); + count++; + if (count == maxItems) { + break; + } + } + return builder.toString(); + } + + private record ContactPart(String text, DocumentLinkOptions linkOptions) { + } +} diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/TimelineMinimal.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/TimelineMinimal.java index 00bf835b..571a1121 100644 --- a/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/TimelineMinimal.java +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/presets/TimelineMinimal.java @@ -509,18 +509,18 @@ private static List sectionLines(CvSection section) { line.append(header); } if (!subtitle.isBlank()) { - if (line.length() > 0) { + if (!line.isEmpty()) { line.append(" | "); } line.append(subtitle); } if (!dates.isBlank()) { - if (line.length() > 0) { + if (!line.isEmpty()) { line.append(" - "); } line.append(dates); } - if (line.length() > 0) { + if (!line.isEmpty()) { lines.add(line.toString()); } if (!body.isBlank()) { diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvPalette.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvPalette.java index ae51315c..d60c55f1 100644 --- a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvPalette.java +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvPalette.java @@ -123,6 +123,23 @@ public static CvPalette editorialBlue() { DocumentColor.rgb(193, 201, 211)); } + /** + * Engineering Resume palette ported from the v1 + * {@code TechLeadCvTemplateComposer}: body-slate ink, muted slate + * for subtitles, pale teal-green rule that matches the white + * evidence cards, and the soft pale-green profile band fill. Deep + * navy header, brighter green accent, navy-rail variants and the + * cyan-green contact link colour stay preset-local as they are the + * fifth+ tokens — no other v2 preset shares them today. + */ + public static CvPalette engineeringResume() { + return new CvPalette( + DocumentColor.rgb(32, 42, 55), // ink — V1 INK body slate + DocumentColor.rgb(91, 105, 119), // muted — V1 MUTED subtitles + DocumentColor.rgb(190, 212, 204), // rule — V1 RULE pale teal-green + DocumentColor.rgb(232, 246, 239)); // banner — V1 GREEN_SOFT profile fill + } + /** * Timeline Minimal palette: an all-grey scale ported from the v1 * {@code TimelineMinimalCvTemplateComposer} — medium-grey ink, diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvSpacing.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvSpacing.java index 73e237bc..ca44a98e 100644 --- a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvSpacing.java +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvSpacing.java @@ -279,6 +279,30 @@ public static CvSpacing editorialBlue() { 3.0); // entrySeparation } + /** + * Spacing for the Engineering Resume preset: navy command header + * + 2-column body (navy skill rail / white evidence cards), with + * a 2.5pt accent rule under the header and tight 1pt paragraph + * top so the dense rail + card content reads as a single page. + */ + public static CvSpacing engineeringResume() { + return new CvSpacing( + 8, // pageFlowSpacing + 4, // sectionBodySpacing + DocumentInsets.zero(), // sectionBodyPadding + DocumentInsets.zero(), // headlinePadding + DocumentInsets.zero(), // contactPadding + 4.0, // bannerCornerRadius (card top/bottom radius) + 10.0, // bannerInnerPadding (card padding token) + DocumentInsets.zero(), // bannerMargin + 2.5, // accentRuleWidth (header bottom accent strip) + 1.0, // paragraphMarginTop + 8.0, // entryHeaderRowSpacing + 1.0, // entryTitleWeight + 0.45, // entryDateWeight + 2.0); // entrySeparation + } + /** * Spacing for the Timeline Minimal preset: tight 3-column layout * with a fixed-width axis between the sidebar and main column. diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTheme.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTheme.java index 6387c883..81649c11 100644 --- a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTheme.java +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTheme.java @@ -167,6 +167,22 @@ public static CvTheme editorialBlue() { CvDecoration.classic()); } + /** + * The "Engineering Resume" look — Barlow display + Lato body, deep + * navy command header with cyan-green contact links, dark navy + * skill rail with green accent labels, and white evidence cards + * for Leadership Experience + Technical Evidence on the right. + * Visual signature ported from the v1 + * {@code TechLeadCvTemplateComposer}. + */ + public static CvTheme engineeringResume() { + return new CvTheme( + CvPalette.engineeringResume(), + CvTypography.engineeringResume(), + CvSpacing.engineeringResume(), + CvDecoration.classic()); + } + /** * The "Timeline Minimal" look — Barlow Condensed display + Lato * body, all-grey palette, spaced uppercase name, right-aligned diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTypography.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTypography.java index 0eac04e4..a35cc4ce 100644 --- a/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTypography.java +++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/theme/CvTypography.java @@ -191,6 +191,25 @@ public static CvTypography editorialBlue() { 1.45); // line spacing } + /** + * Barlow headline + Lato body scale ported from the v1 + * {@code TechLeadCvTemplateComposer}: 24.5pt UPPERCASE masthead, + * 7.8pt main section headings, 7.25pt body, and a 1.08 line + * spacing tuned for dense engineering-resume cards. + */ + public static CvTypography engineeringResume() { + return new CvTypography( + FontName.BARLOW, FontName.LATO, + 24.5, // headline (UPPERCASE name in navy header) + 7.2, // contact (right-aligned navy header stack) + 7.8, // banner / main section heading + 8.0, // entry title (role title in experience cards) + 7.1, // entry date + 7.0, // entry subtitle (employer) + 7.25, // body + 1.08); // line spacing + } + /** * Barlow Condensed headline + Lato body scale ported from the v1 * {@code TimelineMinimalCvTemplateComposer}: 28pt spaced-caps diff --git a/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/CvV2VisualParityTest.java b/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/CvV2VisualParityTest.java index 7cc67424..d761360a 100644 --- a/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/CvV2VisualParityTest.java +++ b/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/CvV2VisualParityTest.java @@ -120,7 +120,10 @@ private static Stream presets() { (Supplier>) Panel::create), Arguments.of("timeline_minimal", TimelineMinimal.RECOMMENDED_MARGIN, - (Supplier>) TimelineMinimal::create)); + (Supplier>) TimelineMinimal::create), + Arguments.of("engineering_resume", + EngineeringResume.RECOMMENDED_MARGIN, + (Supplier>) EngineeringResume::create)); } /** diff --git a/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResumeSmokeTest.java b/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResumeSmokeTest.java new file mode 100644 index 00000000..ca181216 --- /dev/null +++ b/src/test/java/com/demcha/compose/document/templates/cv/v2/presets/EngineeringResumeSmokeTest.java @@ -0,0 +1,93 @@ +package com.demcha.compose.document.templates.cv.v2.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.cv.v2.data.CvDocument; +import com.demcha.compose.document.templates.cv.v2.data.CvIdentity; +import com.demcha.compose.document.templates.cv.v2.data.EntriesSection; +import com.demcha.compose.document.templates.cv.v2.data.ParagraphSection; +import com.demcha.compose.document.templates.cv.v2.data.RowStyle; +import com.demcha.compose.document.templates.cv.v2.data.RowsSection; +import com.demcha.compose.document.templates.cv.v2.data.SkillsSection; +import com.demcha.compose.document.templates.cv.v2.theme.CvTheme; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Smoke test for the v2 Engineering Resume preset. Covers the navy + * command header with subtitle + contact stack, plus the 2-column + * rail / main-card composition fed through + * {@link com.demcha.compose.document.templates.cv.v2.components.SectionLookup}. + */ +class EngineeringResumeSmokeTest { + + @Test + void exposes_stable_identity() { + DocumentTemplate template = EngineeringResume.create(); + assertThat(template.id()).isEqualTo("engineering-resume"); + assertThat(template.displayName()).isEqualTo("Engineering Resume"); + } + + @Test + void default_factory_renders_full_document() throws Exception { + renderAndAssertNonEmpty(EngineeringResume.create(), fullDocument()); + } + + @Test + void custom_theme_factory_renders() throws Exception { + renderAndAssertNonEmpty(EngineeringResume.create(CvTheme.engineeringResume()), + fullDocument()); + } + + private static void renderAndAssertNonEmpty( + DocumentTemplate template, + CvDocument doc) throws Exception { + try (DocumentSession session = GraphCompose.document() + .pageSize(420, 595) + .margin(DocumentInsets.of(20)) + .create()) { + template.compose(session, doc); + assertThat(session.roots()).isNotEmpty(); + } + } + + private static CvDocument fullDocument() { + return CvDocument.builder() + .identity(CvIdentity.builder() + .name("Jane", "Doe") + .jobTitle("Senior Platform Engineer") + .contact("+44 0", "j@d.com", "London") + .link("LinkedIn", "https://linkedin.com/in/jane-doe") + .link("GitHub", "https://github.com/jane") + .build()) + .sections( + new ParagraphSection("Professional Summary", + "Builds **reliable** document pipelines."), + SkillsSection.builder("Technical Skills") + .group("Languages", "Java 21", "Kotlin") + .group("Testing", "JUnit 5", "AssertJ") + .build(), + EntriesSection.builder("Education & Certifications") + .entry("MSc Computer Science", + "University of Manchester", + "2019-2021", + "Distinction.") + .build(), + RowsSection.builder("Projects", RowStyle.BULLETED_STACKED) + .row("GraphCompose (Java, PDFBox)", + "Declarative PDF layout engine.") + .build(), + EntriesSection.builder("Professional Experience") + .entry("Senior Platform Engineer", "Acme", + "2021-2024", + "Built rendering services.") + .build(), + RowsSection.builder("Additional Information", RowStyle.PLAIN) + .row("Languages", "English, German") + .build()) + .build(); + } +} diff --git a/src/test/resources/visual-baselines/cv-v2-layered/engineering_resume-page-0.png b/src/test/resources/visual-baselines/cv-v2-layered/engineering_resume-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..eecfc9661636f3f16fda86381e499de82c0796f5 GIT binary patch literal 92684 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�+)V2S)bJpY#aZ;~q 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 literal 0 HcmV?d00001