Skip to content

Codex Relay: zyra-project/zyra PR #113 — fix: overhaul print preview layout to fill full 3600px poster height#236

Merged
Hackshaven merged 7 commits intomainfrom
relay/hh-pr-113
Feb 22, 2026
Merged

Codex Relay: zyra-project/zyra PR #113 — fix: overhaul print preview layout to fill full 3600px poster height#236
Hackshaven merged 7 commits intomainfrom
relay/hh-pr-113

Conversation

@Hackshaven
Copy link
Collaborator

Mirrored from zyra-project/zyra PR #113

Source: zyra-project/zyra#113

This PR is maintained by an automated relay. Changes should be made in the original downstream PR.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment on lines +1228 to +1234
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;
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +81 to +110
<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>
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,1740 @@
/* ═══════════════════════════════════════════════════════════════════
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@Hackshaven Hackshaven force-pushed the relay/hh-pr-113 branch 3 times, most recently from 802a532 to 580525e Compare February 22, 2026 19:31
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>
- 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>
@Hackshaven Hackshaven merged commit 020c99e into main Feb 22, 2026
9 checks passed
@Hackshaven Hackshaven deleted the relay/hh-pr-113 branch February 22, 2026 19:52
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.

3 participants