Staggered logo columns that swap with fade, vertical shift, and motion blur. A React component.
Made by AxylInstallation
File Structure
Usage
Props
| Prop | Type | Default |
|---|---|---|
rows? | LogoCarouselSwapperRow[] | - |
interval? | number | 3000 |
stagger? | number | 0.12 |
columns? | number | 4 |
align? | "center" | "start" | "end" | "center" |
size? | "sm" | "default" | "lg" | "default" |
monochrome? | boolean | false |
className? | string | - |
LogoCarouselSwapperItem
| Prop | Type | Default |
|---|---|---|
src? | string | - |
alt? | string | - |
When to Use
Use LogoCarouselSwapper in social proof sections to showcase partner logos, client brands, or integration icons. The staggered swap animation draws the eye without being distracting, making it ideal for "As seen in" or "Trusted by" sections on landing pages.
Provide at least two full sets of logos to fill all columns on every cycle — otherwise vacant column slots during a swap look like a layout bug.
Accessibility
Each logo requires an alt text via the alt prop. The root element should receive an aria-label describing the section (e.g., "Partner logos"). When prefers-reduced-motion: reduce is set, useReducedMotion() keeps the row-swap interval running but replaces the per-column blur, vertical shift, and stagger with a single opacity crossfade between full rows — no extra configuration needed.
Built by Axyl. A motion-first component registry for React.
Last updated: 7/26/2026