Chanora UI/UX Guideline — Material 3 Baseline
Version: 0.9.2
Status: Baseline Candidate
Language: English
Lifecycle support: Supports SysDes, SRS, SAD, SDD, and Verification
Design baseline: Material 3 + Chanora Design System
Repo path: docs/ui-ux/material3-guideline.md ---
1. Purpose
This guideline defines the UI and UX baseline for the Chanora Flutter application. Chanora shall use Material 3 as the foundation, but product-specific voice, channel, connection, latency, diagnostics, platform, and accessibility semantics shall be expressed through Chanora Design System components and tokens.
2. Core UI Principles
| Principle |
Requirement |
| Voice-first control |
Mute, deaf, push-to-talk, current channel, and input status must be visible or directly reachable. |
| Connection awareness |
Connected, connecting, reconnecting, disconnected, and error states must be visible. |
| Adaptive layout |
Layout must adapt by window class rather than hardcoding behavior by platform name. |
| Accessibility baseline |
Critical controls must have semantics, focus behavior, text scaling support, and non-color-only status expression. |
| Platform respect |
Permission, safe area, keyboard, back, haptic, and audio-route behavior must follow platform expectations. |
| Localization-ready |
Product-owned strings must be localized; server-provided content must be displayed as content. |
3. Primary Screens
| Screen |
Stage |
Purpose |
| Home |
P0 |
Recent servers, bookmarks, manual connect entry |
| Connect |
P0 |
Host, port, nickname, password, identity selection |
| Server |
P0 |
Channel tree, clients, connection status, current channel |
| Voice |
P0 |
Voice controls, input level, device summary |
| Chat |
P1 |
Channel text messages |
| Settings |
P0 |
Audio, UI, localization, platform behavior, shortcuts |
| Diagnostics |
P0 |
Status, redacted export, troubleshooting information |
4. Interaction Rules
| Area |
Rule |
| Channel tree |
Select, expand/collapse, join, context menu, keyboard traversal |
| Client tile |
Show speaking, mute/deaf, volume, latency when available |
| Voice controls |
Must be reachable with touch, mouse, and keyboard |
| Diagnostics |
Export must require explicit user action and show redaction notice |
| Settings |
Destructive or permission-changing actions require clear confirmation or explanation |
| Text entry |
Chat input must respect IME and keyboard safe areas |
5. Motion Rules
| Scenario |
Allowed behavior |
| Page transition |
Minimal fade or shared-axis style transition |
| Speaking indicator |
Subtle pulse, disabled or simplified under reduced motion |
| Reconnect banner |
Clear state transition without disruptive animation |
| Layout change |
Resize/reflow smoothly where possible |
| Error state |
Immediate, clear, non-color-only feedback |
6. Accessibility Rules
| Rule |
Baseline |
| Minimum target |
Critical controls should meet a 48dp target where practical. |
| Semantics |
Icon-only controls require labels. |
| Focus |
Desktop and tablet keyboard use require visible focus. |
| State expression |
Critical states require more than color. |
| Text scale |
Critical controls remain reachable under increased text size. |
| Reduced motion |
Non-essential animation is reduced or disabled. |
7. Internationalization UX
Product strings are localized. Server-provided server names, channel names, nicknames, and messages are not translated. Mixed-language and bidirectional text must be rendered as text content and preserved through diagnostics unless redacted.
8. Change History
| Version |
Date |
Description |
| 0.1.0 |
2026-05-14 |
Initial UI/UX guideline for Material 3, adaptive layout, accessibility, platform behavior, and i18n. |
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. |