Define and enforce semantic page action-bar layouts #287

Closed
opened 2026-08-19 12:57:46 +02:00 by zemion · 1 comment
Owner

Context

Shared visual primitives are centralized, but modules can still compose page-header actions inconsistently. The product needs a semantic layout contract that governs stable placement, availability explanations, responsive behavior, and action ordering without moving domain decisions into Core.

Acceptance criteria

  • Document binding page archetypes for collection, detail, and editor surfaces.
  • Add a central semantic PageActionBar built on ActionToolbar with named slots and deterministic order.
  • Collection surfaces retain Reload and place Create at the far right when creation is supported.
  • Detail surfaces retain Reload and group ordinary, primary, and consequential actions predictably.
  • Editor surfaces retain Reload, Discard, and far-right Save; action positions stay stable while loading, clean, invalid, blocked, or saving.
  • Read-only surfaces do not render a meaningless Save action.
  • Disabled primary actions explain the blocker through the existing shared Button contract.
  • Add structural, keyboard, accessible-name, narrow-width, and product-wide ownership checks.
  • Use the Payments operator workspace as the first new consumer, then migrate existing module headers in bounded follow-up slices.
## Context Shared visual primitives are centralized, but modules can still compose page-header actions inconsistently. The product needs a semantic layout contract that governs stable placement, availability explanations, responsive behavior, and action ordering without moving domain decisions into Core. ## Acceptance criteria - Document binding page archetypes for collection, detail, and editor surfaces. - Add a central semantic PageActionBar built on ActionToolbar with named slots and deterministic order. - Collection surfaces retain Reload and place Create at the far right when creation is supported. - Detail surfaces retain Reload and group ordinary, primary, and consequential actions predictably. - Editor surfaces retain Reload, Discard, and far-right Save; action positions stay stable while loading, clean, invalid, blocked, or saving. - Read-only surfaces do not render a meaningless Save action. - Disabled primary actions explain the blocker through the existing shared Button contract. - Add structural, keyboard, accessible-name, narrow-width, and product-wide ownership checks. - Use the Payments operator workspace as the first new consumer, then migrate existing module headers in bounded follow-up slices.
Author
Owner

Implemented in c042244 and consumed by the Payments operator workspace in a2dcd8f. Core now provides semantic collection/detail/editor PageActionBar slots, binding layout guidance, structural tests, keyboard/accessibility/narrow-layout conformance, and product-wide enforcement. The complete focused workspace suite passed, including all 57 module permutations and visual conformance.

Implemented in c042244 and consumed by the Payments operator workspace in a2dcd8f. Core now provides semantic collection/detail/editor PageActionBar slots, binding layout guidance, structural tests, keyboard/accessibility/narrow-layout conformance, and product-wide enforcement. The complete focused workspace suite passed, including all 57 module permutations and visual conformance.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-core#287