feat(templates): add the CharcoalGold photographic CV preset - #621
Merged
DemchaAV merged 1 commit intoAug 31, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The fourth CV bundle in the queue, and the first one the model was already ready for. It is the richest sheet so far — a charcoal sidebar with a ringed photograph, rated skills and languages, beside a paper column with a two-tone name, a dated experience rail, a pair of credential columns and a closing tools strip — and it needed no model change at all.
That is the payoff from the two adds this campaign made earlier: the portrait from #614, and the location, mark and link from #618 and #620. Every field this design carries had somewhere to go.
What changed
cv/presets/CharcoalGold— aDocumentTemplate<CvDocument>viacreate(), split for the 500-LOC rule into package-privateCharcoalGoldStyles,CharcoalGoldWidgets,CharcoalGoldAside,CharcoalGoldMain,CharcoalGoldCredentials,CharcoalGoldTextandCharcoalGoldIcons.gap(pitch, size)subtracting the line box the type already fills. That is how the design was drawn, and setting the pitches as margins directly would have spaced every block too far apart.templates/cv/charcoal-gold/icons/.CvFixturePortrait— the drawn silhouette the CV fixtures share, extracted fromNavySidebarFixturesso the second preset that needs a photograph does not copy the Java2D.Verification
Full reactor gate (the eight CI modules) → BUILD SUCCESS; the charcoal qa suite 13/13; examples suite 77/77 including
CommittedAssetDriftTestwith the new preview;javadoc:javadoc→ BUILD SUCCESS with no warning naming a new file.Port parity, verified against the published template itself: the preset fed the template's own fixture is pixel-identical to the standalone render — 0 / 2,173,720 differing pixels — and the layout snapshot matches node for node: 248 of 248, same paths, same names, largest geometry delta 0.001pt.
This bundle is also the first with no engine drift at all: its render on the pinned 2.2.1 and on this branch are identical to the last pixel, so the approved preview is itself the parity target rather than a render that differs by the ligature fix.
Navy's snapshot and pixel baseline pass unchanged after the fixture-portrait extraction, which is the proof that refactor moved nothing.
Notes
AtomicNodeTooLargeExceptionrather than flowing or dropping entries — the same contract the three siblings landed with, documented on the class, inusing-templates.md, and pinned by a test.int.CvName— nothing else could tell it where to change colour.Lane: canonical (templates.cv.presets + qa + examples) — no engine changes, no model changes.