Skip to content

✨ feat(visual): transport icons overhaul and dark mode migration to M3 2025#9

Merged
MasuRii merged 1 commit intomainfrom
feature/visual-improvements-v2.4.0
Jan 1, 2026
Merged

✨ feat(visual): transport icons overhaul and dark mode migration to M3 2025#9
MasuRii merged 1 commit intomainfrom
feature/visual-improvements-v2.4.0

Conversation

@MasuRii
Copy link
Member

@MasuRii MasuRii commented Jan 1, 2026

📝 Summary

This PR implements comprehensive visual improvements for PH Fare Calculator v2.4.0, including a complete transport icon overhaul with unique icons for all 12 Philippine transport modes, dark mode migration to Material Design 3 2025 standards, and app logo configuration fixes.

✨ Changes

1. Transport Mode Icons - Unique Icons for All 12 Modes

  • Created TransportIconService with centralized icon management
  • All 12 transport modes now have unique icons (Jeepney, FX/Taxi, Bus, UV Express, Tricycle, Motorcycle, LRT Line 1, LRT Line 2, MRT Line 3, PNR, Ferry, and Airport Rail)
  • Added TransportIconStyle enum supporting 4 variants: filled, rounded, outlined, sharp
  • Updated 3 widgets to use the centralized service: fare_result_card.dart, fare_results_list.dart, transport_mode_selection_modal.dart
  • Added 51 comprehensive unit tests achieving 81.8% coverage

2. Dark Mode - 2025 Material Design 3 Standards

  • Migrated from #001216 (Abyss) to #121212 baseline
  • Implemented 7-layer surface container system (#161616 - #2C2C2C)
  • Eliminates halation and eye strain while maintaining OLED efficiency
  • WCAG AA compliant with 16:1 contrast ratios

3. App Logo - Fixed Configuration

  • Updated flutter_launcher_icons with correct asset paths
  • Regenerated native icons for Android (adaptive icons) and iOS
  • Background: Philippine Flag Blue (#0038A8)
  • Added colors.xml for Android color resources

Additional Improvements

  • Security: Fixed .env exposure by removing from assets, added null safety in fare_formula.dart
  • Documentation: Updated CHANGELOG.md and README.md
  • Version: Bumped to 2.4.0 in pubspec.yaml

📁 Files Changed

File Type Impact
lib/src/core/constants/transport_icon_style.dart ✨ New TransportIconStyle enum definition
lib/src/core/constants/transport_icons.dart ✨ New TransportIconService implementation (284 lines)
lib/src/core/theme/app_theme.dart 🐛 Fix Dark mode M3 migration, surface container system
lib/src/core/theme/transit_colors.dart ♻️ Refactor Color system updates
lib/src/models/fare_formula.dart 🐛 Fix Null safety improvements
lib/src/presentation/widgets/fare_result_card.dart ♻️ Refactor Updated to use TransportIconService
lib/src/presentation/widgets/main_screen/fare_results_list.dart ♻️ Refactor Updated to use TransportIconService
lib/src/presentation/widgets/main_screen/transport_mode_selection_modal.dart ♻️ Refactor Updated to use TransportIconService
pubspec.yaml 📦 Build Version bump to 2.4.0
android/app/src/main/res/drawable-*/ic_launcher_foreground.png ✨ New Android adaptive icon foregrounds
android/app/src/main/res/mipmap-anydpi-v26/ ✨ New Android adaptive icon configuration
ios/Runner/Assets.xcassets/AppIcon.appiconset/ 📦 Build Regenerated iOS app icons
test/services/transport_icon_service_test.dart 🚦 Test 51 unit tests (81.8% coverage)
CHANGELOG.md 📚 Docs v2.4.0 release notes
README.md 📚 Docs Updated documentation

🧪 Testing Performed

  • ✅ 422 tests passing across the test suite
  • ✅ 51 TransportIconService unit tests with 81.8% coverage
  • ✅ All existing functionality preserved
  • ✅ Dark mode WCAG AA compliant (16:1 contrast ratios)
  • ✅ Android adaptive icons verified
  • ✅ iOS app icon configuration verified

📋 Checklist for Reviewers

  • Transport icons render correctly for all 12 modes
  • Dark mode surfaces are consistent and comfortable
  • App logo displays correctly on both platforms
  • All tests pass
  • No regressions in existing functionality

🔗 Related Issues

This PR addresses the visual improvements milestone for v2.4.0 release.


Type: enhancement/feature
Breaking Changes: TransportIconService replaces hardcoded icon mappings (existing code using hardcoded icons will need migration)

…3 2025

- Implement TransportIconService with unique icons for all 12 Philippine transport modes
- Add TransportIconStyle enum with 4 variants (filled, rounded, outlined, sharp)
- Migrate dark mode to Material Design 3 #121212 baseline with 7-layer surface system
- Fix app logo configuration and regenerate native assets
- Add security fixes: remove .env from assets, null safety in fare_formula.dart
- Add 51 unit tests for TransportIconService (81.8% coverage)
- Update documentation and bump version to 2.4.0

BREAKING CHANGE: TransportIconService replaces hardcoded icon mappings
@MasuRii MasuRii merged commit 98d8514 into main Jan 1, 2026
10 checks passed
@MasuRii MasuRii deleted the feature/visual-improvements-v2.4.0 branch March 16, 2026 01:21
MasuRii added a commit that referenced this pull request Mar 16, 2026
…vements-v2.4.0

feat(visual): transport icons overhaul and dark mode migration to M3 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant