Preflight: trimmed edit view with bleed guides and crop marks

Branch BL-15958-crop-marks, all reviewers finished, one question for you.

Ready for review Mergeable Bots quiet 1 item waiting on you

What this PR is about

Problem

For a book with Use full bleed page layout on, the Edit tab showed each page at its full printed size, with a thick dark band over the outer 3mm that the printer cuts off. Authors were always looking at a page larger than the finished one, with the edges of their pictures dimmed.

What the PR does

  • Full-bleed paper-size pages show only the trimmed page by default.
  • Hovering over the page brings back the bleed band, a faint strip just inside the cut line (the area that could still be cut), and white crop marks at the four corners. Moving the mouse off hides them again.
  • Ebook and device sizes (Device 16x9, Ebook 2x3, Ebook 7x5) get none of this, since they have no bleed.
  • These edit-mode rules live in their own stylesheet, bleedAndCropMarks.less, imported by editMode.less. They pick out paper sizes with one test on the page-size class name (:not([class*="Device"], [class*="Ebook"])) instead of listing the four screen sizes six times.

Quality gate

CheckResult
LESS compile (editMode.less, and the new file on its own)pass
Prettierpass
TypeScript typecheck / ESLintnot run: they cover only .ts/.tsx, and the diff is LESS only
Front-end tests (vitest)pass 85 files · 1123 tests
C# testsnot run: no C# in the diff, and the C# tests only refer to editMode.css by name
Merge with masterclean, merged at 40cc926
CI (pr-automation)pass

What changed this run

Moved the bleed, safety-area and crop-mark rules out of editMode.less into their own file and replaced the six copies of the four-class exclusion list with one name test. The compiled CSS is unchanged apart from the selectors. Then merged master. 2a802a6 · all commits

Reviewer outcomes

ReviewerOutcome
Local reviewLight sub-agent pass: clean, no findings.
DevinComplete on 40cc926. Raised one bug and one investigate flag, both assessed not an issue, with the reasoning on their threads, which are resolved: bottom and right safety strips hidden (rendered in Chrome: all four strips show) and wrong target branch (no such rule; the card has no [6.X] prefix).
GreptileHas not reviewed the current code. It reviewed the first commit and found nothing. This run only moved those rules and didn't change what they do, so I didn't re-trigger it.
CIComplete: pr-automation passed.

Worth knowing

  • Nobody has checked the hover behavior in a running Bloom on this branch. The compiled CSS was compared rule by rule with the previous commit, and the safety strips were rendered in Chrome.
  • Test ideas for this PR are a separate comment on BL-15958, so the PR 8262 notes above it stay as they were.

The PR description is out of date

PR 8264's description was written by an earlier agent session without preflight's markers, so preflight leaves it alone. Its "What this does" section says the PR "Changes only editMode.less". That's no longer true: the rules now live in a new bleedAndCropMarks.less. It also has no Risk, Ecosystem or E2E sections for the reviewer.

Next step

Send your answers back

Paste this into a Claude session.