feca-mailshots-plugin/docs/ui_review_2026-04-23.md

56 lines
2.7 KiB
Markdown

# 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.