Skip to content

fix(templates): put the Terracotta Rail contact rows on one axis - #625

Merged
DemchaAV merged 1 commit into
feature/template-promotionfrom
feat/terracotta-contact-rows
Aug 31, 2026
Merged

DemchaAV merged 1 commit into
feature/template-promotionfrom
feat/terracotta-contact-rows

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

The sidebar's contact block had one row that did not belong with the other three. The
published sheet writes a profile's whole URL out, which is long enough that it has to
be set smaller and started further in than the channels above it — so the link sits on
an axis of its own, and its width is whatever that particular profile happens to be
called. A different reader's URL gives a different block.

What

A link is now drawn as its own label with the address behind it. Stating
Link("LinkedIn", "https://linkedin.com/in/…") sets the word and links the URL, so
every contact row is one size, one mark width and one gap — the block is the same shape
for every document, and nothing about it depends on the length of a URL.

The link row's smaller type and its narrower gap are gone with it; LINK_SCALE was the
only reason either existed.

This is a deliberate departure from the sheet the preset ports, and it is exactly
measured: two of 154 layout nodes narrow — the contact block and the link row — 1 743
of 2 173 720 pixels change, and nothing moves vertically.
Both baselines were
re-recorded with it, and the CHANGELOG entry for the preset now describes the rows it
actually draws.

Tests

./mvnw -B -ntp clean verify -pl :graph-compose-core,:graph-compose-render-pdf,:graph-compose-render-docx,:graph-compose-render-pptx,:graph-compose-templates,:graph-compose-testing,:graph-compose-qa,:graph-compose-coverage -am — BUILD SUCCESS.

Two tests added to TerracottaRailSmokeTest (13 now), because neither gate can see this:

  • aLinkShowsItsLabelAndHidesItsAddress — the text layer carries the label and not the
    URL, while the annotation still carries the URL.
  • everyContactRowStartsOnTheSameAxis — the four rows are the same height in the layout
    snapshot; a row set smaller or nudged in would not be.

The existing link-target, snapshot and pixel gates pass on the re-recorded baselines.

The sidebar had one row that did not belong with the other three. The sheet
this preset ports writes a profile's whole URL out, which is long enough that
it has to be set smaller and started further in than the channels above it —
so the link sat on an axis of its own, and the block's width was whatever that
particular profile happened to be called.

A link is now drawn as its own label with the address behind it:
Link("LinkedIn", "https://linkedin.com/in/…") sets the word and links the URL.
Every contact row is one size, one mark width and one gap, so the block is the
same shape for every document. The link row's smaller type went with it —
LINK_SCALE was the only reason it existed.

The departure from the ported sheet is measured: two of 154 layout nodes
narrow, 1,743 of 2,173,720 pixels change, and nothing moves vertically. Both
baselines were re-recorded with it.

Neither gate can see a label swap, so the smoke test now asserts that the text
layer carries the label and not the URL while the annotation still carries the
URL, and that the four rows share one height.
@DemchaAV
DemchaAV merged commit 58dbe13 into feature/template-promotion Aug 31, 2026
12 checks passed
@DemchaAV
DemchaAV deleted the feat/terracotta-contact-rows branch August 31, 2026 13:17
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