By · Updated

Logo Scroller

Pure CSS Seamless Logo Strip With Faded Edges, Pause on Hover and Reduced Motion

No ratings yet

OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.

How the Logo Scroller works

A logo scroller is the strip of customer or partner logos that glides sideways across a landing page without end. This logo scroller generator writes it in pure CSS: enter the names, set the speed, gap and direction, and copy the HTML and CSS.

The strip shows social proof without taking much room, which is why it usually sits just under the hero section. Moving logos catch the eye, and the loop means you can show more names than would fit across the screen at once.

How the logo scroller loops

The list of logos appears twice in a row inside one flex track. The track moves left by exactly half its own width, which is the width of one full set, and then the animation starts again. At that moment the second set sits exactly where the first one started, so the jump cannot be seen. The spacing is padding on each logo rather than a flex gap, so both halves are exactly equal and the loop stays seamless.

Accessibility

The copied set is marked aria-hidden, so screen readers read each name once. Pause on hover lets visitors stop the motion, and anyone with reduced motion turned on sees a still, centred row of logos instead of a moving strip.

FAQ

How do I use images instead of text?

Replace the text inside each list item with an <img> that has a fixed height, such as 32 pixels, and alt text naming the company. Give the images in the copied set an empty alt="" as well as keeping aria-hidden on their list items.

Why is there a gap or jump in my loop?

The two halves of the track are not the same width. That happens when a gap is added to the flex container, when the second set is missing a logo, or when images load at different sizes. Keep the spacing as padding on the items and give images a fixed width and height.

How fast should a logo scroller move?

Slow enough to read each name. About 30 to 40 seconds per loop suits eight logos; with more logos, raise the time so the speed stays the same. Fast marquees feel busy and are harder to read.

What if I only have three or four logos?

One set must be wider than the screen for the loop to look full. With only a few logos, repeat the list two or three times inside each half, or use a static logo wall instead of a scroller.

See also: all UI Components tools, Layout & Spacing, Shadows & Motion, Shapes & SVG, Forms & Inputs, Colour.

Related tools