
# 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. |
