中央集約ヒーロー+スクロール誘導

小ラベル・特大見出し・サブ・2つのボタンを中央に積み、下部に弾むスクロール誘導を添えた構成。見出しは語ごとに浮かび上がります。ブランドやキャンペーンの強い第一印象づくりに。

#hero#title#centered#cta

ライブデモ

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

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

HTML
<!-- Sakura:中央集約ヒーローをライブ告知に適用 -->
<section class="thc">
  <div class="thc-inner">
    <p class="thc-kicker">✦ 2nd LIVE TOUR 2026</p>
    <h1 class="thc-title" id="thcTitle">
      <span>星降る</span> <span>夜の</span> <span>桜物語</span>
    </h1>
    <p class="thc-sub">満開の、その先へ。全国6都市をめぐるツアー、開幕。先行抽選を受付中です。</p>
    <div class="thc-actions">
      <button class="thc-btn thc-btn--solid" type="button">チケット先行</button>
      <button class="thc-btn thc-btn--ghost" type="button">日程を見る</button>
    </div>
  </div>
  <div class="thc-scroll" aria-hidden="true"><span class="thc-mouse"><i></i></span>SCROLL</div>
</section>
CSS
/* Sakura(アイドル):中央集約ヒーローの再スキン */
* { box-sizing: border-box; }
body { margin: 0; font-family: "Hiragino Kaku Gothic ProN", "Segoe UI", system-ui, sans-serif; }

.thc {
  position: relative; width: 100%; min-height: 380px;
  display: grid; place-content: center; text-align: center;
  padding: 40px 26px 56px; color: #fff0f6; overflow: hidden;
  background: linear-gradient(135deg, #2a0e2e 0%, #7b1d54 45%, #d6336c 100%);
  background-size: 200% 200%; animation: thc-drift 14s ease infinite;
}
@keyframes thc-drift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

.thc-inner { position: relative; z-index: 2; max-width: 540px; }
.thc-kicker { margin: 0 0 16px; font-size: 12px; letter-spacing: .24em; color: #ffc6df; font-weight: 700; }
.thc-title { margin: 0; font-size: 46px; font-weight: 900; line-height: 1.1; letter-spacing: .02em; text-shadow: 0 0 30px rgba(255,143,196,.5); }
.thc-title span { display: inline-block; opacity: 0; transform: translateY(24px); animation: thc-rise .7s cubic-bezier(.2,.7,.2,1) forwards; }
.thc-title span:nth-child(1) { animation-delay: .1s; }
.thc-title span:nth-child(2) { animation-delay: .24s; }
.thc-title span:nth-child(3) { animation-delay: .38s; }
@keyframes thc-rise { to { opacity: 1; transform: translateY(0); } }

.thc-sub { margin: 20px auto 26px; font-size: 14.5px; line-height: 1.8; color: rgba(255,255,255,.82); max-width: 400px; }
.thc-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.thc-btn { font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; padding: 12px 26px; border-radius: 999px; transition: transform .15s ease, filter .15s ease; }
.thc-btn--solid { border: none; color: #6a1340; background: #fff; }
.thc-btn--solid:hover { transform: translateY(-2px); }
.thc-btn--ghost { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.45); color: #fff; }
.thc-btn--ghost:hover { background: rgba(255,255,255,.18); }

.thc-scroll { position: absolute; left: 0; right: 0; bottom: 16px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 7px; font-size: 10px; letter-spacing: .3em; color: rgba(255,255,255,.6); }
.thc-mouse { width: 22px; height: 34px; border: 2px solid rgba(255,255,255,.55); border-radius: 12px; display: grid; justify-items: center; padding-top: 6px; }
.thc-mouse i { width: 3px; height: 7px; border-radius: 2px; background: #fff; animation: thc-wheel 1.5s ease-in-out infinite; }
@keyframes thc-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(9px); opacity: 0; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) { .thc { animation: none; } .thc-title span { animation: none; opacity: 1; transform: none; } .thc-mouse i { animation: none; } }

実装ガイド

使いどころ

ブランド・キャンペーン・ライブ告知など、強い第一印象で世界観を打ち出したいヒーローに。小ラベル・特大見出し・サブ・2ボタンを中央に積み、下部にスクロール誘導を添えます。

実装時の注意点

見出しは語を span に分け、opacity と translateY を遅延付きでフェードアップ。背景は拡大したグラデを background-position でゆっくりドリフトさせています。下部のスクロール誘導はホイールが落ちる CSS アニメ付きのマウス型インジケータです。

対応ブラウザ

gradient アニメーション・transform・keyframes は全モダンブラウザで対応します。CSS のみで完結します。

よくある失敗

中央集約は要素を詰め込みすぎると窮屈になるため、行間と余白を広めに。特大見出しはモバイルで clamp() を使い、はみ出しを防ぎます。スクロール誘導は実際にスクロール可能なページでのみ意味を持つので、1画面完結のLPでは省くか別の合図に。

応用例

見出しの出現をループ再生に、背景を画像や動画に、ボタンを1つに絞ってCVを集中、キッカーにカウントダウンを入れるなどの応用が可能です。

コード

HTML
<!-- 中央集約ヒーロー+スクロール誘導 -->
<section class="thc">
  <div class="thc-inner">
    <p class="thc-kicker">✦ 2026 NEW SEASON</p>
    <h1 class="thc-title" id="thcTitle">
      <span>視点を、</span> <span>ひとつ</span> <span>上へ。</span>
    </h1>
    <p class="thc-sub">毎日の制作を少し上の視座から。あたらしい発想に出会うためのワークスペース。</p>
    <div class="thc-actions">
      <button class="thc-btn thc-btn--solid" type="button">はじめる</button>
      <button class="thc-btn thc-btn--ghost" type="button">紹介を見る</button>
    </div>
  </div>
  <div class="thc-scroll" aria-hidden="true"><span class="thc-mouse"><i></i></span>SCROLL</div>
</section>
CSS
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", system-ui, -apple-system, sans-serif; }

.thc {
  position: relative;
  width: 100%; min-height: 380px;
  display: grid; place-content: center; text-align: center;
  padding: 40px 26px 56px;
  color: #f3f4ff; overflow: hidden;
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 45%, #6d28d9 100%);
  background-size: 200% 200%;
  animation: thc-drift 14s ease infinite;
}
@keyframes thc-drift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

.thc-inner { position: relative; z-index: 2; max-width: 540px; }
.thc-kicker { margin: 0 0 16px; font-size: 12px; letter-spacing: .26em; color: #c4b5fd; font-weight: 700; }
.thc-title { margin: 0; font-size: 46px; font-weight: 900; line-height: 1.1; letter-spacing: -.02em; }
.thc-title span {
  display: inline-block;
  opacity: 0; transform: translateY(24px);
  animation: thc-rise .7s cubic-bezier(.2,.7,.2,1) forwards;
}
.thc-title span:nth-child(1) { animation-delay: .1s; }
.thc-title span:nth-child(2) { animation-delay: .24s; }
.thc-title span:nth-child(3) { animation-delay: .38s; }
@keyframes thc-rise { to { opacity: 1; transform: translateY(0); } }

.thc-sub { margin: 20px auto 26px; font-size: 14.5px; line-height: 1.8; color: rgba(255,255,255,.8); max-width: 400px; }
.thc-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.thc-btn { font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; padding: 12px 26px; border-radius: 999px; transition: transform .15s ease, filter .15s ease; }
.thc-btn--solid { border: none; color: #2e1065; background: #fff; }
.thc-btn--solid:hover { transform: translateY(-2px); }
.thc-btn--ghost { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.4); color: #fff; }
.thc-btn--ghost:hover { background: rgba(255,255,255,.16); }

.thc-scroll {
  position: absolute; left: 0; right: 0; bottom: 16px; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  font-size: 10px; letter-spacing: .3em; color: rgba(255,255,255,.6);
}
.thc-mouse { width: 22px; height: 34px; border: 2px solid rgba(255,255,255,.55); border-radius: 12px; display: grid; justify-items: center; padding-top: 6px; }
.thc-mouse i { width: 3px; height: 7px; border-radius: 2px; background: #fff; animation: thc-wheel 1.5s ease-in-out infinite; }
@keyframes thc-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(9px); opacity: 0; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .thc { animation: none; }
  .thc-title span { animation: none; opacity: 1; transform: none; }
  .thc-mouse i { animation: none; }
}

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

このままコピーしてAIに貼り付け「追加する場所」だけ書き換えればOK
あなたは熟練のフロントエンドエンジニアです。私のWebサイトに「中央集約ヒーロー+スクロール誘導」の効果を追加してください。

# 追加してほしい効果
中央集約ヒーロー+スクロール誘導(タイトル周り)
小ラベル・特大見出し・サブ・2つのボタンを中央に積み、下部に弾むスクロール誘導を添えた構成。見出しは語ごとに浮かび上がります。ブランドやキャンペーンの強い第一印象づくりに。

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

# 参考実装(この見た目・挙動を再現してください)
【HTML】
<!-- 中央集約ヒーロー+スクロール誘導 -->
<section class="thc">
  <div class="thc-inner">
    <p class="thc-kicker">✦ 2026 NEW SEASON</p>
    <h1 class="thc-title" id="thcTitle">
      <span>視点を、</span> <span>ひとつ</span> <span>上へ。</span>
    </h1>
    <p class="thc-sub">毎日の制作を少し上の視座から。あたらしい発想に出会うためのワークスペース。</p>
    <div class="thc-actions">
      <button class="thc-btn thc-btn--solid" type="button">はじめる</button>
      <button class="thc-btn thc-btn--ghost" type="button">紹介を見る</button>
    </div>
  </div>
  <div class="thc-scroll" aria-hidden="true"><span class="thc-mouse"><i></i></span>SCROLL</div>
</section>

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

.thc {
  position: relative;
  width: 100%; min-height: 380px;
  display: grid; place-content: center; text-align: center;
  padding: 40px 26px 56px;
  color: #f3f4ff; overflow: hidden;
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 45%, #6d28d9 100%);
  background-size: 200% 200%;
  animation: thc-drift 14s ease infinite;
}
@keyframes thc-drift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

.thc-inner { position: relative; z-index: 2; max-width: 540px; }
.thc-kicker { margin: 0 0 16px; font-size: 12px; letter-spacing: .26em; color: #c4b5fd; font-weight: 700; }
.thc-title { margin: 0; font-size: 46px; font-weight: 900; line-height: 1.1; letter-spacing: -.02em; }
.thc-title span {
  display: inline-block;
  opacity: 0; transform: translateY(24px);
  animation: thc-rise .7s cubic-bezier(.2,.7,.2,1) forwards;
}
.thc-title span:nth-child(1) { animation-delay: .1s; }
.thc-title span:nth-child(2) { animation-delay: .24s; }
.thc-title span:nth-child(3) { animation-delay: .38s; }
@keyframes thc-rise { to { opacity: 1; transform: translateY(0); } }

.thc-sub { margin: 20px auto 26px; font-size: 14.5px; line-height: 1.8; color: rgba(255,255,255,.8); max-width: 400px; }
.thc-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.thc-btn { font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; padding: 12px 26px; border-radius: 999px; transition: transform .15s ease, filter .15s ease; }
.thc-btn--solid { border: none; color: #2e1065; background: #fff; }
.thc-btn--solid:hover { transform: translateY(-2px); }
.thc-btn--ghost { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.4); color: #fff; }
.thc-btn--ghost:hover { background: rgba(255,255,255,.16); }

.thc-scroll {
  position: absolute; left: 0; right: 0; bottom: 16px; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  font-size: 10px; letter-spacing: .3em; color: rgba(255,255,255,.6);
}
.thc-mouse { width: 22px; height: 34px; border: 2px solid rgba(255,255,255,.55); border-radius: 12px; display: grid; justify-items: center; padding-top: 6px; }
.thc-mouse i { width: 3px; height: 7px; border-radius: 2px; background: #fff; animation: thc-wheel 1.5s ease-in-out infinite; }
@keyframes thc-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(9px); opacity: 0; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .thc { animation: none; }
  .thc-title span { animation: none; opacity: 1; transform: none; }
  .thc-mouse i { animation: none; }
}

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

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