# Chanora Adaptive Layout and Platform Behavior Guide **Version:** 0.9.2 **Status:** Baseline Candidate **Language:** English **Repo path:** `docs/ui-ux/adaptive-layout-platform-guide.md` --- ## 1. Purpose This guide defines adaptive layout and platform behavior for the Chanora Flutter application. ## 2. Window Classes | Class | Width | Layout | |---|---:|---| | Compact | `< 600dp` | Single-column content with mobile navigation | | Medium | `600dp - 839dp` | Navigation rail or side navigation with main content | | Expanded | `>= 840dp` | Persistent side pane, main pane, and persistent VoiceBar | ## 3. Compact Layout - Use one primary content area. - Keep VoiceBar visible or directly reachable. - Keep connection status visible. - Use bottom navigation for primary destinations. - Avoid multi-pane assumptions. ## 4. Medium Layout - Use navigation rail or equivalent side navigation. - Keep primary content and VoiceBar available. - Use dialogs or side panels depending on width. ## 5. Expanded Layout - Use persistent side pane for server/channel navigation. - Use main pane for chat, details, or current feature content. - Keep VoiceBar persistent. - Support pointer, keyboard, hover, and context menus. ## 6. Android Platform Behavior - Runtime permissions must be explained before request where appropriate. - System back behavior is handled as a back intent. - Predictive back compatibility should be considered where supported. - Bluetooth and audio routing are handled by platform services. - Foreground voice behavior is handled according to Android platform rules. ## 7. iOS Platform Behavior - Microphone permission must be explained before request where platform guidelines allow. - Safe area, home indicator, keyboard avoidance, and route changes must be respected. - Audio session behavior must be handled through platform audio services. - Haptics should be restrained and meaningful. ## 8. Desktop Platform Behavior - Keyboard traversal is required for primary controls. - Tooltips and hover states should be supported. - Context menus should be supported for channel tree, client rows, and bookmarks. - Window resizing must not break critical controls. - Diagnostics export must use platform-appropriate file handling. ## 9. Change History | Version | Date | Description | |---|---|---| | 0.1.0 | 2026-05-14 | Initial adaptive layout and platform behavior guide. | ## Baseline Candidate 0.9.1 Update | Version | Date | Description | |---|---|---| | 0.9.1 | 2026-05-14 | Updated baseline after product decision closure: Apple App Store SDK gate uses Xcode 26+ and iOS 26 / iPadOS 26 SDK+ since 2026-04-28, platform baselines and decision traceability propagated across the document set. | ## Baseline Candidate 0.9.2 Update | Version | Date | Description | |---|---|---| | 0.9.2 | 2026-05-14 | Corrected Apple App Store Connect upload gate to 2026-04-28 and checked full-package naming, references, and coverage. |