{% extends "management/base.html" %} {% load i18n lucide ui %} {% comment %} A club's own self-service identity/branding editor -- see management/forms.py's ClubSettingsForm for exactly which fields are editable here versus platform-staff-only (slug, seasons). D9 "Club identity & branding" in the design handoff is the reference, followed closely for the Colours card (merged swatch+hex row, side-by-side contrast-check boxes) and the Logo card (dashed drop zone) -- markup pulled straight from the design canvas (RosterChief Platform.dc.html), not the prose summary. The live preview is scoped to surfaces that are (or will genuinely be) this app rather than D9's aspirational App/ Website/Email tabs: the sidebar mock is what primary_color/secondary_color affect today (base.html's --tenant-* custom properties); the phone mock is the same colours applied ahead of the mobile app being built. The colour math (content colour, contrast ratio) mirrors Club._content_color_for exactly, so what's shown is the real number the server computes on save, not an approximation. {% endcomment %} {% block panel_title %}{% trans "Club identity" %}{% endblock panel_title %} {% block heading %}{% trans "Club identity" %}{% endblock heading %} {% block actions %} {% endblock actions %} {% block panel %}
{% csrf_token %} {% for error in form.non_field_errors %}
{% lucide "circle-x" size=18 %} {{ error }}
{% endfor %}
{% lucide "building-2" size=16 %} {% trans "Club" %}
{% form_field form.name %} {% form_field form.legal_name %} {% form_field form.contact_email %} {% form_field form.website %}
{% lucide "palette" size=16 %} {% trans "Colours" %}
{% trans "Accents only" %}
{{ form.primary_color.label|capfirst }}
{% if form.primary_color.errors %}

{{ form.primary_color.errors|join:" " }}

{% endif %}
{{ form.secondary_color.label|capfirst }}
{% if form.secondary_color.errors %}

{{ form.secondary_color.errors|join:" " }}

{% endif %}
{% trans "Contrast check" %}
{% lucide "image" size=16 %} {% trans "Logo" %}
{% trans "Crest" %}
{% if club.logo %} {% else %} {{ club.initials }} {% endif %}
{% form_field form.logo %}
{% lucide "eye" size=16 %} {% trans "Live preview" %}

{% trans "Where these colours actually show up -- updates as you edit, before you save anything." %}

{% trans "Management app" %}
{{ club.initials|default:"CL" }}
{{ club.name|default:_("Your club") }}
{% trans "Overview" %}
{% trans "Members" %}
{% trans "Calendar" %}
{% trans "New member" %}
{% trans "Mobile app" %}
{% trans "Coming soon" %}
{{ club.initials|default:"CL" }} {{ club.name|default:_("Your club") }}
{% trans "Member" %} {% trans "Coach" %}
{% trans "Next up" %}
{% trans "U16 vs Leuven" %}
{% trans "Never used for: status colours (paid/overdue, present/absent), table styling, or form fields -- those stay consistent for everyone regardless of club branding." %}
{% endblock panel %} {% block extra_body %} {% endblock extra_body %}