shadcn.io is not affiliated with official shadcn/ui
Dual Row Marquee Logos Block for React
Two rows of customer wordmarks for a camera-security service, scrolling in opposite directions at one calm speed under a centred header, with a button that pauses both.
Installation
Overview
A two-row logo marquee for React with Base UI. Under a centred header, sixteen customer wordmarks scroll in two rows, the first one way and the second the other, at the same calm speed and fading out at both ends. A small button at the end of the header pauses both rows. The rows share one band: its top rule and a hairline between the rows meet the page rails at + marks, and the second row ends the block so the next block's top rule closes it. Each wordmark is an icon and a name in its own lettering, muted until hovered. It's built from Marquee, Button and Guides, with CSS for the entrance and your theme's tokens for every colour. For a landing page that wants to look busy with customers without a wall of logos.
FAQ
How do I change the customers?
Edit FIRST_ROW and SECOND_ROW at the top of the file: each entry is a Lucide icon, a name, a lettering (the name's type classes) and a mark (inline, badge, ring or trailing, where the icon sits). Keep eight or more per row: the rows fill the width on their own, but a shorter row would show the same logo twice at once. Neighbours should differ in lettering and mark.
How do I change the speed?
Change SPEED (pixels a second, 28 by default); both rows read it. Give a row its own number if you want them to drift apart, and flip a row's direction with its reverse prop.
How does it stop?
Four ways: the pause button in the header (a toggle with aria-pressed that stops both rows), hovering a row, moving keyboard focus into a row, and the visitor's reduced-motion setting. With reduced motion both rows stop and become rows you can scroll by hand, the looping copies are removed, and the pause button is hidden because there is nothing left to pause.
How is it marked up for screen readers?
Each row is a region named "Customer logos, first row" or "second row". The first copy is the real content: each wordmark has the customer's name as text and a decorative icon. The repeated copies that make the loop are hidden from assistive technology and can't be focused. The header's h2 is the block's only heading.
Related
- Pro
Row Labels Dual Marquee Logos
Multi-row marqueesTwo rows of customers of a factory-scheduling service, each a band with an Aerospace or Automotive label cell at the start, divided from the moving logos by a hairline.
- Pro
Fast and Slow Dual Marquee Logos
Multi-row marqueesTwo depths of customer wordmarks for a barrel-tracking service: large names drifting slowly in front, small ones three times as fast behind, in opposite directions.
- Pro
Mixed Variants Dual Marquee Logos
Multi-row marqueesTwo rows of customers of a returns-management service in two kinds of logo: wordmarks on top and icon-only tiles on a tinted band below, moving in opposite directions.
- Pro
Triple Row Marquee Logos
Multi-row marqueesThree rows of customer wordmarks for a carbon-credit registry, alternating direction, with a larger, darker, quicker middle row between two smaller, quieter, slower ones.
- Pro
Single Row Marquee Logos
MarqueesA centred heading for a secure-messaging tool over one row of large customer wordmarks in a ruled band, with a pause button in a cell of its own at the end.
- Pro
Logo Marquee Hero
Logos and social proofA compact hero for a support platform: copy and two calls to action, then two bands across the column: a strip of customer logos that scrolls on its own with a pause button, and a row of three stats.