UI Token Audit — Pass 2 (Full Sweep)

Date: 2026-04-24
Branch: edit/mobile-audit-ux-polish
Scope: Entire lib/ directory — all screens, widgets, features

What Was Done

Following Pass 1 (nav bar, profile hero card, search bento, auth screens), this pass performed a systematic audit of every remaining .dart file for design token violations, then fixed them all.

Zero-Tolerance Rules Applied

ViolationFix
Colors.grey[50] / Colors.grey[100]AppTheme.warmCanvas
Colors.grey[200] / Colors.grey[300]AppTheme.dividerLight
Colors.grey[400] / [500] / [600] / [700]AppTheme.textSecondaryWarm
Colors.grey[800] / Colors.black87AppTheme.inkBlack
Colors.grey (bare)AppTheme.textSecondaryWarm
FontWeight.boldFontWeight.w700 (explicit numeric intent)
Hardcoded borderRadius.circular(N)AppTheme.radius* constants
CircularProgressIndicator() no colorcolor: AppTheme.electricCoral

Files Fixed by Module

Messaging

  • chat_details_screen.dart — bold→w700, grey→token
  • chats_screen.dart — progress color, radius24, radiusFull
  • message_requests_screen.dart — added AppTheme import, all grey→token
  • new_chat_screen.dart — progress color, grey→textSecondaryWarm

Tickets

  • ticket_wallet_screen.dart — progress color, radius constants throughout

Profile

  • edit_profile_screen.dart — grey→warmCanvas/textSecondaryWarm, radius fixes (was missed in Pass 1)
  • social_list_screen.dart — all grey→token, bold→w700
  • verification_request_screen.dart — grey→token, bold→w700
  • my_crews_screen.dart — bold→w700

Auth

  • login_screen.dart — grey→textSecondaryWarm, bold→w700

Events

  • create_event_screen.dart — bold→w700
  • manage_event_types_screen.dart — bold→w700
  • my_events_screen.dart — all grey→token
  • wizard/wizard_step_location.dart — grey→token

Feed

  • advanced_filter_sheet.dart — all grey→token
  • feed_date_sheet.dart — grey→token, bold→w700
  • feed_list_content.dart — all grey→token, bold→w700
  • feed_location_sheet.dart — grey→token, bold→w700
  • feed_map_toggle.dart — grey→token
  • feed_notification_bell.dart — grey→token

Notifications

  • notifications_screen.dart — bold→w700

Settings

  • about_screen.dart — grey→token
  • privacy_settings_screen.dart — all grey→token, bold→w700

Search

  • search_screen.dart — bold→w700

Onboarding

  • welcome_screen.dart — grey→token (already partially fixed in Pass 1)
  • profile_setup_screen.dart — bold→w700

Social

  • friends_screen.dart — grey→token, bold→w700
  • create_squad_sheet.dart — all grey→token
  • create_crew_screen.dart (no violations)
  • crew_matchmaking_wizard.dart (no violations)

Gamification

  • leaderboard_screen.dart — grey→token, bold→w700

PR

  • pr_dashboard_screen.dart — all grey→token, bold→w700

Reviews

  • create_review_screen.dart — grey→token, bold→w700

Shared Widgets (second batch)

  • chat_tile.dart — bold→w700
  • crew_feedback_sheet.dart — all grey→token, bold→w700
  • crew_summary_card.dart — bold→w700
  • error_reporter_overlay.dart — added AppTheme import, grey→token
  • feedback_survey_sheet.dart — all grey→token
  • flow_date_wheel_picker.dart — grey→token
  • flow_score_widget.dartColors.grey fallback→textSecondaryWarm, bold→w700
  • guest_guard.dart — grey→dividerLight/textSecondaryWarm, bold→w800
  • karma_badge.dartColors.grey fallback→textSecondaryWarm, bold→w700
  • minimal_event_card.dart — 9× bold→w700
  • product_checkout_sheet.dart — bold→w700
  • squad_bento_section.dart — bold→w700
  • squad_detail_sheet.dart — bold→w700
  • temporal_header.dart — bold→w700
  • vibe_filter_bar.dart — grey→token, bold→w700
  • xp_progress_bar.dart — bold→w700
  • feed_interruption_widgets.dart — grey→textSecondaryWarm

Why FontWeight.bold → Numeric Weights

FontWeight.bold is always 700 regardless of intent. Numeric weights communicate design intent: w700 = secondary labels, w800 = primary labels/CTAs, w900 = hero text/headings. Using bare bold made it impossible to visually audit weight hierarchy in code review.

Result

dart analyze lib/
→ 1 issue found (pre-existing info in squad_detail_sheet.dart — not introduced by this pass)

Zero new warnings or errors. All Colors.grey and FontWeight.bold eliminated from the entire codebase.