[Image references 6/6] Fixed-rail arrows #1829

Closed
opened 2026-08-28 09:44:56 +00:00 by brenno · 0 comments
Owner

Parent: #1801
Depends on: #1827 and #1828
Contract: docs/design/IMAGE_CALLOUTS.md, frozen revision 4 (arrow row of §3.1, §5, §9, §11 and §12)

Outcome

Complete #1801 with the requested arrow presentation while retaining the same portable reference data, editor and geometry used by numbered markers and highlighted areas.

Scope

  • Add the user-facing arrow presentation to an image-reference slide.
  • Start arrows from the fixed connection rail at the right edge of the bullet row, never from the last glyph.
  • End an arrow at a point target or at the deterministic intersection with a region edge defined in §3.1.
  • Draw region outlines where the matrix requires them.
  • Render arrows in Flutter preview/presenter/audience, OciDeck HTML export and the raster path for PDF, PPTX and ODP.
  • Apply the specified LaTeX fallback to numbered marker/highlighted area plus the textual reference; do not invent fragile text measurement there.
  • Reveal the bullet and all of its arrows atomically through #1828.
  • Raise a quality finding for crossing arrows and suggest numbered markers; do not add manual routing.
  • Retain the two-tone edge, theme-derived styling and complete marker descriptions/semantics.

Acceptance evidence

  • Point and region arrow endpoints match the shared geometry and presentation matrix.
  • Wrapped bullets, short and long bullets, auto-fit, split runs and display windows all start from the fixed rail without glyph measurement.
  • Several targets from one bullet and several bullets on one slide are covered.
  • Crossing detection is tested, including a mutation that would miss a crossing.
  • Same-frame raster capture, browser bounding boxes and visual review cover light, dark, busy and greyscale images at full-slide and slide-rail sizes.
  • Reveal, back navigation, static flattening, redaction and accessibility remain correct.
  • Plain Marp continues to show the textual references and no potentially stale overlay.
  • User documentation, localisation, source map and changelog describe the shipped degradation matrix accurately.

Boundaries

  • No manual bend points, author-selected tail position, free colours, line widths or arrowhead sizes.
  • No arrow from the final text glyph and no renderer-specific geometry model.
  • A renderer may reduce geometry as specified, but never invent it.
  • Tests, accessibility, translations, documentation and visual review are part of this issue.

Completion of this issue does not by itself close #1801: the parent closes only after its final cross-surface and end-to-end checklist is verified on main.

Parent: #1801 Depends on: #1827 and #1828 Contract: `docs/design/IMAGE_CALLOUTS.md`, frozen revision 4 (arrow row of §3.1, §5, §9, §11 and §12) ## Outcome Complete #1801 with the requested arrow presentation while retaining the same portable reference data, editor and geometry used by numbered markers and highlighted areas. ## Scope - Add the user-facing **arrow** presentation to an image-reference slide. - Start arrows from the fixed connection rail at the right edge of the bullet row, never from the last glyph. - End an arrow at a point target or at the deterministic intersection with a region edge defined in §3.1. - Draw region outlines where the matrix requires them. - Render arrows in Flutter preview/presenter/audience, OciDeck HTML export and the raster path for PDF, PPTX and ODP. - Apply the specified LaTeX fallback to numbered marker/highlighted area plus the textual reference; do not invent fragile text measurement there. - Reveal the bullet and all of its arrows atomically through #1828. - Raise a quality finding for crossing arrows and suggest numbered markers; do not add manual routing. - Retain the two-tone edge, theme-derived styling and complete marker descriptions/semantics. ## Acceptance evidence - Point and region arrow endpoints match the shared geometry and presentation matrix. - Wrapped bullets, short and long bullets, auto-fit, split runs and display windows all start from the fixed rail without glyph measurement. - Several targets from one bullet and several bullets on one slide are covered. - Crossing detection is tested, including a mutation that would miss a crossing. - Same-frame raster capture, browser bounding boxes and visual review cover light, dark, busy and greyscale images at full-slide and slide-rail sizes. - Reveal, back navigation, static flattening, redaction and accessibility remain correct. - Plain Marp continues to show the textual references and no potentially stale overlay. - User documentation, localisation, source map and changelog describe the shipped degradation matrix accurately. ## Boundaries - No manual bend points, author-selected tail position, free colours, line widths or arrowhead sizes. - No arrow from the final text glyph and no renderer-specific geometry model. - A renderer may reduce geometry as specified, but never invent it. - Tests, accessibility, translations, documentation and visual review are part of this issue. Completion of this issue does not by itself close #1801: the parent closes only after its final cross-surface and end-to-end checklist is verified on `main`.
brenno 2026-08-29 07:10:58 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1829
No description provided.