fix(templates): put the Terracotta Rail contact rows on one axis - #625
Merged
DemchaAV merged 1 commit intoAug 31, 2026
Merged
Conversation
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.
This was referenced Aug 31, 2026
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 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, soevery 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_SCALEwas theonly 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 theURL, while the annotation still carries the URL.
everyContactRowStartsOnTheSameAxis— the four rows are the same height in the layoutsnapshot; a row set smaller or nudged in would not be.
The existing link-target, snapshot and pixel gates pass on the re-recorded baselines.