Skip to content

UI Design

Last reviewed: March 15, 2026

Design direction

BeFam uses a warm light theme with strong contrast and large rounded surfaces to keep the app approachable for both younger and older users.

Theme and visual language

  • custom Material 3 color scheme in app/theme/app_theme.dart
  • primary tones: deep blue with cream/beige support surfaces
  • cards and sections use clear spacing and high readability over dense layouts

UX improvements now reflected in app

  • default locale is Vietnamese with full English fallback
  • OTP input uses six visual cells in a single horizontal row and auto-submits when six digits are entered
  • long forms are split into clearer sections with sticky action placement
  • member and genealogy screens prioritize human-readable copy and relationships
  • dual calendar card, month grid, and day tile layouts are tuned for large text and lower-end devices

Accessibility and resilience

  • large text compatibility and overflow hardening
  • generous tap targets and legible heading hierarchy
  • reduced cognitive load in home/auth copy
  • icon-only actions include explicit tooltips on core workspace screens
  • workspace loading states include readable progress messaging and live-region semantics via core/widgets/app_feedback_states.dart
  • calendar day tiles provide richer semantic labels for solar/lunar context and event counts

Empty/loading/error audit baseline

  • all major workspaces now render explicit loading states instead of spinner-only placeholders
  • no-context and empty states provide user-facing guidance in each module
  • retry actions are available on recoverable error states
  • runtime widget crashes show a fallback card UI instead of a broken frame

Content style

  • concise, direct wording for critical actions
  • status and guidance shown inline where needed
  • debug-only visual noise removed from production-facing screens

Planned billing UX principles:

  • transparent plan/price display with VAT-included wording
  • always-visible subscription expiry for clan owner/admin users
  • clear payment-mode control (auto-renew vs manual)
  • visible ad entitlement label by plan (Free/Base: ads, Plus/Pro: ad-free)
  • ad placements must be non-intrusive and excluded from sensitive flows
  • non-technical error messages for failed checkout/callback states