Magoo Component UI logo Magoo Component UI
← Catalog

Client Marquee

client-marquee molecule experimental

A continuously auto-scrolling strip of muted client logos that pauses on hover and respects reduced motion.

The width preview needs a screen wider than the chosen width — use a larger device (or a desktop browser) to see the desktop and tablet layouts.

Default
NikeAdidasDecathlonForbesDiscover
Fast
ForbesDiscoverNikeAdidasDecathlon

Props

NameTypeReq
logos array ✓
speed enum (slow | normal | fast)
label string

Related components

How to use

behavior.js drives the scroll with requestAnimationFrame — there is no CSS keyframe. It reads data-speed from the root, translates the .client-marquee__track each frame to the left, and wraps the offset by the width of the first .client-marquee__group so the two duplicated groups tile seamlessly. It pauses on hover and focus-within and does not animate at all when prefers-reduced-motion is set. The portable self-init reads all config from data-* attributes — no props object is passed. Because screenshots do not run behavior.js, the strip renders static (at its start position) in captured images.

Use cases

media WCAG AA SEO 25 dir: both ai-generated