From 48d65c2ab9fefd9581a5f47fd64aadd77c225190 Mon Sep 17 00:00:00 2001 From: Allison Date: Tue, 28 Apr 2026 11:04:34 -0400 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=C3=A9purer=20les=203=20section?= =?UTF-8?q?s=20=E2=80=94=20pas=20de=20backdrop=20tiles,=20ic=C3=B4nes=20br?= =?UTF-8?q?and-b1=20+=20watermark=20grad-text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Solution pillars (3 cards) : retirer le bloc icône — ne garder que h3 + p - Bento macro : supprimer la tuile grad-bg, rendre l'icône directement en text-brand-b1, watermark passe à grad-text opacity-20 (famille bleu marque, plus visible que white/[0.04]) - Conformité forteresse (4 cards) : supprimer la tuile grad-bg, rendre l'icône en text-brand-b1 - Bumper toutes les icônes bento (landing + fonctionnalites + default macro) et conformité de w-5 h-5 → w-7 h-7 maintenant qu'elles n'ont plus de backdrop - Mettre à jour test_bento_uses_flexihub_styling pour refléter la nouvelle structure (grad-text opacity-20 + text-brand-b1 mb-4 au lieu de white/[0.04] + grad-bg rounded-none) Co-Authored-By: Claude Opus 4.7 (1M context) --- templates/macros/bento.html | 6 +++--- templates/marketing/fonctionnalites.html | 12 ++++++------ templates/marketing/landing.html | 25 +++++++++++------------- tests/test_marketing_landing_template.py | 8 +++++--- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/templates/macros/bento.html b/templates/macros/bento.html index 3fd8687..1441621 100644 --- a/templates/macros/bento.html +++ b/templates/macros/bento.html @@ -5,11 +5,11 @@ The default is a small inline sparkle SVG to avoid any emoji fallback. #} {% macro bento_card(number, title, description, icon=None, span='1') %} {%- set span_classes = {'1': 'col-span-1', '2': 'sm:col-span-2', '3': 'sm:col-span-2 md:col-span-3'} -%} -{%- set default_icon = '' -%} +{%- set default_icon = '' -%}
- +
- +

{{ title | safe }}

{{ description | safe }}

diff --git a/templates/marketing/fonctionnalites.html b/templates/marketing/fonctionnalites.html index 864b33e..5db8b60 100644 --- a/templates/marketing/fonctionnalites.html +++ b/templates/marketing/fonctionnalites.html @@ -26,12 +26,12 @@ When editing, sync both files. Future refactor: extract to _partials/_bento_features.html. Icon SVGs (heroicons-style outline) are inlined directly because the macro renders `icon | safe`. #} {% from 'macros/bento.html' import bento_card %} - {%- set icon_microphone = '' -%} - {%- set icon_users = '' -%} - {%- set icon_document = '' -%} - {%- set icon_chat = '' -%} - {%- set icon_export = '' -%} - {%- set icon_plug = '' -%} + {%- set icon_microphone = '' -%} + {%- set icon_users = '' -%} + {%- set icon_document = '' -%} + {%- set icon_chat = '' -%} + {%- set icon_export = '' -%} + {%- set icon_plug = '' -%}
{{ bento_card('01', 'Transcription WhisperX', 'Large-v3 fine-tuné FR-CA. Précision 95 %+ sur réunions, dictées, audiences (méthodologie disponible sur demande).', icon_microphone) }} {{ bento_card('02', 'Diarisation 8 locuteurs', 'pyannote sépare automatiquement les intervenants. Identification par embeddings vocaux.', icon_users) }} diff --git a/templates/marketing/landing.html b/templates/marketing/landing.html index 381e978..93af585 100644 --- a/templates/marketing/landing.html +++ b/templates/marketing/landing.html @@ -179,9 +179,6 @@ ('Précision FR-CA', 'WhisperX Large-v3 fine-tuné français québécois. Diarisation pyannote 8 locuteurs. Résumés Mistral 7B local — aucune connexion OpenAI/Google/Microsoft.') ] %}
-

{{ pillar[0] | safe }}

{{ pillar[1] | safe }}

@@ -204,12 +201,12 @@ When editing, sync both files. Future refactor: extract to _partials/_bento_features.html. Icon SVGs (heroicons-style outline) are inlined directly because the macro renders `icon | safe`. #} {% from 'macros/bento.html' import bento_card %} - {%- set icon_microphone = '' -%} - {%- set icon_users = '' -%} - {%- set icon_document = '' -%} - {%- set icon_chat = '' -%} - {%- set icon_export = '' -%} - {%- set icon_plug = '' -%} + {%- set icon_microphone = '' -%} + {%- set icon_users = '' -%} + {%- set icon_document = '' -%} + {%- set icon_chat = '' -%} + {%- set icon_export = '' -%} + {%- set icon_plug = '' -%}
{{ bento_card('01', 'Transcription WhisperX', 'Large-v3 fine-tuné FR-CA. Précision 95 %+ sur réunions, dictées, audiences (méthodologie disponible sur demande).', icon_microphone) }} {{ bento_card('02', 'Diarisation 8 locuteurs', 'pyannote sépare automatiquement les intervenants. Identification par embeddings vocaux.', icon_users) }} @@ -403,10 +400,10 @@ {# 4 conformity pillars — dark cards with grad-bg icon corners (matches Solution pillars style). Icons (heroicons-style outline): map-pin (Québec), scale (Loi 25), building-library (LGGRI), code-bracket (AGPL). #} - {%- set svg_pin = '' -%} - {%- set svg_scale = '' -%} - {%- set svg_building = '' -%} - {%- set svg_code = '' -%} + {%- set svg_pin = '' -%} + {%- set svg_scale = '' -%} + {%- set svg_building = '' -%} + {%- set svg_code = '' -%}
{% for card in [ { @@ -431,7 +428,7 @@ } ] %}
- +

{{ card.title | safe }}

{{ card.desc | safe }}

diff --git a/tests/test_marketing_landing_template.py b/tests/test_marketing_landing_template.py index b20f7b3..8933eac 100644 --- a/tests/test_marketing_landing_template.py +++ b/tests/test_marketing_landing_template.py @@ -261,14 +261,16 @@ def test_bento_has_6_features(): def test_bento_uses_flexihub_styling(): - """Bento uses FlexiHub spec: max-w-[1060px], gap-[1.5px], bg-brand-navy2, /[0.04] watermark.""" + """Bento uses FlexiHub spec: max-w-[1060px], gap-[1.5px], bg-brand-navy2, grad-text watermark.""" client = app.test_client() body = client.get('/').data.decode('utf-8') assert 'max-w-[1060px]' in body, "Missing FlexiHub bento container width 1060px" assert 'gap-[1.5px]' in body, "Missing FlexiHub ultrafin separator gap" assert 'bg-brand-navy2' in body, "Missing dark card background" - assert 'text-white/[0.04]' in body, "Missing FlexiHub watermark opacity" - assert 'grad-bg rounded-none ' in body, "Missing gradient icon corner (V3 brutalist square)" + # Watermark numbers now use grad-text + opacity-20 (brand blue family) instead of barely-visible white/[0.04] + assert 'grad-text opacity-20' in body, "Missing brand-tinted watermark (grad-text opacity-20)" + # Bento icons render directly with text-brand-b1 (no grad-bg backdrop tile) + assert 'text-brand-b1 mb-4' in body, "Missing brand-blue icon color on bento cards" def test_bento_responsive_grid():