グラデーションテキスト
background-clip: text で文字をグラデーションに切り抜き、背景位置のアニメで色を流します。ヒーロー見出しやロゴに最適です。
ライブデモ
使用例(お題: SaaS FlowDesk)
この技法を「SaaS FlowDesk」というテーマのダミーサイトで実際に使った例です。
HTML
<div class="page">
<header class="nav">
<div class="brand">
<span class="logo"></span>FlowDesk
</div>
<nav class="links">
<a>機能</a><a>料金</a><a>導入事例</a>
<a class="btn">無料で始める</a>
</nav>
</header>
<section class="hero">
<p class="eyebrow">CHANGE THE WAY TEAMS WORK</p>
<h1 class="grad-title">
<span class="grad-text">仕事を、流れるように。</span>
</h1>
<p class="lead">タスク・ドキュメント・対話をひとつに。<br>チームの生産性を、今日から加速させる。</p>
<div class="cta">
<a class="primary">14日間ためす</a>
<a class="ghost">デモを見る</a>
</div>
<p class="note">クレジットカード不要・3分でセットアップ完了</p>
</section>
</div>
CSS
/* FlowDesk SaaS ヒーロー:グラデクリップ見出しが主役 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: "Segoe UI", system-ui, sans-serif;
background:
radial-gradient(900px 400px at 80% -20%, #1b2f63 0%, transparent 60%),
linear-gradient(160deg, #0f1b34 0%, #0c1428 100%);
color: #e7ecf7;
min-height: 400px;
overflow: hidden;
}
.page { padding: 16px 26px; }
/* ナビ */
.nav {
display: flex;
align-items: center;
justify-content: space-between;
}
.brand {
display: flex;
align-items: center;
gap: 9px;
font-weight: 700;
font-size: 17px;
letter-spacing: 0.02em;
}
.logo {
width: 18px; height: 18px; border-radius: 6px;
background: linear-gradient(135deg, #4f7cff, #8ab4ff);
box-shadow: 0 0 12px rgba(79,124,255,0.6);
}
.links { display: flex; align-items: center; gap: 18px; }
.links a {
font-size: 13px; color: #aeb9d4; cursor: pointer;
}
.links a:hover { color: #fff; }
.links .btn {
color: #fff; background: #4f7cff;
padding: 7px 14px; border-radius: 8px; font-weight: 600;
}
/* ヒーロー */
.hero { text-align: center; padding: 30px 10px 16px; }
.eyebrow {
font-size: 11px; letter-spacing: 0.32em; font-weight: 700;
color: #6f86c2; margin-bottom: 12px;
}
.grad-title {
font-size: clamp(34px, 7vw, 54px);
font-weight: 800; line-height: 1.1; letter-spacing: -0.01em;
}
/* グラデーションを文字でクリップする本体 */
.grad-text {
background: linear-gradient(100deg,
#4f7cff 0%, #7aa2ff 30%, #b388ff 55%, #4f7cff 100%);
background-size: 240% 100%;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: flow 6s linear infinite;
filter: drop-shadow(0 6px 22px rgba(79,124,255,0.35));
}
@keyframes flow { to { background-position: 240% 0; } }
.lead {
margin-top: 16px; font-size: 14px; line-height: 1.7;
color: #aeb9d4;
}
.cta {
margin-top: 22px;
display: flex; gap: 12px; justify-content: center;
}
.primary, .ghost {
padding: 11px 22px; border-radius: 10px;
font-size: 14px; font-weight: 600; cursor: pointer;
}
.primary {
background: #4f7cff; color: #fff;
box-shadow: 0 8px 24px rgba(79,124,255,0.4);
}
.primary:hover { background: #6a90ff; }
.ghost {
border: 1px solid #2c3c63; color: #c9d4ec;
}
.ghost:hover { border-color: #4f7cff; }
.note { margin-top: 14px; font-size: 12px; color: #6f86c2; }
@media (prefers-reduced-motion: reduce) {
.grad-text { animation: none; }
}
JavaScript
// CTAクリックでさざ波フィードバック(演出のみ)
(function () {
const btns = document.querySelectorAll('.primary, .ghost, .btn');
if (!btns.length) return; // null安全
btns.forEach((b) => {
b.addEventListener('click', () => {
// 押下の手応えを一瞬の縮小で表現
b.style.transform = 'scale(0.95)';
setTimeout(() => { b.style.transform = ''; }, 130);
});
});
})();
コード
HTML
<main class="stage">
<p class="eyebrow">GRADIENT TEXT</p>
<h1 class="grad-title" aria-label="Aurora">
<span class="grad-text">Aurora</span>
</h1>
<p class="grad-sub">background-clip: text で文字をグラデーションに</p>
</main>
CSS
/* 全体リセットと暗い背景 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
min-height: 360px;
display: grid;
place-items: center;
font-family: "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
/* 奥行きのある放射状グラデ背景 */
background:
radial-gradient(1200px 500px at 50% -10%, #1b2a4a 0%, transparent 60%),
linear-gradient(160deg, #0a0e1a 0%, #11162a 100%);
color: #fff;
overflow: hidden;
}
.stage { text-align: center; padding: 24px; }
.eyebrow {
font-size: 12px;
letter-spacing: 0.5em;
font-weight: 600;
color: #6b7a9e;
margin-bottom: 14px;
padding-left: 0.5em; /* レタースペース分の視覚補正 */
}
.grad-title {
font-size: clamp(56px, 14vw, 120px);
font-weight: 800;
line-height: 1;
letter-spacing: -0.02em;
}
/* グラデーションを文字でクリップする本体 */
.grad-text {
background: linear-gradient(
100deg,
#ff6ec4 0%, #7873f5 28%, #4ade80 55%, #38bdf8 80%, #ff6ec4 100%
);
background-size: 280% 100%;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
/* グラデを横方向に流すアニメ */
animation: flow 6s linear infinite;
/* かすかな発光で立体感 */
filter: drop-shadow(0 6px 24px rgba(120, 115, 245, 0.35));
}
@keyframes flow {
to { background-position: 280% 0; }
}
.grad-sub {
margin-top: 18px;
font-size: 14px;
color: #9aa7c7;
letter-spacing: 0.04em;
}
/* モーション控えめ設定への配慮 */
@media (prefers-reduced-motion: reduce) {
.grad-text { animation: none; }
}
🤖 AIエージェント用プロンプト
このままコピーしてAIに貼り付け「追加する場所」だけ書き換えればOK
あなたは熟練のフロントエンドエンジニアです。私のWebサイトに「グラデーションテキスト」の効果を追加してください。
# 追加してほしい効果
グラデーションテキスト(タイポグラフィ)
background-clip: text で文字をグラデーションに切り抜き、背景位置のアニメで色を流します。ヒーロー見出しやロゴに最適です。
# 追加する場所
👉【ここに対象箇所を記入:例「トップのヒーローセクション」「お問い合わせボタン」「記事カードの一覧」など】
# 参考実装(この見た目・挙動を再現してください)
【HTML】
<main class="stage">
<p class="eyebrow">GRADIENT TEXT</p>
<h1 class="grad-title" aria-label="Aurora">
<span class="grad-text">Aurora</span>
</h1>
<p class="grad-sub">background-clip: text で文字をグラデーションに</p>
</main>
【CSS】
/* 全体リセットと暗い背景 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
min-height: 360px;
display: grid;
place-items: center;
font-family: "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
/* 奥行きのある放射状グラデ背景 */
background:
radial-gradient(1200px 500px at 50% -10%, #1b2a4a 0%, transparent 60%),
linear-gradient(160deg, #0a0e1a 0%, #11162a 100%);
color: #fff;
overflow: hidden;
}
.stage { text-align: center; padding: 24px; }
.eyebrow {
font-size: 12px;
letter-spacing: 0.5em;
font-weight: 600;
color: #6b7a9e;
margin-bottom: 14px;
padding-left: 0.5em; /* レタースペース分の視覚補正 */
}
.grad-title {
font-size: clamp(56px, 14vw, 120px);
font-weight: 800;
line-height: 1;
letter-spacing: -0.02em;
}
/* グラデーションを文字でクリップする本体 */
.grad-text {
background: linear-gradient(
100deg,
#ff6ec4 0%, #7873f5 28%, #4ade80 55%, #38bdf8 80%, #ff6ec4 100%
);
background-size: 280% 100%;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
/* グラデを横方向に流すアニメ */
animation: flow 6s linear infinite;
/* かすかな発光で立体感 */
filter: drop-shadow(0 6px 24px rgba(120, 115, 245, 0.35));
}
@keyframes flow {
to { background-position: 280% 0; }
}
.grad-sub {
margin-top: 18px;
font-size: 14px;
color: #9aa7c7;
letter-spacing: 0.04em;
}
/* モーション控えめ設定への配慮 */
@media (prefers-reduced-motion: reduce) {
.grad-text { animation: none; }
}
# 外部ライブラリ
なし(追加ライブラリ不要)
# 守ってほしいこと
- 既存のHTML構造・レイアウト・デザインを壊さないこと。必要に応じてクラス名・色・サイズを私のサイトに合わせて調整してよい。
- クラス名やidが既存と衝突しないよう、必要なら接頭辞で名前空間を分けること。
- レスポンシブ対応と prefers-reduced-motion への配慮を入れること。
- 私のサイトのフレームワーク(React / Vue / 素のHTML など)に合わせて実装すること。不明な場合は素のHTML/CSS/JSで提示し、組み込み手順も説明すること。
- 変更後の確認手順も簡潔に教えてください。