Skip to content

Commit da219e9

Browse files
committed
docs: mdi icons
1 parent 8f5e8c3 commit da219e9

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Scuba Tank Icon Replacement
2+
3+
**Issue:** [submersion-app/submersion#109](https://github.com/submersion-app/submersion/issues/109)
4+
**Date:** 2026-03-31
5+
6+
## Problem
7+
8+
The current tank icon (`Icons.propane_tank`) resembles a BBQ propane tank rather
9+
than a scuba tank. This is a cosmetic issue that affects the app's domain
10+
authenticity for divers.
11+
12+
## Solution
13+
14+
Replace `Icons.propane_tank` with `MdiIcons.divingScubaTank` from the
15+
`material_design_icons_flutter` package. This icon is designed in Material Design
16+
style and depicts an actual scuba tank.
17+
18+
## Approach: MDI Community Package
19+
20+
The `material_design_icons_flutter` package is the community extension of
21+
Google's Material Design icon set. It provides 7000+ icons following the same
22+
design language. Flutter tree-shakes unused glyphs, so bundle size impact is
23+
minimal.
24+
25+
## Changes
26+
27+
### 1. Add Dependency
28+
29+
Add `material_design_icons_flutter` to `pubspec.yaml` under `dependencies`.
30+
31+
### 2. Replace Icon References (~21 locations)
32+
33+
Replace all `Icons.propane_tank` references with `MdiIcons.divingScubaTank`.
34+
35+
**Affected files:**
36+
37+
| File | Context |
38+
|------|---------|
39+
| `lib/features/tank_presets/presentation/pages/tank_presets_page.dart` | Tank list icons (filled + outlined toggle) |
40+
| `lib/features/statistics/presentation/pages/statistics_gas_page.dart` | Gas statistics section icons |
41+
| `lib/features/dive_planner/presentation/widgets/plan_tank_list.dart` | Dive planner tank list |
42+
| `lib/features/dive_planner/presentation/widgets/gas_results_panel.dart` | Gas results display |
43+
| `lib/features/dive_log/presentation/widgets/cylinder_sac_card.dart` | Per-cylinder SAC metrics |
44+
| `lib/features/dive_log/presentation/pages/dive_search_page.dart` | Search filter icons |
45+
| `lib/features/dive_log/presentation/pages/dive_detail_page.dart` | Dive detail tank sections |
46+
| `lib/features/dive_log/presentation/pages/dive_edit_page.dart` | Dive edit tank sections |
47+
| `lib/features/equipment/presentation/widgets/equipment_list_content.dart` | Equipment type icon mapping |
48+
| `lib/features/equipment/presentation/pages/equipment_detail_page.dart` | Equipment detail icon mapping |
49+
| `lib/features/equipment/presentation/pages/equipment_set_detail_page.dart` | Equipment set detail icon mapping |
50+
| `lib/features/equipment/presentation/pages/equipment_set_edit_page.dart` | Equipment set edit icon mapping |
51+
| `lib/features/settings/presentation/pages/appearance_page.dart` | Settings icon |
52+
| `lib/features/settings/presentation/pages/settings_page.dart` | Settings icon |
53+
54+
### 3. Outlined Variant Handling
55+
56+
The tank presets page toggles between `Icons.propane_tank` and
57+
`Icons.propane_tank_outlined` based on edit state. If MDI does not provide a
58+
separate outlined variant of `divingScubaTank`, use the filled variant in both
59+
states -- the edit/view state is already conveyed by other UI cues.
60+
61+
### 4. Event Icon String
62+
63+
Update the `eventIconName` string for `ProfileEventType.lowGas` in
64+
`lib/core/constants/enums.dart` from `'propane_tank'` to `'diving_scuba_tank'`
65+
for consistency. This string is used as a label reference on profile chart event
66+
markers, not resolved to `IconData`.
67+
68+
## Out of Scope
69+
70+
- Replacing any other Material icons with MDI equivalents
71+
- Creating custom icon variants (outlined, rounded, sharp)
72+
- Adding additional dive-specific icons beyond the tank

0 commit comments

Comments
 (0)