fix(marketing): button macro safety + placeholder assets + mobile login

- Button macro: variants/sizes use .get() with primary/md fallback (no KeyError),
  add as_button=True parameter for form submit CTAs (forms in B-2.2 signup,
  B-2.7 checkout)
- Header: drop hidden sm:inline-block on Connexion link so login is always
  visible from mobile (avoids UX dead-end before A-2.7 hamburger lands)
- Add placeholder static/images/favicon.svg (brand gradient + 'D')
- Add placeholder 1x1 PNG static/images/og/og-default.png (replaced in A-3.3
  with real 1200x630 branded OG image)
This commit is contained in:
Allison
2026-04-27 17:02:15 -04:00
parent 49bf94576c
commit 89e2fd29d1
5 changed files with 29 additions and 8 deletions

View File

@@ -1,15 +1,24 @@
{# Reusable button macro — primary (gradient + glow), secondary (white outline), ghost (transparent on dark) #}
{%- macro button(text, href='#', variant='primary', size='md', icon=None, target=None, rel=None) -%}
{%- set classes = {
{# Reusable button macro. Variants: primary | secondary | ghost (default: primary). Sizes: sm | md | lg (default: md). #}
{%- macro button(text, href='#', variant='primary', size='md', icon=None, target=None, rel=None, as_button=False, type='button') -%}
{%- set variants = {
'primary': 'grad-bg shadow-cta hover:shadow-cta-hover hover:-translate-y-px',
'secondary': 'bg-white text-brand-navy border border-brand-border hover:bg-brand-bg',
'ghost': 'text-white border border-white/[0.08] hover:bg-white/[0.05]'
}[variant] -%}
{%- set sizing = {
} -%}
{%- set sizes = {
'sm': 'px-3 py-1.5 text-sm',
'md': 'px-5 py-2.5 text-[15px]',
'lg': 'px-6 py-3 text-base'
}[size] -%}
} -%}
{%- set classes = variants.get(variant, variants['primary']) -%}
{%- set sizing = sizes.get(size, sizes['md']) -%}
{%- if as_button -%}
<button type="{{ type }}"
class="inline-flex items-center justify-center gap-2 rounded-[0.75rem] font-semibold transition-all duration-200 {{ classes }} {{ sizing }}">
<span>{{ text }}</span>
{%- if icon -%}<span class="ml-0.5" aria-hidden="true">{{ icon | safe }}</span>{%- endif -%}
</button>
{%- else -%}
<a href="{{ href }}"
class="inline-flex items-center justify-center gap-2 rounded-[0.75rem] font-semibold transition-all duration-200 {{ classes }} {{ sizing }}"
{% if target %}target="{{ target }}"{% endif %}
@@ -17,4 +26,5 @@
<span>{{ text }}</span>
{%- if icon -%}<span class="ml-0.5" aria-hidden="true">{{ icon | safe }}</span>{%- endif -%}
</a>
{%- endif -%}
{%- endmacro -%}

View File

@@ -51,7 +51,7 @@
</nav>
<div class="flex items-center gap-3">
<a href="/login" class="hidden sm:inline-block text-sm font-medium text-white/80 hover:text-white">Connexion</a>
<a href="/login" class="text-sm font-medium text-white/80 hover:text-white">Connexion</a>
{% from 'macros/button.html' import button %}
{{ button('Démarrer →', href='/signup', variant='primary', size='sm') }}
</div>