Files
pdfcraft/docs/ui-parity.md
T
c3c36f77cf M5: a comment's text, border or line, and fill each at an opacity of its own (#4542)
* A comment's text, border or line, and fill each at an opacity of its own

Comment Properties showed one opacity for a whole comment, so a text box's
see-through background took its text and border with it, and a rectangle
marking an area on a plan couldn't have an opaque line over a faint fill.
Now a text box, typewriter text or callout has a Text, Border and Fill
opacity, a rectangle, oval, polygon or cloud a Line and Fill opacity (a part
not drawn is greyed); everything else keeps one Opacity.

The line's stays /CA, the fill's is /ca (PDF 2.0's opacity for what is
filled) and the text's /PCTextOpacity, each only where it differs from the
one it would follow, and the appearance draws them with /GS0 (strokes at the
line's, fills at the fill's) and /GS1 for the text, so every viewer shows
them. The quick bar's Opacity and StyleAnnotation's set the whole comment's.

Engine: Style::{fill_opacity, text_opacity}, Edit::PartOpacity,
annot::{set_part_opacity, appearance::part_opacity}, Props::{fill_opacity,
text_opacity}. Make Properties Default and the settings carry the parts.
Headless: comment_add / comment_edit fill_opacity, text_opacity; comment_list
reports opacity, fill_opacity, text_opacity. Four labels in every catalog
(AI-assisted translations from English, noted in ATTRIBUTION.toml).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: the text's opacity slider shows what the text is drawn at; comment_list skips replies' properties; ui-parity's change record

A text box without fill and border whose text kept an opacity of its own showed the border's
in its Text opacity slider; it now shows the text's, and a change sets the whole comment's.
The opacity sliders are named by their labels. comment_list reads a comment's properties only
for comments, not for every reply.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rebase: comment_list tells replies by is_reply, as main now threads them

main threads replies by their /IRT reference (#4061); the opacity fields skip a reply the
same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: a text-only text box made default gives the tool its text's opacity

With neither a border nor a fill, a text box's text is the whole comment:
Comment Properties shows its drawn opacity (the text's own, when set), and a
change there sets the whole comment's. Make Properties Default, and the
context menu's Make Current Properties Default, stored /CA instead, so a
text box whose text was at 50 % gave the tool 100 %. The default is now the
text's drawn opacity in that case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rebase: the part opacities in main's annot layout (Style's fields, the text box drawing's parts, set_part_opacity exported)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rebase: main's new comment test builds a Style with the part opacities

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: FredApps <FredApps@users.noreply.github.com>
Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com>
2026-11-05 14:39:36 +01:00

7.3 KiB
Raw Blame History

UI and interaction parity

Last reviewed: 2026-10-21 · Last updated: 2026-10-24 · Change: minor (→ / ← scroll a page wider than the window before turning it; a comment's text, border or line, and fill each at an opacity of its own) · Target: Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS)

How PdfCraft's tools, panels, shortcuts and feel compare with Acrobat Pro's current interface (the 2023+ "new Acrobat": All tools pane on the left, quick-action toolbar, Home view). Behaviour is observed clean-room (plan/acrobat/02-ui-ux.md, local-only; AGENTS.md §2); nothing from Adobe's interface is copied. Gaps ranked in gaps.md.

UI/UX fidelity ≈ 55% ready (estimated), 30–60 h additional to the features total.

Measured

  • 184 registered commands (crates/engine/src/commands.rs), every one in the menus, the command palette and the automation command_run tool; menus are generated from the registry (view.menus-from-registry).
  • 141 automation tools (crates/automation/src/tools.rs), so every UI action can be checked headlessly.
  • View area of the checklist: 62.5% breadth (52 shipped, 11 partial of 92).

No dump of Acrobat's menu tree has been diffed against the registry yet (gap 24).

Shell and navigation

Element Acrobat PdfCraft Status
Home view (recent files, recommended tools) yes yes shipped
All tools pane, tool sets yes yes, with milestone badges shipped
Quick-action toolbar, customisable yes customizable floating/docked hotbar, adjustable size, persistent multi-select picker partial (view.customize-quick-tools; no shortcut reordering)
Command search "Search tools" command palette (⌘K), matches translated and English labels shipped
Document tabs yes yes, with unsaved marker shipped
Multiple windows, drag a tab out yes no planned
Split window, spreadsheet split yes no planned
Read mode, full screen yes yes; full screen is one fitted page at a time on black, click/keys turn pages (#1459) shipped; auto-advance, loop and transitions planned
Light, dark, system theme yes yes shipped
Side panels: thumbnails, bookmarks, attachments, layers, comments, fields, signatures yes yes; panels keep their width (#704); the Pages inspector has a 50–150% thumbnail size slider and buttons (#3808) shipped
Destinations, articles, model tree, Tags, Order, Content panels yes no planned
Message bars (restricted, signed, PDF/A, forms) yes restricted and signed; no PDF/A view mode partial

Tools, handles and precision

Behaviour Acrobat PdfCraft Status / evidence
Zoom: wheel, pinch, keys, marquee, fit page/width/height/visible yes yes shipped
Fixed zoom percentages match Acrobat's physical size yes differ (#739, documented in #736) gap
Dynamic zoom, loupe, pan-and-zoom window yes no planned
Hand tool, middle-button pan, autoscroll yes hand tool; Linux autoscroll; → / ← scroll a page wider than the window before turning it partial
Text selection, column select yes, Alt-drag columns reading-order selection; Alt/Option-drag or Edit ▸ Column select (#740) shipped
Select and move several objects at once yes on one page: Shift/Ctrl/⌘-click and marquee, one undo step (#844); not across pages, no group resize partial
Moved comments drawn where they go while dragged yes yes: the comment's own pixels follow the pointer, the page shows it where it was until release; stamps and Fill & Sign marks also hide the original shipped
Object handles: corners keep proportion, edges free yes yes for added images and signatures; Shift on a corner keeps the proportions of comments, stamps and form fields (#2199); no Alt resize from the centre shipped
Shift while drawing a line holds it to 45° steps holds it level or plumb (a CAD drawing's ortho): new lines and arrows, each side of connected lines, polygons and clouds, and a dragged end or corner shipped
Arrange, align and distribute page objects yes fields only partial
Rulers, grids, snap to grid, guides yes no planned
Cursor coordinates, line weights yes no planned
Measuring snap to paths, endpoints, midpoints, intersections yes yes shipped
Nudge selected objects with arrow keys (Shift for larger steps) yes yes in Edit text: a point, Shift ten points, for selected objects, images and an open paragraph's box (#1520); and in Prepare a form, for the selected field (#2608); a selected comment: a screen pixel, ⌘/Ctrl or Shift ten shipped
Single-key tool accelerators (H, V, Z, …) yes, opt-in no planned
Context menus on pages, thumbnails, comments, fields yes thumbnails, comments, fields partial
Comment pop-ups as movable windows, connector lines yes inline in the panel planned
Disabled commands explain why no yes ahead

Shortcuts and modifiers

Item Acrobat PdfCraft Status
Platform shortcuts for registered commands yes yes; ⌘ on macOS, Ctrl elsewhere (#695) shipped; find bar still shows ⌘ on Windows (#746)
Keyboard shortcuts reference yes yes shipped
Full keyboard operation of the app yes no planned (a11y.keyboard-only, P0)
Shift-⌘-G finds previous yes yes (#810 fixed) shipped

Dialogs and preferences

Item Acrobat PdfCraft Status
Print dialog with preview yes yes shipped
Document Properties (description, security, fonts, initial view, custom, advanced) yes all but Custom and XMP partial
Field Properties (General, Appearance, Position, Options, Actions, Format, Validate, Calculate, Signed) yes all but Signed partial
Comment properties and properties bar yes yes; a text box's text, border and fill and a shape's line and fill each take an opacity of their own (Acrobat: one per comment) shipped
Preferences ≈ 20 pages Interface language, Documents and view, Identity, Fill & Sign, JavaScript partial (gap 19)

Revision history

Date Change Summary
2026-10-24 minor → / ← scroll a page wider than the window sideways before turning it, by the current page's or spread's edges in continuous view; ⌘→ / ⌘← turn at once
2026-10-24 minor Comment Properties sets a text box's text, border and fill opacity and a shape's line and fill opacity each on its own (Acrobat: one per comment); Make Properties Default carries them into the tool
2026-10-21 minor Pages inspector thumbnail sizing (#3808), separate from page and Organize zoom; view setting retained on reload and exposed through UI control. Not persisted between sessions.
2026-10-15 minor A selected field nudges with the arrow keys in Prepare a form: a point, Shift ten points, one undo step per press (#2608)
2026-10-14 minor Full screen shows one fitted page (or spread) at a time on black with click and key paging, as Acrobat's Full Screen Mode (#379, #1459, #1353)
2026-10-11 minor Column select shipped (#740, PR #765); several objects move together on one page (#844, PR #907); Shift-⌘-G goes back (#810, PR #835)
2026-10-10 major Created from the command registry, automation tools, the View area of the checklist and open UI issues