Skip to content

feat(templates): link SerifHeadline titles and keep its band columns off the rule - #620

Merged
DemchaAV merged 1 commit into
feature/template-promotionfrom
feat/serif-headline-project-links
Aug 31, 2026
Merged

DemchaAV merged 1 commit into
feature/template-promotionfrom
feat/serif-headline-project-links

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

Three things the rendered sheet showed once it existed.

A project card wants to point somewhere — a repository, a case study — and nothing in the model could say so. A band column's text ran into the hairline beside it, because the published sheet lets it: a line that happens to fill its column touches the rule. And the packaged marks come in two colours, which nothing said, so the example mixed a navy project mark with a gold one and the row read as a mistake.

What changed

  • CvEntry carries a link. A plain string, blank when absent, set through CvEntry.Builder.link(...). Every title SerifHeadline draws — a role, a project, a degree, an achievement — becomes a link when its entry carries one. The six-argument constructor is kept explicitly.
  • Band columns keep a gutter at their right edge, so the text stops short of the separator instead of running into it. The gutter matches GLYPH_CLEARANCE, the space the next column's mark already keeps on the other side, so the rule sits centred in white.
  • The class documentation names the two mark colours — cart and api in the design's navy, trophy, chart and rocket in its gold — so a document picks one deliberately. The example now keeps its projects band to one colour and links both cards.

Verification

Full reactor gate → BUILD SUCCESS; the serif and CV-data suites 21/21; examples suite 77/77 including CommittedAssetDriftTest with the re-rendered preview; javadoc:javadoc → BUILD SUCCESS.

This is the first place a promoted preset deliberately leaves the sheet it ports, so the departure is measured rather than described. Against the published template's own render, the fixture now differs by:

  • 6 of 235 nodes, all of them narrowed by the gutter — three card texts and their containers. Every other node is identical on path and geometry.
  • 8 191 of 2 173 720 pixels (0.38%), which is those three columns rewrapping.

Both baselines were re-recorded with the change and nothing else moved — the working tree after the approve run shows only this preset's two files.

The link costs nothing by comparison: it is an annotation rather than ink, so it moves no pixel and no layout node. That is also why neither gate can protect it, and a smoke case asserts the three targets directly.

Notes

  • The gutter is uniform across a band, including the last column, so the columns stay equal width. Making the last one wider would have bought a few points of measure at the cost of the thing the eye actually reads.
  • The link is drawn on every title rather than only on projects: a document that puts a URL on a role would otherwise lose it silently, which is the failure mode this campaign keeps finding.

Lane: canonical (templates.cv.data + templates.cv.presets + qa + examples) — no engine changes.

@DemchaAV
DemchaAV merged commit ff546e3 into feature/template-promotion Aug 31, 2026
12 checks passed
@DemchaAV
DemchaAV deleted the feat/serif-headline-project-links branch August 31, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant