フッター 初級

流れる文字のフッターバナー

「LET'S WORK TOGETHER」などの大文字が左へ流れ続けるマーキー型のお問い合わせ誘導。下にメール・SNSを添えた、制作会社やクリエイター系で人気の Animated フッターです。

#footer#marquee#animated#contact

ライブデモ

使用例(お題: アイドルグループ Sakura)

この技法を「アイドルグループ Sakura」というテーマのダミーサイトで実際に使った例です。

HTML
<!-- Sakura:ライブツアーを流れる文字で訴求するフッター -->
<footer class="fmq">
  <a class="fmq-track-link" href="#" onclick="return false" aria-label="ツアー詳細">
    <div class="fmq-track">
      <span class="fmq-row" aria-hidden="true">
        SAKURA LIVE TOUR 2026 <i class="fmq-star">✦</i> TICKETS ON SALE <i class="fmq-star">✦</i>
        SAKURA LIVE TOUR 2026 <i class="fmq-star">✦</i> TICKETS ON SALE <i class="fmq-star">✦</i>
      </span>
      <span class="fmq-row" aria-hidden="true">
        満開の その先へ <i class="fmq-star">✦</i> 星降る夜の桜物語 <i class="fmq-star">✦</i>
        満開の その先へ <i class="fmq-star">✦</i> 星降る夜の桜物語 <i class="fmq-star">✦</i>
      </span>
    </div>
  </a>

  <div class="fmq-bar">
    <a class="fmq-mail" href="#" onclick="return false">fanclub@sakura-project.jp</a>
    <nav class="fmq-social">
      <a href="#" onclick="return false">X</a>
      <a href="#" onclick="return false">Instagram</a>
      <a href="#" onclick="return false">YouTube</a>
    </nav>
    <span class="fmq-copy">© 2026 Sakura</span>
  </div>
</footer>
CSS
/* Sakura(アイドル):流れる文字のフッターバナーの再スキン */
* { box-sizing: border-box; }
body { margin: 0; font-family: "Hiragino Kaku Gothic ProN", "Segoe UI", system-ui, sans-serif; }

.fmq { width: 100%; min-height: 380px; display: flex; flex-direction: column; justify-content: center; background: #1c0f18; color: #fff; overflow: hidden; }

.fmq-track-link { text-decoration: none; color: inherit; display: block; padding: 30px 0; }
.fmq-track { display: flex; flex-direction: column; gap: 4px; }

.fmq-row { display: inline-block; white-space: nowrap; font-size: 50px; font-weight: 900; letter-spacing: -.01em; line-height: 1.12; color: transparent; -webkit-text-stroke: 1.5px rgba(255,182,213,.6); will-change: transform; animation: fmq-scroll 18s linear infinite; }
.fmq-row:nth-child(2) { color: #ffd9e8; -webkit-text-stroke: 0; animation-duration: 22s; animation-direction: reverse; margin-left: -80px; font-size: 40px; }
.fmq-track-link:hover .fmq-row { animation-play-state: paused; }
.fmq-star { font-style: normal; color: #f06595; -webkit-text-stroke: 0; margin: 0 8px; }
@keyframes fmq-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.fmq-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 16px 30px; border-top: 1px solid rgba(255,182,213,.18); }
.fmq-mail { color: #fff; text-decoration: none; font-size: 14px; font-weight: 700; border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.fmq-mail:hover { border-color: #f06595; }
.fmq-social { display: flex; gap: 16px; }
.fmq-social a { color: rgba(255,217,232,.8); text-decoration: none; font-size: 13px; }
.fmq-social a:hover { color: #fff; }
.fmq-copy { font-size: 12px; color: rgba(255,217,232,.5); }

@media (prefers-reduced-motion: reduce) { .fmq-row { animation: none; } }

実装ガイド

使いどころ

制作会社・クリエイター・イベント/ライブなど、勢いと誘導を両立したいフッターに。「お問い合わせ」や開催情報などの大文字が左へ流れ続け、視線を引きつけます。

実装時の注意点

2行のテキストを同じ内容で重複させ、translateX を -50% まで動かすことで継ぎ目のない無限スクロールを実現。2行目は逆方向・別速度にして動きに奥行きを出しています。ホバーで animation-play-state:paused により一時停止します。CSS のみで JS 不要です。

対応ブラウザ

transform アニメーションは全モダンブラウザで対応し、GPU 合成に乗って軽量です。-webkit-text-stroke はプレフィックス併記で広く動作します。

よくある失敗

重複テキストが画面幅より短いと -50% で隙間が出るため、十分な長さ(2セット以上)を並べること。reduced-motion で必ず停止指定を。流れる文字だけだとリンク先が不明になりがちなので、下に明確な連絡先や導線を添えます。

応用例

速度や向きを変える、絵文字や記号で区切る、ホバーで色を変える、上下2方向に流して交差させるなどの演出ができます。

コード

HTML
<!-- 流れる大文字マーキーのお問い合わせフッター -->
<footer class="fmq">
  <a class="fmq-track-link" href="#" onclick="return false" aria-label="お問い合わせ">
    <div class="fmq-track">
      <span class="fmq-row" aria-hidden="true">
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
      </span>
      <span class="fmq-row" aria-hidden="true">
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
      </span>
    </div>
  </a>

  <div class="fmq-bar">
    <a class="fmq-mail" href="#" onclick="return false">hello@kasanare.studio</a>
    <nav class="fmq-social">
      <a href="#" onclick="return false">Instagram</a>
      <a href="#" onclick="return false">X</a>
      <a href="#" onclick="return false">note</a>
    </nav>
    <span class="fmq-copy">© 2026 Kasanare</span>
  </div>
</footer>
CSS
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", system-ui, -apple-system, sans-serif; }

.fmq {
  width: 100%; min-height: 380px;
  display: flex; flex-direction: column; justify-content: center;
  background: #111118; color: #fff; overflow: hidden;
}

.fmq-track-link { text-decoration: none; color: inherit; display: block; padding: 30px 0; }
.fmq-track { display: flex; flex-direction: column; gap: 4px; }

.fmq-row {
  display: inline-block; white-space: nowrap;
  font-size: 52px; font-weight: 900; letter-spacing: -.02em; line-height: 1.12;
  color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.5);
  will-change: transform;
  animation: fmq-scroll 18s linear infinite;
}
.fmq-row:nth-child(2) {
  color: #fff; -webkit-text-stroke: 0;
  animation-duration: 22s; animation-direction: reverse;
  margin-left: -80px;
}
.fmq-track-link:hover .fmq-row { animation-play-state: paused; }

.fmq-star { font-style: normal; color: #ec4899; -webkit-text-stroke: 0; margin: 0 8px; }

@keyframes fmq-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.fmq-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  padding: 16px 30px; border-top: 1px solid rgba(255,255,255,.1);
}
.fmq-mail { color: #fff; text-decoration: none; font-size: 14px; font-weight: 700; border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.fmq-mail:hover { border-color: #ec4899; }
.fmq-social { display: flex; gap: 16px; }
.fmq-social a { color: rgba(255,255,255,.78); text-decoration: none; font-size: 13px; }
.fmq-social a:hover { color: #fff; }
.fmq-copy { font-size: 12px; color: rgba(255,255,255,.5); }

@media (prefers-reduced-motion: reduce) { .fmq-row { animation: none; } }

🤖 AIエージェント用プロンプト

このままコピーしてAIに貼り付け「追加する場所」だけ書き換えればOK
あなたは熟練のフロントエンドエンジニアです。私のWebサイトに「流れる文字のフッターバナー」の効果を追加してください。

# 追加してほしい効果
流れる文字のフッターバナー(フッター)
「LET'S WORK TOGETHER」などの大文字が左へ流れ続けるマーキー型のお問い合わせ誘導。下にメール・SNSを添えた、制作会社やクリエイター系で人気の Animated フッターです。

# 追加する場所
👉【ここに対象箇所を記入:例「トップのヒーローセクション」「お問い合わせボタン」「記事カードの一覧」など】

# 参考実装(この見た目・挙動を再現してください)
【HTML】
<!-- 流れる大文字マーキーのお問い合わせフッター -->
<footer class="fmq">
  <a class="fmq-track-link" href="#" onclick="return false" aria-label="お問い合わせ">
    <div class="fmq-track">
      <span class="fmq-row" aria-hidden="true">
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
      </span>
      <span class="fmq-row" aria-hidden="true">
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
        LET'S WORK TOGETHER <i class="fmq-star">✦</i> GET IN TOUCH <i class="fmq-star">✦</i>
      </span>
    </div>
  </a>

  <div class="fmq-bar">
    <a class="fmq-mail" href="#" onclick="return false">hello@kasanare.studio</a>
    <nav class="fmq-social">
      <a href="#" onclick="return false">Instagram</a>
      <a href="#" onclick="return false">X</a>
      <a href="#" onclick="return false">note</a>
    </nav>
    <span class="fmq-copy">© 2026 Kasanare</span>
  </div>
</footer>

【CSS】
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", system-ui, -apple-system, sans-serif; }

.fmq {
  width: 100%; min-height: 380px;
  display: flex; flex-direction: column; justify-content: center;
  background: #111118; color: #fff; overflow: hidden;
}

.fmq-track-link { text-decoration: none; color: inherit; display: block; padding: 30px 0; }
.fmq-track { display: flex; flex-direction: column; gap: 4px; }

.fmq-row {
  display: inline-block; white-space: nowrap;
  font-size: 52px; font-weight: 900; letter-spacing: -.02em; line-height: 1.12;
  color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.5);
  will-change: transform;
  animation: fmq-scroll 18s linear infinite;
}
.fmq-row:nth-child(2) {
  color: #fff; -webkit-text-stroke: 0;
  animation-duration: 22s; animation-direction: reverse;
  margin-left: -80px;
}
.fmq-track-link:hover .fmq-row { animation-play-state: paused; }

.fmq-star { font-style: normal; color: #ec4899; -webkit-text-stroke: 0; margin: 0 8px; }

@keyframes fmq-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.fmq-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  padding: 16px 30px; border-top: 1px solid rgba(255,255,255,.1);
}
.fmq-mail { color: #fff; text-decoration: none; font-size: 14px; font-weight: 700; border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.fmq-mail:hover { border-color: #ec4899; }
.fmq-social { display: flex; gap: 16px; }
.fmq-social a { color: rgba(255,255,255,.78); text-decoration: none; font-size: 13px; }
.fmq-social a:hover { color: #fff; }
.fmq-copy { font-size: 12px; color: rgba(255,255,255,.5); }

@media (prefers-reduced-motion: reduce) { .fmq-row { animation: none; } }

# 外部ライブラリ
なし(追加ライブラリ不要)

# 守ってほしいこと
- 既存のHTML構造・レイアウト・デザインを壊さないこと。必要に応じてクラス名・色・サイズを私のサイトに合わせて調整してよい。
- クラス名やidが既存と衝突しないよう、必要なら接頭辞で名前空間を分けること。
- レスポンシブ対応と prefers-reduced-motion への配慮を入れること。
- 私のサイトのフレームワーク(React / Vue / 素のHTML など)に合わせて実装すること。不明な場合は素のHTML/CSS/JSで提示し、組み込み手順も説明すること。
- 変更後の確認手順も簡潔に教えてください。