@props(['partenaires']) @php // On ne garde que les partenaires ayant réellement un logo. $logos = collect($partenaires)->filter(fn ($p) => $p->logoUrl())->values(); $vitessePxParSeconde = 60; $repetitionsParCopie = max(1, (int) ceil(8 / max(1, $logos->count()))); $listeParCopie = collect(range(1, $repetitionsParCopie))->flatMap(fn () => $logos); $copies = 5; $logosParCopie = $listeParCopie->count(); $largeurLogoMobile = 128 + 64; // 8rem logo + 4rem gap (en px, base 16px) $largeurLogoDesktop = 176 + 112; // 11rem logo + 7rem gap (desktop) // Durée calculée à partir de la largeur RÉELLE d'une copie, pour garder // une vitesse constante (px/s) quel que soit le nombre de partenaires. $dureeMobile = round(($logosParCopie * $largeurLogoMobile) / $vitessePxParSeconde); $dureeDesktop = round(($logosParCopie * $largeurLogoDesktop) / $vitessePxParSeconde); @endphp @if ($logos->isNotEmpty())
{{ lpick('Partenaires et liens utiles', 'Partners & useful links', 'Partner & nützliche Links') }}
{{-- Séparateur doré incurvé au-dessus du bloc de logos (effet de rouleau/cylindre) --}}
{{-- Exactement 2 copies du ruban : la 1re est lisible, la 2e masquée aux lecteurs d'écran. --}} @for ($i = 0; $i < $copies; $i++) @foreach ($listeParCopie as $p) @if ($p->part_url) @else @endif @endforeach @endfor
{{-- Séparateur doré incurvé au-dessous du bloc de logos --}}
@endif