Files
ss-tools/specs/001-unify-frontend-style/contracts/modules.md
2026-03-27 21:27:31 +03:00

4.2 KiB

Module Contracts: Frontend Style Unification

[DEF:FrontendStyleSystem:Module]

@TIER: CRITICAL

@PURPOSE: Define and enforce unified visual primitives and page-shell rules across targeted frontend routes.

@RELATION: DEPENDS_ON -> [DEF:Std:UI_Svelte:Standard]

@RELATION: DEPENDS_ON -> [DEF:Std:Semantics:Standard]

@RELATION: BINDS_TO -> [DEF:StyleTokenGroup:Block]

@RELATION: BINDS_TO -> [DEF:UIPatternRule:Block]

@PRE: Target routes/components for unification are identified and included in scope.

@PRE: Existing behavior-critical user flows remain available for validation.

@POST: Shared visual primitives and shell patterns are applied consistently in targeted scope.

@POST: No critical functional flow is removed by style refactor.

@UX_STATE: Default -> Users see consistent hierarchy (title/actions/content) across targeted pages.

@UX_STATE: Loading -> Loading visuals appear in consistent zones without disruptive layout jumps.

@UX_STATE: Error -> Error blocks use consistent emphasis and include a clear recovery action.

@UX_STATE: Success -> Confirmation messages follow one tone/placement pattern.

@INVARIANT: Unified styling must not regress accessibility-visible focus and readable contrast behavior.


[/DEF:FrontendStyleSystem:Module]

[DEF:RouteShellContract:Component]

@TIER: CRITICAL

@PURPOSE: Standardize route shell structure for primary pages (dashboards, tasks, reports, settings).

@RELATION: DEPENDS_ON -> [DEF:FrontendStyleSystem:Module]

@PRE: Route provides title context and action area metadata.

@POST: Route renders canonical shell order: context/breadcrumbs, title block, action region, content container.

@UX_STATE: Default -> Primary action location is discoverable quickly and consistently.

@UX_STATE: Empty -> Empty-state container is visually aligned with shell and includes next-step guidance.

@UX_RECOVERY: Empty -> User can recover using explicit action (refresh/filter adjust/create flow).


[/DEF:RouteShellContract:Component]

[DEF:StateFeedbackContract:Component]

@TIER: CRITICAL

@PURPOSE: Normalize loading/empty/error/success feedback rendering and wording across modules.

@RELATION: DEPENDS_ON -> [DEF:StatePresentationPattern:Block]

@PRE: Module can expose current state category (loading/empty/error/success).

@POST: State-specific UI uses canonical placement, tone, and recovery behavior.

@UX_STATE: Loading -> Consistent indicator style and placement with stable layout rhythm.

@UX_STATE: Empty -> Neutral message + guidance action rendered in standard block.

@UX_STATE: Error -> Actionable error messaging with retry/fix path.

@UX_STATE: Success -> Concise confirmation in standard visual language.

@UX_FEEDBACK: Error -> Emphasis clearly distinguishes failure from neutral status.

@UX_RECOVERY: Error -> Retry or corrective action is always visible when recoverable.

@INVARIANT: State texts use canonical terminology and remain i18n-compatible.


[/DEF:StateFeedbackContract:Component]

[DEF:TerminologyConsistencyContract:Module]

@TIER: STANDARD

@PURPOSE: Keep user-facing wording consistent across page shells and state blocks.

@RELATION: DEPENDS_ON -> [DEF:Std:Constitution:Standard]

@PRE: Canonical term list for targeted flows is defined.

@POST: Targeted modules avoid mixed synonyms for the same concept.

@UX_STATE: Default -> UI labels and status texts remain concise and confidence-building.

@INVARIANT: User-facing text remains compatible with existing localization workflow.


Contract Usage Simulation (Key Scenario)

[/DEF:TerminologyConsistencyContract:Module]

Scenario: User navigates from dashboards to reports and encounters a failed data load.

  1. RouteShellContract ensures both pages keep identical shell rhythm and action placement.
  2. FrontendStyleSystem ensures shared primitives (spacing/typography/cards/buttons) are consistent.
  3. StateFeedbackContract renders failure using canonical error block with explicit retry action.
  4. TerminologyConsistencyContract ensures error wording and action labels are aligned across pages.

Continuity Check: No interface mismatch detected between shell-level structure and state-level feedback contracts.