# UI Design Review (2026-04-23)

Reviewed against [`requirements/ui_design.md`](../requirements/ui_design.md).

## Summary

The plugin has improved control alignment/spacing and better internal scrolling on key pages (notably Review Recipients and Download PDF), but several global UI design requirements are still only partially implemented.

## Implemented / Largely Implemented

- WordPress admin-page navigation model is used across the plugin.
- Destructive actions use confirmation and red-link/button treatment in most CRUD lists.
- Modal editors generally use `Save` / `Quit` and preserve draft state on validation failure.
- Control label/control alignment and spacing were improved on pages with filter/selection controls.
- Long-running feedback is present for Download PDF (progress panel shown on submit).
- Review Recipients provides:
  - full-page recipient inspection
  - filter across fields
  - sort-by + direction controls
  - internal scroll region with sticky header row
  - row highlight selection.

## Gaps

1. **Standard Page Region Consistency (global)**
- Requirement expects consistent context/information/statistics/actions/data pane structure where applicable.
- Current pages use ad-hoc inline layouts with inconsistent region structure and styling.

2. **Multi-pane data area splitters**
- Draggable splitters with persisted ratios are not implemented.
- No per-page split-ratio persistence exists.

3. **Default table behavior: column resizing + persistence**
- User-resizable column widths (including Firefox) are not implemented as a shared table behavior.
- Persisted widths per table are not implemented.

4. **Resize stability requirements**
- Because column-resize behavior is not implemented, the associated non-reload stability guarantees are also not yet implemented/tested.

5. **Long-operation progress coverage**
- Download PDF has progress feedback, but this is not consistently applied to all operations that may exceed 1s (for example some validate/preview/run flows depending on dataset size).

6. **Horizontal scrolling policy**
- Requirement says avoid horizontal scrolling when content width can be adjusted.
- Review Recipients intentionally uses horizontal scroll for wide datasets; this is acceptable for usability, but should be documented as an explicit page-level exception to avoid ambiguity.

## Recommended Next Steps

1. Introduce a shared admin UI layout helper (PHP render helpers + shared CSS class contract) for pane regions.
2. Introduce a shared table component for:
- edge-drag resize
- width persistence
- sort dropdown + direction wiring where needed.
3. Add a reusable progress-status helper for long-running form/API actions.
4. Add explicit requirement note for Review Recipients horizontal-scroll exception.
