Dual-layer responsiveness: display-level adaptability combined with server-side platform detection.

Platform → UI TechnologyClients | WebAssembly | Symbols | Drawing | Responsive | Layouts


Two-Layer Responsive Architecture

FrameworX implements responsiveness at two distinct levels: display-level resize behavior (how content adapts within a display) and server-side responsive selection (RESS - which displays are delivered to each platform).

This dual approach enables true "build once, run everywhere" capability while optimizing for each device class.


Overview

Display Responsiveness

Both dashboards and canvas displays have customizable responsiveness. They can stretch proportionately to the client area, maintaining the spatial relationship of objects, or reposition objects internally.

The configuration of this behavior is defined at the Display-Level using the OnResize property of the displays.

Responsive Design & RESS

Responsive Design + Server-Side Components (RESS) delivers optimal user experience across all devices.

The configuration of this behavior is implemented at the Layout-Level; the internal displays remain the same:

  • Build-once: Share display configurations across multiple device types
  • Run everywhere: Identifies the client device and delivers content with the proper layout

Server Side Layouts

Desktop Layout  (Native or Web) 

Mobile Layout


Display-Level Responsiveness (OnResize)

Every display—whether created with Canvas or Dashboard drawing tools—has configurable resize behavior through the 

OnResize property:

OnResize ModeBehaviorUse CaseTypical For
StretchUniformScales maintaining aspect ratioComplex diagrams, P&IDsCanvas (default)
StretchFillFills space, may distortBackgrounds, simple graphicsRare
ResponsiveElements reposition/resize individuallyData displays, formsDashboard (default)
ResizeChildrenAll elements scale proportionallyMaintain exact layoutCanvas alternative
NoActionFixed size, may clipFixed-size panelsSpecial case

Important: Canvas vs Dashboard is about the drawing method, not responsiveness. A Canvas display can be responsive, and a Dashboard display can use StretchUniform. The drawing tool determines how you position objects during design; OnResize determines runtime behavior.

Responsive Canvas

When a Canvas display uses OnResize="Responsive", individual elements can be configured to:

  • Maintain fixed margins from edges
  • Scale width/height proportionally
  • Anchor to specific sides
  • Combine fixed and proportional sizing

Example: A sidebar that maintains fixed width while content area expands.

Dashboard Responsiveness

Dashboard displays inherently support grid-based responsiveness:

  • Grid cells redistribute based on available space
  • Content within cells follows cell boundaries
  • Automatic conversion to vertical stack on mobile portrait


Defaults:
- Canvas displays default to StretchUniform - preserving diagram integrity
- Dashboard displays default to Responsive - adapting to screen size


Server-Side Responsive (RESS)

RESS (Responsive + Server-Side) adds intelligence before content delivery. The server identifies the client type and sends optimized content.

Responsive Design + Server-Side Components (RESS) delivers optimal user experience across all devices:

  • Build-once: Share display configurations across multiple device types
  • Run everywhere: Identifies the client device and delivers content with the proper layout
  • Server Detection: Identifies device class (phone, tablet, desktop)
  • Optimized Delivery: Sends appropriate content and resources
  • Responsive Behavior: Maintains flexibility within device class
  • Reduced Engineering Time: All displays are shared by all layouts
  • Result: Fast loading with adaptive layouts

Client Detection

Client TypeDetection MethodTypical Delivery
Desktop NativeWPF client signatureFull interface, all regions
Desktop WebBrowser user agentFull interface, web-optimized
TabletScreen size + touchSimplified menu, touch controls
Mobile PortraitAspect ratio + sizeSingle column, essential only
Mobile LandscapeAspect ratio + sizeAdapted layout, larger controls

RESS Benefits

  • Reduced bandwidth - Only necessary resources sent
  • Faster loading - Optimized content for device
  • Better UX - Platform-appropriate interfaces
  • Single source - One configuration, multiple outputs



How Layers Work Together

The two responsive layers complement each other:

  1. Server decides WHAT - Which layout and displays to send
  2. Display decides HOW - How content adapts to screen changes

Example Workflow

StageDesktopMobile
1. Client connectsIdentifies as WPF clientIdentifies as mobile browser
2. Server selectsFull layout with all regionsMobile layout, header+content only
3. Display loadsP&ID with StretchUniformSimplified dashboard, Responsive
4. User resizesMaintains aspect ratioReflows to new orientation



Configuration Points

Display Level (OnResize)

Set in Display properties during design:

  • Choose resize mode per display
  • Configure responsive anchoring for Canvas
  • Test with preview at different sizes

Server Level (RESS)

Configure in Layouts:

  • Assign platform-specific displays
  • Define fallback options
  • Set region visibility per platform

Details in .




Design Strategies

Progressive Enhancement

  1. Design for smallest screen first (mobile)
  2. Add complexity for larger screens
  3. Use RESS to deliver appropriate version
  4. Let OnResize handle minor adjustments

Graceful Degradation

  1. Create full-featured desktop version
  2. Define simplified mobile alternatives
  3. RESS automatically selects based on client
  4. OnResize maintains usability during transitions



Best Practices


ScenarioRecommended Approach
Complex P&ID diagramCanvas with StretchUniform, desktop-only via RESS
KPI dashboardDashboard with Responsive, shared across platforms
Data entry formDashboard with Responsive, simplified mobile version
Equipment mimicCanvas with ResizeChildren, tablet/desktop only
Status overviewDashboard with Responsive, all platforms

In this section...