fix(cv/v2): visual breathing room — entry separation + MP body left-padding#53
Merged
Merged
Conversation
b6b12ba to
a241429
Compare
… rows
Reader feedback: Education / Experience / Projects sections rendered
as a "wall of text" — consecutive university entries, jobs, and
projects shared the same line spacing as their internal lines
(title → subtitle → body), so the boundary between one entry and
the next was visually invisible.
Fix
---
- theme/CvSpacing — new field `entrySeparation` (double, points)
controlling the vertical spacer between consecutive multi-line
entries.
- classic preset: 6.0pt
- modernProfessional preset: 8.0pt (denser overall layout, bigger
separator stands out more)
- @deprecated 13-arg constructor preserved for backward-compat —
fills the new field with 6.0pt default so any pre-existing custom
CvSpacing instance keeps compiling AND benefits from the
improvement automatically.
- components/SectionDispatcher inserts `host.spacer(0, entrySeparation)`
between items for:
- EntriesSection — always (Education, Experience are multi-line)
- RowsSection with BULLETED_STACKED style — between project items
(each project is a two-line block — bold name + indented body)
Single-line styles (PLAIN, BULLETED) are unaffected — they
already breathe via the per-row paragraphMarginTop.
Visual diff (verified by re-rendered cv-modern-professional-v2.pdf):
before: after:
MSc Computer Science MSc Computer Science
University of Manchester University of Manchester
Distinction. Thesis: ... Distinction. Thesis: ...
BSc Software Engineering ← gap
Imperial College London BSc Software Engineering
First-class honours... Imperial College London
First-class honours...
Baselines
---------
Refreshed all 6 visual-baseline PNGs via the
`-Dgraphcompose.visual.approve=true` workflow established in #52 —
this commit is the first deliberate consumer of that workflow,
demonstrating it works as designed.
Tests
-----
- 3/3 CvV2VisualParityTest pass against refreshed baselines
- All existing v2 tests still green (CvNameTest, CvContactTest,
CvDecorationTest, CvDocumentSlotTest, three preset smoke tests,
WidgetSmokeTest)
- No engine / v1 surface edits
a241429 to
eb87df4
Compare
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.
Reader feedback after CV review of the rendered v2 PDFs:
Education / Experience / Projects sections rendered as a wall of text — consecutive university entries, jobs, and projects shared the same line spacing as their internal lines, so the boundary between one entry and the next was visually invisible.
In ModernProfessional preset, body text was flush with the section title (no left indent) — section title sat at the same x-coordinate as the body beneath it, making the visual hierarchy weaker than v1 had.
Fix
1.
CvSpacing.entrySeparation— new spacer between consecutive multi-line entries.@Deprecated13-arg constructor preserved for backward-compat — fills new field with 6pt default2.
SectionDispatcherinsertshost.spacer(0, entrySeparation)between items for:EntriesSection— always (Education, Experience are multi-line)RowsSectionwithBULLETED_STACKEDstyle — between project items3.
CvSpacing.modernProfessional()sectionBodyPadding left: 0 → 12pt — body text now visually indents from blue section title.Baselines refreshed
All 6 visual-baseline PNGs refreshed via the
-Dgraphcompose.visual.approve=trueworkflow established in #52. This commit is the first deliberate consumer of that workflow, demonstrating it works exactly as designed:What's NOT changed
@Deprecatedold ctor on CvSpacing).Test plan
CvV2VisualParityTestpass against refreshed baselinescv-modern-professional-v2.pdf— body indented, entries separated