From 64d0fec5476fac37191b2f8a4011fffac028e30d Mon Sep 17 00:00:00 2001 From: Bernard Siebens Date: Fri, 21 Aug 2026 23:08:32 +0200 Subject: [PATCH] Switch the mobile app's icons to lucide, matching management/controlpanel Every icon in mobile/templates/mobile/ was a hand-rolled inline with raw path data -- management and controlpanel have used django-lucide throughout instead (confirmed already 100% consistent there, audited as part of this change). django-lucide is a pure server-side Python tag with no JS/CDN runtime dependency, so this is a drop-in swap producing the same kind of literal markup mobile already wrote by hand, just pulled from the shared vendored icon set instead of duplicated per call site. Mapped each shape to its nearest Lucide name: bell, house ("home" doesn't exist as a lucide name -- confirmed by hand), calendar, newspaper, user, users, chevron-left, chevron-right, check, x. Hardcoded hex strokes (#0b1220, #fff) became stroke="currentColor" + a text-ink/ text-white class, matching how every other icon in this app already gets its color. Also caught and fixed a hx-boost gap while touching coach/base.html: the coach tab bar's own "Me" link (-> mobile:me, a Member-shell view) was missing the hx-boost="false" every other cross-shell link already got. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9 --- mobile/templates/mobile/base.html | 12 ++++++------ .../templates/mobile/calendar_feed_settings.html | 4 ++-- mobile/templates/mobile/coach/attendance.html | 6 +++--- mobile/templates/mobile/coach/base.html | 13 +++++++++---- mobile/templates/mobile/edit_profile.html | 4 ++-- mobile/templates/mobile/event_detail.html | 4 ++-- mobile/templates/mobile/home.html | 4 ++-- mobile/templates/mobile/me.html | 16 ++++++++-------- mobile/templates/mobile/news_detail.html | 4 ++-- mobile/templates/mobile/payments.html | 4 ++-- 10 files changed, 38 insertions(+), 33 deletions(-) diff --git a/mobile/templates/mobile/base.html b/mobile/templates/mobile/base.html index e4e1ee8..8e0ee3b 100644 --- a/mobile/templates/mobile/base.html +++ b/mobile/templates/mobile/base.html @@ -1,4 +1,4 @@ -{% load static i18n %} +{% load static i18n lucide %} {% comment %} App shell for Member mode (M1-M7) -- design_handoff_rosterchief_platform/README.md. @@ -78,7 +78,7 @@
- + {% lucide "bell" size=21 class="text-white" %} {% if unread_notification_count %} {% if unread_notification_count > 9 %}9+{% else %}{{ unread_notification_count }}{% endif %} @@ -111,19 +111,19 @@ diff --git a/mobile/templates/mobile/calendar_feed_settings.html b/mobile/templates/mobile/calendar_feed_settings.html index 773d4c9..07dfa48 100644 --- a/mobile/templates/mobile/calendar_feed_settings.html +++ b/mobile/templates/mobile/calendar_feed_settings.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M5's "Calendar sync" row -- subscribe an external calendar app (Apple/ @@ -12,7 +12,7 @@ {% block content %}
- + {% lucide "chevron-left" size=20 stroke_width=2.4 class="text-ink" %} {% trans "Calendar sync" %}
diff --git a/mobile/templates/mobile/coach/attendance.html b/mobile/templates/mobile/coach/attendance.html index 788f81b..b4bc2f8 100644 --- a/mobile/templates/mobile/coach/attendance.html +++ b/mobile/templates/mobile/coach/attendance.html @@ -1,5 +1,5 @@ {% extends "mobile/coach/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} C2 -- design_handoff_rosterchief_platform/README.md's C2 section: check @@ -50,10 +50,10 @@
{% elif row.showed_up is not None %} diff --git a/mobile/templates/mobile/coach/base.html b/mobile/templates/mobile/coach/base.html index 1856332..1ccd23e 100644 --- a/mobile/templates/mobile/coach/base.html +++ b/mobile/templates/mobile/coach/base.html @@ -1,4 +1,4 @@ -{% load static i18n %} +{% load static i18n lucide %} {% comment %} App shell for Coach mode (C1-C6) -- design_handoff_rosterchief_platform/README.md's @@ -105,11 +105,16 @@ diff --git a/mobile/templates/mobile/edit_profile.html b/mobile/templates/mobile/edit_profile.html index 26eb61e..3562707 100644 --- a/mobile/templates/mobile/edit_profile.html +++ b/mobile/templates/mobile/edit_profile.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M6 -- design_handoff_rosterchief_platform/README.md's M6 section, "Edit @@ -17,7 +17,7 @@
- + {% lucide "chevron-left" size=20 stroke_width=2.4 class="text-ink" %} {{ member.get_full_name }} diff --git a/mobile/templates/mobile/event_detail.html b/mobile/templates/mobile/event_detail.html index fc5dadf..f16725f 100644 --- a/mobile/templates/mobile/event_detail.html +++ b/mobile/templates/mobile/event_detail.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M2 -- design_handoff_rosterchief_platform/README.md's M2 section, "answer @@ -21,7 +21,7 @@
- + {% lucide "chevron-left" size=20 stroke_width=2.4 class="text-white" %} {% if event.kind == "game" %}{% if event.is_home_game %}{% trans "Home game" %}{% else %}{% trans "Away game" %}{% endif %}{% else %}{{ event.get_kind_display }}{% endif %} diff --git a/mobile/templates/mobile/home.html b/mobile/templates/mobile/home.html index cdcd012..37e7461 100644 --- a/mobile/templates/mobile/home.html +++ b/mobile/templates/mobile/home.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M1 -- design_handoff_rosterchief_platform/README.md's M1 section. The @@ -20,7 +20,7 @@
- + {% lucide "users" size=12 stroke_width=2.4 %} {% trans "All" %} diff --git a/mobile/templates/mobile/me.html b/mobile/templates/mobile/me.html index 8f33f3a..64229d9 100644 --- a/mobile/templates/mobile/me.html +++ b/mobile/templates/mobile/me.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M5 -- design_handoff_rosterchief_platform/README.md's M5 section, "Me & @@ -60,7 +60,7 @@
{% endif %}
- + {% lucide "chevron-right" size=18 class="shrink-0 text-dim" %} {% endfor %}
@@ -74,13 +74,13 @@ {% if not forloop.first %}
{% endif %} - + {% lucide "users" size=20 stroke_width=2.4 %}
{{ assignment.team.name }}
{{ assignment.position }}
- + {% lucide "chevron-right" size=18 class="shrink-0 text-on-dark-dim" %}
{% endfor %} @@ -90,7 +90,7 @@
{% trans "Personal details" %} - + {% lucide "chevron-right" size=18 class="shrink-0 text-dim" %}
@@ -100,17 +100,17 @@ {% blocktrans count counter=open_dues_count %}{{ counter }} OPEN{% plural %}{{ counter }} OPEN{% endblocktrans %} {% endif %} - + {% lucide "chevron-right" size=18 class="shrink-0 text-dim" %}
{% trans "Notifications" %} - + {% lucide "chevron-right" size=18 class="shrink-0 text-dim" %}
{% trans "Calendar sync" %} - + {% lucide "chevron-right" size=18 class="shrink-0 text-dim" %}
diff --git a/mobile/templates/mobile/news_detail.html b/mobile/templates/mobile/news_detail.html index 616d1ef..aa039b0 100644 --- a/mobile/templates/mobile/news_detail.html +++ b/mobile/templates/mobile/news_detail.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M4 -- design_handoff_rosterchief_platform/README.md's M4 section, "News @@ -14,7 +14,7 @@
- + {% lucide "chevron-left" size=20 stroke_width=2.4 class="text-white" %} {% with team=news_item.teams.first %} diff --git a/mobile/templates/mobile/payments.html b/mobile/templates/mobile/payments.html index d5d38a4..2b54e66 100644 --- a/mobile/templates/mobile/payments.html +++ b/mobile/templates/mobile/payments.html @@ -1,5 +1,5 @@ {% extends "mobile/base.html" %} -{% load i18n %} +{% load i18n lucide %} {% comment %} M5's "Payments & dues" row -- every open season-dues balance across every @@ -12,7 +12,7 @@ {% block content %}