Skip to content

feat: Mint Editorial preset + showcase v2 swap + redesign#77

Merged
DemchaAV merged 4 commits into
developfrom
feat/cv-v2-mint-editorial
May 30, 2026
Merged

feat: Mint Editorial preset + showcase v2 swap + redesign#77
DemchaAV merged 4 commits into
developfrom
feat/cv-v2-mint-editorial

Conversation

@DemchaAV
Copy link
Copy Markdown
Owner

Summary

Four-commit branch that:

  1. Adds a new Mint Editorial CV preset and its paired cover letter on the layered v2 stack.
  2. Adds a docs/index.html version guard in VersionConsistencyGuardTest and an Update-IndexHtmlVersion step in cut-release.ps1 — the showcase site had silently drifted to v1.6.1 while the library shipped v1.6.4 because nothing bumped or guarded the hardcoded version. Also rewrites docs/SHOWCASE.md to match the real ShowcaseSync flow.
  3. Redesigns the showcase site — tokenized colour system, html[data-theme="light"] overrides, sun/moon toggle in the header (persists to localStorage, dark default), Space Grotesk display headings via Google Fonts, unified single indigo accent (replaces the old cyan + amber pair), gallery cards now crop to the top band of each document for uniform scannable previews (full A4 still in the lightbox). Bumps the hardcoded site version 1.6.11.6.4 (guarded by the test above) and fixes a broken footer migration-guide link.
  4. Swaps the gallery from Gen-2 to v2 — five new v2 CV examples (BlueBanner, CenteredHeadline, ClassicSerif, CompactMono, NordicClean) so all 16 cv/v2 presets have a runnable example; CvMinimalUnderlinedExample output renamed to cv-minimal-underlined-v2.pdf to match the v2 slug convention; GenerateAllExamples drops the Gen-2 gallery callers and runs all 16 v2 CV + 15 paired v2 cover-letter examples; ShowcaseMetadata.cv()/letter() helpers now take an explicit exampleClass and point at /v2/ paths (16 cv + 15 letter entries); regenerated docs/showcase/{pdf,screenshots} + docs/examples.json; removed the orphaned Gen-2 PDFs and PNGs.

Test plan

  • ./mvnw verify -pl . green (incl. the new VersionConsistencyGuardTest.showcaseSiteVersionMatchesTheProjectVersion)
  • GenerateAllExamples runs all 31 v2 templates cleanly (16 + 15)
  • ShowcaseSync regenerates docs/showcase/{pdf,screenshots} + docs/examples.json without orphans
  • Showcase site rendered locally in both dark + light + mobile; gallery shows v2 cards with "View Code" linking to v2 examples

DemchaAV added 4 commits May 30, 2026 01:36
Two-page two-column editorial CV ported from the Mint Editorial design:
centered spaced-caps masthead with a full-width mint accent rule, a left
sidebar (contact icon rows, interests, education, expertise, level-driven
skill bars, social) beside a main column (profile, experience, awards and
references two-column grids). MintEditorialLetter reuses the same theme and
masthead 1:1.

Layered additions:
- data: CvSkill(name, optional level) + SkillGroup leveled entries,
  backward-compatible (name-only renderers and existing baselines unchanged).
- theme: CvTheme.mintEditorial() (Poppins; mint accent in palette.banner()).
- widgets: reusable SkillBar (proficiency bar) and IconTextRow.
- presets: MintEditorial (cv/v2) + MintEditorialLetter (coverletter/v2).
- examples: Rose Harris showcase dataset, local to the Mint example so the
  shared sampleCvDocumentV2 stays untouched.

Local checkpoint of the visually-approved render. Parity 15/15 (no baseline
drift), Mint + widget + skills smoke tests green, full verify passes.
Follow-ups: parity baseline registration, docs/CHANGELOG, customizable
accent/header colour options.
docs/index.html hardcodes the version in five spots (JSON-LD
softwareVersion, JitPack downloadUrl, hero badge, Maven + Gradle install
snippets) that do not inherit from the pom — they had silently drifted
to v1.6.1 while the library shipped v1.6.4 because nothing bumped or
guarded them.

- VersionConsistencyGuardTest.showcaseSiteVersionMatchesTheProjectVersion:
  fails the verify gate if any of the five spots lags behind the root
  pom, matching the existing guard on the README install snippets.
- cut-release.ps1 Update-IndexHtmlVersion: bumps all five spots in
  lockstep with README + poms during the release commit, and stages
  docs/index.html alongside the rest of the release artefacts.
- SHOWCASE.md: rewritten to match reality — previews and the gallery
  manifest are auto-generated by ShowcaseSync under docs/showcase/
  (pdf + screenshots), not hand-edited under docs/assets/ as the old
  doc claimed.
- Tokenize the colour system into semantic CSS variables and add an
  html[data-theme="light"] override block. Inline no-FOUC theme init in
  <head> reads localStorage before first paint; dark stays default.
- Sun/moon toggle in the header, persists to localStorage. Code panels
  intentionally stay dark in both themes (code reads best dark).
- Space Grotesk display face on the major headings via Google Fonts
  (hero h1, section h2, category headings, card titles); body stays
  Inter.
- Unify the dual cyan + amber accents into a single premium indigo
  (#6366f1) across buttons, tags, code tokens, focus rings.
- Gallery card previews now crop to the top band of each document
  (object-fit cover, top-aligned, height ≈ 248px) for uniform,
  scannable cards — the full A4 page is still one click away in the
  lightbox.
- Bump the hardcoded site version 1.6.1 → 1.6.4 to match the current
  pom (guarded by the test added in the previous commit).
- Fix a broken footer migration-guide link (docs/ → docs/roadmaps/).
The site gallery was rendering the deprecated Gen-2
CvTemplateGalleryFileExample / CoverLetterTemplateGalleryFileExample
outputs. CV authoring has moved to the v2 layered stack (cv/v2 +
coverletter/v2) where the rendered documents look better; this swap
brings the showcase site over.

- Add five missing v2 CV examples (CvBlueBannerExample,
  CvCenteredHeadlineExample, CvClassicSerifExample, CvCompactMonoExample,
  CvNordicCleanExample) mirroring the existing CvBoxedV2Example shape.
  All 16 cv/v2 presets now have a runnable example.
- CvMinimalUnderlinedExample now writes cv-minimal-underlined-v2.pdf
  (was cv-minimal-underlined.pdf) so the basename matches the v2 slug
  convention every other preset already uses.
- GenerateAllExamples drops the Gen-2 gallery callers and runs all 16
  individual v2 CV examples plus all 15 paired v2 cover-letter
  examples (Cv<Name>LetterV2Example).
- ShowcaseMetadata: cv() / letter() helpers now take an explicit
  exampleClass and point at /v2/ paths. The 14 cv entries grow to 16
  (-v2 slugs plus Minimal Underlined and Mint Editorial); the 14 letter
  entries grow to 15 (-v2 slugs plus the Mint Editorial paired letter).
- Regenerated docs/showcase/{pdf,screenshots} and docs/examples.json
  via GenerateAllExamples then ShowcaseSync, and removed the orphaned
  Gen-2 PDFs and PNGs they superseded.
@DemchaAV DemchaAV merged commit 747b6c4 into develop May 30, 2026
9 checks passed
@DemchaAV DemchaAV deleted the feat/cv-v2-mint-editorial branch May 30, 2026 01:41
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