Mail preview overlay: use fixed dimensions and stable footer #73

Closed
opened 2026-07-15 13:00:23 +02:00 by zemion · 4 comments
Owner

Context

The campaign mail/message preview overlay currently grows and shrinks with the rendered message content. This makes the footer/actions move between messages and makes review navigation feel unstable.

Desired behavior

  • Use fixed responsive overlay dimensions for built-message, mock-mail, and template/mail preview variants.
  • Keep header and footer/action buttons in stable positions.
  • Let message body, metadata, raw MIME, and attachment lists scroll inside the overlay.
  • Preserve mobile behavior with sensible max-height/max-width constraints.

Acceptance criteria

  • Switching between previewed messages does not move the primary action buttons.
  • Long content scrolls inside the overlay instead of resizing the dialog.
  • Short content does not collapse the dialog below the standard review size.
## Context The campaign mail/message preview overlay currently grows and shrinks with the rendered message content. This makes the footer/actions move between messages and makes review navigation feel unstable. ## Desired behavior - Use fixed responsive overlay dimensions for built-message, mock-mail, and template/mail preview variants. - Keep header and footer/action buttons in stable positions. - Let message body, metadata, raw MIME, and attachment lists scroll inside the overlay. - Preserve mobile behavior with sensible max-height/max-width constraints. ## Acceptance criteria - Switching between previewed messages does not move the primary action buttons. - Long content scrolls inside the overlay instead of resizing the dialog. - Short content does not collapse the dialog below the standard review size.
Author
Owner

Raised to P2 under the interface-consistency focus. Remote CSS already improves preview body sizing and keeps the footer outside the scroll body, but stable overlay behavior still needs focused visual/component verification, especially with the local #69 footer actions.

Raised to P2 under the interface-consistency focus. Remote CSS already improves preview body sizing and keeps the footer outside the scroll body, but stable overlay behavior still needs focused visual/component verification, especially with the local #69 footer actions.
Author
Owner

Implemented locally as the first Campaign interface-pattern pilot:

  • all unique attachment matches remain available in a bounded, keyboard-focusable scrolling list; the count opens an accessible full-detail dialog
  • message preview geometry now has a stable header/body/footer, bounded responsive dimensions, scrolling body, keyboard navigation, and accessible close behavior
  • dynamic labels/counts use i18nMessage; the slice has stable English/German SHA-1 keys

Validation: npm run test:review-preview-ui, Campaign policy/template/import focused tests, Core structural i18n audit, Campaign-only production build (3,759 modules), and git diff --check passed. Kept open/in progress because the changes are local and share a larger unintegrated Campaign worktree.

<!-- codex-progress-review-preview-2026-07-20 --> Implemented locally as the first Campaign interface-pattern pilot: - all unique attachment matches remain available in a bounded, keyboard-focusable scrolling list; the count opens an accessible full-detail dialog - message preview geometry now has a stable header/body/footer, bounded responsive dimensions, scrolling body, keyboard navigation, and accessible close behavior - dynamic labels/counts use `i18nMessage`; the slice has stable English/German SHA-1 keys Validation: `npm run test:review-preview-ui`, Campaign policy/template/import focused tests, Core structural i18n audit, Campaign-only production build (3,759 modules), and `git diff --check` passed. Kept open/in progress because the changes are local and share a larger unintegrated Campaign worktree.
Author
Owner

Codex State: progress

Summary

  • The overlay now has a responsive fixed workspace, body-owned scrolling, stable footer geometry, and an accessible close control.

Changed Files

  • govoplan-campaign 724ca77

Verification

  • node webui/tests/message-preview-overlay-structure.test.mjs (pass)
  • git diff --check (pass)

Next / Blocked

  • Review and push the local commit; keep the issue open until it reaches remote main.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - The overlay now has a responsive fixed workspace, body-owned scrolling, stable footer geometry, and an accessible close control. ### Changed Files - `govoplan-campaign 724ca77` ### Verification - `node webui/tests/message-preview-overlay-structure.test.mjs (pass)` - `git diff --check (pass)` ### Next / Blocked - Review and push the local commit; keep the issue open until it reaches remote main. Suggested status label: `status/in-progress`
Author
Owner

Codex State: done

Summary

  • The fixed responsive preview workspace, body-owned scrolling, and stable footer/action geometry are integrated on remote main at commit 724ca77.

Verification

  • node tests/message-preview-overlay-structure.test.mjs
  • npm run test:review-preview-ui
## Codex State: done ### Summary - The fixed responsive preview workspace, body-owned scrolling, and stable footer/action geometry are integrated on remote main at commit 724ca77. ### Verification - `node tests/message-preview-overlay-structure.test.mjs` - `npm run test:review-preview-ui`
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#73
No description provided.