feat(privat/CV): sync to latest upstream (cv-upstream/main, 30f9608b)

This commit is contained in:
2026-07-07 15:20:55 +02:00
parent 8ac664d33d
commit a4efabbc60
417 changed files with 48564 additions and 712 deletions
@@ -0,0 +1,36 @@
import React from 'react'
import './LogoMarquee.css'
/**
* Scrolling logo marquee showing clients/partners/media.
* Supports variant="dark" (default) and variant="light" for visibility of different logo colors.
*/
export default function LogoMarquee({ logos = [], title = '', titleAccent = '', variant = 'dark' }) {
if (logos.length === 0) return null
// Duplicate logos for seamless loop
const allLogos = [...logos, ...logos, ...logos]
return (
<section className={`marquee-section marquee-${variant}`}>
{(title || titleAccent) && (
<h2 className="marquee-title section-title">
{title} {titleAccent && <span className="text-gradient">{titleAccent}</span>}
</h2>
)}
<div className="marquee-track">
<div className="marquee-inner">
{allLogos.map((logo, i) => (
<div className="marquee-item" key={i}>
{logo.src ? (
<img src={logo.src} alt={logo.name} />
) : (
<span className="marquee-text-logo">{logo.name}</span>
)}
</div>
))}
</div>
</div>
</section>
)
}