Motion & GSAP UI for React. Built for shadcn/ui.
Sora UI

Logo Carousel Swapper

Staggered logo columns that swap with fade, vertical shift, and motion blur.

Made by Axyl
Loading...

Installation

Usage

import {
  LogoCarouselSwapper,
  type LogoCarouselSwapperRow,
} from '@/components/sora-ui/effects/logo-carousel-swapper';

const rows: LogoCarouselSwapperRow[] = [
  [
    { src: 'https://sora.axyl.io.vn/logos/partners/nvidia-wordmark.svg', alt: 'Nvidia' },
    { src: 'https://sora.axyl.io.vn/logos/partners/supabase-wordmark.svg', alt: 'Supabase' },
    { src: 'https://sora.axyl.io.vn/logos/partners/github-wordmark.svg', alt: 'GitHub' },
    { src: 'https://sora.axyl.io.vn/logos/partners/openai-wordmark.svg', alt: 'OpenAI' },
  ],
  [
    { src: 'https://sora.axyl.io.vn/logos/partners/turso-wordmark.svg', alt: 'Turso' },
    { src: 'https://sora.axyl.io.vn/logos/partners/clerk-wordmark.svg', alt: 'Clerk' },
    { src: 'https://sora.axyl.io.vn/logos/partners/claude-wordmark.svg', alt: 'Claude' },
    { src: 'https://sora.axyl.io.vn/logos/partners/vercel-wordmark.svg', alt: 'Vercel' },
  ],
];

export default function Page() {
  return (
    <LogoCarouselSwapper
      aria-label="Partner logos"
      rows={rows}
      interval={3000}
      stagger={0.12}
      monochrome
    />
  );
}

Props

PropTypeDefault
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

PropTypeDefault
src?
string
-
alt?
string
-

Built by Axyl. A motion-first component registry for React.

Last updated: 6/26/2026