Hero

Logo Marquee Hero

A classic SaaS hero: bold headline above two ticker rows of partner / customer logos scrolling in opposite directions. CSS mask softens the edges, reduced-motion freezes the rows, and the brand list is fully customizable.

UniqueUI CLI

npx uniqueui add hero-logo-marquee

shadcn CLI

npx shadcn@latest add https://uniqueui-platform.vercel.app/r/hero-logo-marquee.json -y

Preview

Trusted across teams

The platform shipping teams ship with.

From scrappy seed startups to public companies — UniqueUI components ship in production every day.

  • Acme
  • Globex
  • Soylent
  • Initech
  • Hooli
  • Umbrella
  • Stark
  • Wayne
  • Cyberdyne
  • Wonka
  • Tyrell
  • Aperture
  • Aperture
  • Tyrell
  • Wonka
  • Cyberdyne
  • Wayne
  • Stark
  • Umbrella
  • Hooli
  • Initech
  • Soylent
  • Globex
  • Acme

Usage

import { LogoMarqueeHero } from "@/components/ui/hero-logo-marquee";

export default function Hero() {
  return (
    <LogoMarqueeHero
      logos={[
        "Acme",
        "Globex",
        "Soylent",
        "Initech",
        "Hooli",
        "Umbrella",
        "Stark",
        "Wayne",
        "Cyberdyne",
        "Wonka",
        "Tyrell",
        "Aperture",
      ]}
      secondaryLogos={[
        "Aperture",
        "Tyrell",
        "Wonka",
        "Cyberdyne",
        "Wayne",
        "Stark",
        "Umbrella",
        "Hooli",
        "Initech",
        "Soylent",
        "Globex",
        "Acme",
      ]}
      speed={32}
    >
      <span className="mb-5 inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/5 px-3 py-1 text-xs uppercase tracking-[0.18em] text-white/70 backdrop-blur">
        <span className="h-1.5 w-1.5 rounded-full bg-white/80" aria-hidden />
        Trusted across teams
      </span>
      <h1 className="text-balance text-4xl font-semibold tracking-tight sm:text-6xl">
        The platform shipping teams ship with.
      </h1>
      <p className="mt-5 max-w-xl text-pretty text-base text-white/65 sm:text-lg">
        From scrappy seed startups to public companies — UniqueUI components
        ship in production every day.
      </p>
    </LogoMarqueeHero>
  );
}

Props

PropTypeDescription
childrenReactNodeSlotted hero content above the marquee rows. Pass your own headline / subhead / CTAs. When omitted, a default composition renders.
logosReadonlyArray<string>Brand names rendered as the ticker items. Defaults to a placeholder list.
secondaryLogosReadonlyArray<string> | nullOptional second row. `undefined` (default) reverses the primary list; `null` hides the second row.
speednumberLoop duration in seconds for the primary row. The second row runs slightly slower for visual interest.
classNamestringExtra classes on the outer `<section>`.