Codex Relay: zyra-project/zyra PR #113 — fix: overhaul print preview layout to fill full 3600px poster height#236
Conversation
6eec7d5 to
2c159e3
Compare
There was a problem hiding this comment.
Pull request overview
This PR performs a major architectural refactor of the poster HTML/CSS system, separating web and print layouts into distinct files. The web view (zyra-poster.html) remains scrollable and interactive, while a new dedicated print version (zyra-poster-print.html) provides a static 300 DPI layout at 14400×10800px (48×36 inches).
Note: There is a critical discrepancy - the PR description claims this is a relay of PR #113 about bumping netcdf4 dependency, but the actual changes are an extensive poster layout refactor with no dependency updates whatsoever.
Changes:
- Separated print layout into standalone _print.css (1740 lines) with fully self-contained styling at 300 DPI resolution
- Replaced interactive print mode toggle with static link to dedicated print HTML file
- Converted footer "Get Started" links from plain text divs to clickable badge anchors with icons
- Added new HTML fragments for print layout (_head-print.html, _body-open-print.html, _footer-print.html)
- Updated build script to generate both web and print versions, excluding gallery section from print
- Added screenshot automation scripts for print layout capture
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| poster/sections/_print.css | New 1740-line self-contained print stylesheet defining 14400×10800px grid layout at 300 DPI |
| poster/sections/_styles.css | Removed ~280 lines of body.poster-print CSS rules, replaced with comment redirecting to separate print file; updated footer badge styling from text-based links to interactive badges |
| poster/sections/sec-10-features.html | Converted 6 footer link divs to clickable anchor badges with inline SVG icons and structured label/value spans |
| poster/sections/_body-open.html | Replaced interactive print mode toggle with static link to zyra-poster-print.html |
| poster/sections/_footer.html | Removed ~60 lines of print mode toggle JavaScript; simplified to only handle responsive scaling and lightboxes |
| poster/sections/_head-print.html | New 9-line HTML head for print version with Google Fonts and inline CSS opening tag |
| poster/sections/_body-open-print.html | New 4-line body opening with poster div for print layout |
| poster/sections/_footer-print.html | New 3-line closing tags for print HTML |
| poster/scripts/build_poster.py | Enhanced to build two output files with separate fragment sets; excludes sec-09-gallery from print version |
| poster/scripts/screenshot.js | New 30-line Playwright script to capture 14400×10800px print layout screenshot |
| poster/scripts/screenshot-compare.js | New 72-line script for comparative screenshots but contains broken toggle-clicking logic |
| poster/html/zyra-poster.html | Generated output reflecting all source changes (removed print CSS, updated badges, simplified JS) |
| .gitignore | Added poster screenshot and preview artifact patterns |
| width: 14400px; | ||
| max-width: 14400px; | ||
| height: 10800px; | ||
| overflow: hidden; | ||
| display: grid; | ||
| grid-template-columns: repeat(12, 1fr); | ||
| grid-template-rows: 1200px 2200px 2600px 3100px 1700px; |
There was a problem hiding this comment.
The PR title mentions "fill full 3600px poster height," but the new print layout is actually 10800px high (14400×10800px at 300 DPI, which is 48×36 inches). The grid-template-rows sum to 10800px: 1200 + 2200 + 2600 + 3100 + 1700 = 10800. The 3600px mentioned in the title likely refers to the old 100 DPI layout (4800×3600px) that was removed from _styles.css. The title should be updated to reflect the actual 10800px height or clarify that this is a complete overhaul to 300 DPI.
| <a href="https://github.com/NOAA-GSL/zyra" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-gh"><svg width="10" height="10" viewBox="0 0 16 16" fill="white"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0016 8c0-4.42-3.58-8-8-8z"/></svg></span> | ||
| <span class="gs-badge-label">GitHub</span> | ||
| <span class="gs-badge-value">NOAA-GSL/zyra</span> | ||
| </a> | ||
| <a href="https://pypi.org/project/zyra/" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-pypi">Pi</span> | ||
| <span class="gs-badge-label">PyPI</span> | ||
| <span class="gs-badge-value">zyra</span> | ||
| </a> | ||
| <a href="https://noaa-gsl.github.io/zyra/" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-docs"><svg width="9" height="9" viewBox="0 0 10 10" fill="none"><rect x="1" y="0" width="8" height="10" rx="1" stroke="white" stroke-width="1.2" fill="none"/><line x1="3" y1="3" x2="7" y2="3" stroke="white" stroke-width="0.8"/><line x1="3" y1="5" x2="7" y2="5" stroke="white" stroke-width="0.8"/><line x1="3" y1="7" x2="5.5" y2="7" stroke="white" stroke-width="0.8"/></svg></span> | ||
| <span class="gs-badge-label">Docs</span> | ||
| <span class="gs-badge-value">noaa-gsl.github.io/zyra</span> | ||
| </a> | ||
| <a href="https://github.com/NOAA-GSL/zyra/wiki" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-docs"><svg width="9" height="9" viewBox="0 0 10 10" fill="none"><rect x="1" y="0" width="8" height="10" rx="1" stroke="white" stroke-width="1.2" fill="none"/><line x1="3" y1="3" x2="7" y2="3" stroke="white" stroke-width="0.8"/><line x1="3" y1="5" x2="7" y2="5" stroke="white" stroke-width="0.8"/><line x1="3" y1="7" x2="5.5" y2="7" stroke="white" stroke-width="0.8"/></svg></span> | ||
| <span class="gs-badge-label">Wiki</span> | ||
| <span class="gs-badge-value">NOAA-GSL/zyra/wiki</span> | ||
| </a> | ||
| <a href="https://doi.org/10.5281/zenodo.16923323" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-doi">DOI</span> | ||
| <span class="gs-badge-label">DOI</span> | ||
| <span class="gs-badge-value">10.5281/zenodo.16923323</span> | ||
| </a> | ||
| <a href="https://assistant.zyra-project.org" class="gs-badge" target="_blank" rel="noopener noreferrer"> | ||
| <span class="gs-badge-pip pip-assist"><svg width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg></span> | ||
| <span class="gs-badge-label">Assistant</span> | ||
| <span class="gs-badge-value">assistant.zyra-project.org</span> | ||
| </a> |
There was a problem hiding this comment.
The new badge markup includes SVG icons without accessible text alternatives. While the badges have visible text labels (e.g., "GitHub", "PyPI"), screen readers may not properly interpret the SVG icons. Consider adding aria-label or title attributes to the SVG elements, or use aria-hidden="true" on the SVGs if they're purely decorative alongside the text.
| @@ -0,0 +1,1740 @@ | |||
| /* ═══════════════════════════════════════════════════════════════════ | |||
There was a problem hiding this comment.
The PR title mentions "fix: overhaul print preview layout to fill full 3600px poster height," but the PR description indicates this is a relay of zyra-project/zyra PR #113, which is described as "chore(deps): bump netcdf4 from 1.7.1.post2 to 1.7.2" - a dependency update. However, the actual code changes in this PR are a major refactor of the poster HTML/CSS layout system, not a netcdf4 dependency bump. There's a significant discrepancy between the PR metadata and the actual changes.
802a532 to
580525e
Compare
Complete overhaul of the 48×36" (14400×10800px, 300 DPI) scientific poster layout for Zyra: Print system: - Separate print page (zyra-poster-print.html) with dedicated stylesheet - Self-contained _print.css with own variables, reset, and all styles - Dedicated print page templates (_head-print, _body-open-print, _footer-print) - Screenshot script targets print page directly, no toggle needed Layout fixes across all sections: - Challenge: sized text/graphic to fit 2200px row - Pipeline: stage table alongside visual, proper grid rows, streaming code - Reproducible Configs: content fits without overflow - Foundation: 50/50 side-by-side layout with enlarged pyramid - Narration Swarm: full content visible - Drought Pipeline: full content visible - HRRR: heatmap preview image in print layout - Gallery section excluded from print (interactive-only) Getting Started section: - Convert plain label/url divs to clickable badge-style pills - Each badge has icon pip, label, and value in rounded pill shape - All 6 links (GitHub, PyPI, Docs, Wiki, DOI, Assistant) are clickable - Fix heading color specificity (.features-card h3 override) https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
The relay workflow was hardcoded to RELAY_BASE=staging, so PRs targeting mirror/main would fail during rebase because the poster commits already exist in upstream main but not in upstream staging. Now the workflow strips the mirror/ prefix from the PR's base branch to determine the upstream target. Also adds mirror/main to the trigger list and uses the dynamic base ref in the conflict comment. https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
This reverts commit 2420d2f04e405d4d64c3e2a23023884d26f47849. Signed-off-by: Claude <noreply@anthropic.com>
https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
- Fix comment: Row 4/5 heights (3100px/1700px, not 2800px/2000px) - Add aria-hidden="true" to decorative SVGs in badge icons - Add missing .gs-badge-pip color classes for gh/docs/assist in print CSS - Remove hardcoded paths in screenshot scripts; use playwright-core and PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH env var for portability - Fix screenshot-compare.js: load print page directly instead of clicking removed #toggleLink toggle https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
https://claude.ai/code/session_011meoUUDwixYjLmaELedgsn Signed-off-by: Claude <noreply@anthropic.com>
580525e to
c630cac
Compare
Mirrored from zyra-project/zyra PR #113
Source: zyra-project/zyra#113