Protocol-Driven UX: The Foundation of Framework UI
Vision Statement
Framework UI is not a static set of layouts or a fixed theme. It is an API-driven grammar for composing high-density applications. It provides the "primitives of interaction" that allow developers to build anything from an ERP to a chat platform while maintaining a Zero-Cliff transition from standard configuration to advanced custom development.
Core Principles
1. Protocol-Separation (The Dual Port)
To avoid the trap of "JS composition in the backend," we maintain a strict separation between the Context Port and the Fidelity Port:
- Context Port (Python): Resolves the Logical Hierarchy. It answers: "Who is the user?", "What tenant are they in?", "What apps/nodes are they entitled to see?".
- Fidelity Port (React): Resolves the Physical Rendering. It answers: "How is this section animated?", "What component renders a 'Report' node?", "How does the glassmorphism effect look?".
[!NOTE] The Backend returns Manifests (Data); the Frontend returns Components (UI).
2. Zero-Cliff Decomposition
Every built-in UI primitive (Sidebar, Header, Landing) must be:
- Extensible: Augmented via Metadata Decorators.
- Overridable: Replaced by custom Adapters.
- Decomposable: Broken down into smaller sub-components that can be reused in entirely custom MFEs (Micro-Frontends).
3. Composition over Branding
Framework UI focuses on the "Bones"—the spatial organization and navigation ease. Branding (colors, bling, whitelabeling) is treated as a CSS-level skin. A developer should benefit from the framework's complex navigation logic (Rail & Drawer) even if they completely change the look and feel.
The Physical Model: "Rail & Drawer"
For high-density platforms, we move away from flat sidebars to a two-layered model:
- Primary Rail (The Switcher): Global app icons for context switching (e.g., WMS, Studio, Finance).
- Contextual Drawer (The Tree): Hierarchical navigation specific to the active App.
This model is a framework invariant for navigation ease, but its rendering (e.g., becoming a bottom bar on mobile) is managed by the Fidelity Port.
The SaaS Control Plane (Entitlements)
SaaS developers control the UI via the Entitlement Layer. This sits above RBAC/ABAC:
- Entitlement (Tenant): Does this organization pay for the 'Finance' feature?
- Permission (User): Does this individual have the 'Accountant' role?
If either is False, the node is pruned from the manifest at the Context Port level.
V1 UX Mandate: "Engagement Expectation"
We are looking for UX designers to define the UI Grammar, not just the UI Styles. The engagement should result in:
- Composition Rules: How nodes merge when multiple apps (e.g., Core + India Compliance) are installed.
- Navigation Patterns: How a user flows from a 'Landing' page to a specific 'DocType' without feeling a "cliff" between different app styles.
- Protocol Mappings: Defining the data structures required in the
SidebarManifestto enable rich, conditional UI states.
[!IMPORTANT] The designers shouldn't just "design a sidebar." They should design the logic of a sidebar that can handle 100+ dynamic resources.