Frontend Lab
← 回到所有模式
PG10📐 Layout · 版型Marquee

Marquee Logos

跑馬燈品牌列

難度 ★★★★★標籤 marquee · infinite · apple2 min read

模式簡述

Marquee:無限跑馬燈式 logo 牆。Vercel、Stripe 客戶列都用。比靜態 logo grid 多了動態感。

AppleLinearVercelNotionFigmaStripeGitHubCloudflareAppleLinearVercelNotionFigmaStripeGitHubCloudflare
單排|向左等速捲動

Claude Code Prompt

💬 Claude Code Prompt
參考:PG10 marquee
組件:Marquee.tsx

Marquee:無限跑馬燈式 logo 牆。Vercel、Stripe 客戶列都用。比靜態 logo grid 多了動態感。

限制:
- 速度太快
- 邊緣沒做 fade
- hover 沒暫停

完整程式碼

Marquee.tsx
"use client";

type State = "single" | "reverse" | "double";

const LOGOS = ["Apple", "Linear", "Vercel", "Notion", "Figma", "Stripe", "GitHub", "Cloudflare"];

function Row({ reverse = false, duration = 20 }: { reverse?: boolean; duration?: number }) {
return (
  <div className="relative overflow-hidden">
    <div
      className="flex gap-10 whitespace-nowrap py-3"
      style={{
        animation: `marquee ${duration}s linear infinite ${reverse ? "reverse" : ""}`,
      }}
    >
      {[...LOGOS, ...LOGOS].map((l, i) => (
        <span
          key={i}
          className="font-mono text-base tracking-tight text-muted-foreground/70"
        >
{l}
        </span>
      ))}
    </div>
  </div>
);
}

export function Marquee({ state = "single" }: { state?: State }) {
return (
  <div className="relative w-full overflow-hidden rounded-xl border border-border bg-background/30">
    <div className="pointer-events-none absolute inset-y-0 left-0 z-10 w-12 bg-gradient-to-r from-background to-transparent" />
    <div className="pointer-events-none absolute inset-y-0 right-0 z-10 w-12 bg-gradient-to-l from-background to-transparent" />
    <Row duration={state === "reverse" ? 25 : 20} reverse={state === "reverse"} />
    {state === "double" && <Row duration={30} reverse />}
    <style jsx>{`
      @keyframes marquee {
        0% { transform: translateX(0); }
        100% { transform: translateX(-50%); }
      }
    `}</style>
  </div>
);
}

何時用

  • ✅ 客戶 logo wall
  • ✅ 社群引言滾動
  • ✅ 服務技術棧展示

何時別用

  • ❌ 重要資訊(跑來跑去讀不到)
  • ❌ 資訊量大(一行塞不下,分行就破壞了)
  • ❌ 視差敏感者多的網站

我踩過的坑

  1. 速度太快:< 15s 一輪會頭暈。20-30s 比較舒服。

  2. 邊緣沒做 fade:logo 突然冒出來。兩邊加 gradient mask。

  3. hover 沒暫停:使用者想看清某個 logo 沒辦法。hover 暫停。

相關模式

  • PG05
  • PC06

搜尋

按 ⌘K 隨時開啟