Logo Ticker
Horizontal marquee of club crests — seamless infinite scroll with pause-on-hover and soft edge fades. 37 px tiles with a 30 px gap; crests wear a soft drop shadow so they read on cream, navy, or image backgrounds. Pure CSS animation; respects prefers-reduced-motion. Only scrolls when the content actually overflows the container.
1 — Default — on Light
Eighty-second loop, pause on hover, soft edge fade. Default canvas is transparent so the drop-shadowed crests sit directly on whatever surface is below.
import { LogoTicker } from "@cpsl/ui"
<LogoTicker
logos={[
{ url: "/logos/charlotte-fc.svg", alt: "Charlotte FC" },
{ url: "/logos/raleigh-athletic.svg", alt: "Raleigh Athletic" },
// …
]}
heading="Member Clubs"
durationSeconds={80}
pauseOnHover
edgeFade
/>2 — On Dark Navy
Same component on the navy surface. The drop shadow softens but keeps the crests lifted off the background — pass the container color via sectionBackground so the edge fade matches.
3 — With heading
Optional eyebrow rendered above the marquee in Barlow Condensed, uppercase, 20 px. Inherits text colour from the parent section.
Member Clubs
4 — Reversed · Faster
Reverse direction with a shorter duration — useful for stacking two tickers travelling in opposite directions.