Buy Template Now $65
Skip to main content

LogoMarquee

A horizontally scrolling marquee component for showcasing client logos, partner brands, integrations, sponsors, and trusted companies.

The component creates a seamless infinite scrolling effect with configurable speed, direction, and hover interactions.

Import the component using:

import LogoMarquee from "@/components/ui/logoMarquee";


Preview

LogoMarquee Preview

Example

<LogoMarquee
  heading="Trusted by leading companies"
  logos={[
    {
      src: "/logos/slack.svg",
      alt: "Slack",
    },
    {
      src: "/logos/notion.svg",
      alt: "Notion",
    },
    {
      src: "/logos/github.svg",
      alt: "GitHub",
    },
    {
      src: "/logos/stripe.svg",
      alt: "Stripe",
    },
  ]}
/>

Props

type ActionOnHover = "slow" | "pause" | "none";
 
type ScrollDirection = "left" | "right";
 
interface LogoItem {
  src: string;
  alt: string;
  width?: number;
  height?: number;
}
 
interface LogoMarqueeProps {
  heading?: string;
 
  logos: LogoItem[];
 
  actionOnHover?: ActionOnHover;
 
  scrollDirection?: ScrollDirection;
 
  scrollSpeed?: number; 
 
  showFadeOverlays?: boolean;
}

Logo Data Structure

const logos = [
  {
    src: "/logos/slack.svg",
    alt: "Slack",
  },
  {
    src: "/logos/github.svg",
    alt: "GitHub",
  },
  {
    src: "/logos/notion.svg",
    alt: "Notion",
  },
  {
    src: "/logos/stripe.svg",
    alt: "Stripe",
  },
];

Custom Logo Sizes

const logos = [
  {
    src: "/logos/slack.svg",
    alt: "Slack",
    width: 140,
    height: 70,
  },
  {
    src: "/logos/github.svg",
    alt: "GitHub",
    width: 100,
    height: 50,
  },
];

Hover Behaviors

Pause on Hover

<LogoMarquee
  logos={logos}
  actionOnHover="pause"
/>

Slow on Hover

<LogoMarquee
  logos={logos}
  actionOnHover="slow"
/>

Disable Hover Interaction

<LogoMarquee
  logos={logos}
  actionOnHover="none"
/>

Scroll Direction

Scroll Left

<LogoMarquee
  logos={logos}
  scrollDirection="left"
/>

Scroll Right

<LogoMarquee
  logos={logos}
  scrollDirection="right"
/>

Scroll Speed

Lower values move faster.

<LogoMarquee
  logos={logos}
  scrollSpeed={15}
/>

Slower animation:

<LogoMarquee
  logos={logos}
  scrollSpeed={40}
/>

Show Fade Overlays

// With fade overlays (default)
<LogoMarquee logos={logos} showFadeOverlays={true} />
 
// Without fade overlays
<LogoMarquee logos={logos} showFadeOverlays={false} />
 
// The prop is optional - defaults to true
<LogoMarquee logos={logos} />
 

Complete Example

const logos = [
  {
    src: "/logos/slack.svg",
    alt: "Slack",
  },
  {
    src: "/logos/github.svg",
    alt: "GitHub",
  },
  {
    src: "/logos/notion.svg",
    alt: "Notion",
  },
  {
    src: "/logos/stripe.svg",
    alt: "Stripe",
  },
  {
    src: "/logos/figma.svg",
    alt: "Figma",
  },
  {
    src: "/logos/vercel.svg",
    alt: "Vercel",
  },
];
 
<LogoMarquee
  heading="Trusted by thousands of teams"
  logos={logos}
  actionOnHover="pause"
  scrollDirection="left"
  scrollSpeed={20}
/>

Notes

  • Creates a seamless infinite scrolling effect.
  • Uses duplicated logo sets for smooth looping.
  • Automatically pauses animation when outside the viewport.
  • Supports custom logo dimensions.
  • Supports hover pause and slow-down effects.
  • Works well for client logos, integrations, sponsors, and partner showcases.
  • Optimized using Next.js Image.
  • Responsive and mobile-friendly.