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