DEMO
VARIABLE
wght 100 → 900 / wdth 60 → 140
CODE
<link href="https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wdth,wght@8..144,25..151,100..1000&display=swap" rel="stylesheet"> <div class="demo-stage vfm-stage"> <p class="vfm-text">VARIABLE</p> <p class="vfm-sub">wght 100 → 900 / wdth 60 → 140</p> </div>
.vfm-stage { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.2rem; padding:3rem 1.5rem; background:#0F0F12; min-height:280px; overflow:hidden; }
.vfm-text {
font-family:'Roboto Flex','Inter',sans-serif;
font-size:clamp(2.2rem,11vw,4.5rem); line-height:1; color:#fff;
font-variation-settings:'wght' 100,'wdth' 60;
animation: vfm-morph 4.5s cubic-bezier(.65,0,.35,1) infinite alternate;
will-change: font-variation-settings;
}
@keyframes vfm-morph {
from { font-variation-settings:'wght' 100,'wdth' 60; color:#7A7A85; }
to { font-variation-settings:'wght' 900,'wdth' 140; color:#E91B89; }
}
.vfm-sub { font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.12em; color:#5A5A66; }
@media (prefers-reduced-motion: reduce) {
.vfm-text { animation:none; font-variation-settings:'wght' 700,'wdth' 100; color:#E91B89; }
}
AI PROMPT
可変フォント(variable font)の軸をアニメーションさせて、太さと幅が連続的に変化する見出しを作って。まず可変フォントを軸の範囲付きで読み込む(例: Google Fonts の Roboto Flex を wght@100..1000, wdth@25..151 の範囲指定で読み込む。範囲を指定しないと静的インスタンスしか降ってこず段階的にしか変化しない)。次に @keyframes で font-variation-settings: 'wght' 100, 'wdth' 60 から 'wght' 900, 'wdth' 140 へ変化させる。animation-direction: alternate を付けると往復する。font-weight プロパティでも可変軸は補間されるが、wdth など wght 以外の軸も同時に動かすなら font-variation-settings で一括指定する方が確実。will-change: font-variation-settings を添えると再ラスタライズが安定する。注意点として、可変軸のアニメーションはテキストの再描画を伴うため、大きな見出し1〜2箇所に絞ること。本文全体に掛けると重くなる。 Acceptance criteria: works with prefers-reduced-motion (animation disabled), zero console errors, zero layout shift
AIエージェントでの実装ガイド → Claude Code でWebアニメーションを実装する
BOOKS · PR · AMAZON
※当サイトはAmazonアソシエイトプログラムの参加者です。リンクから商品をご購入いただくと、当方に紹介料が発生します。
学びを止めない · AMAZONサブスク
※当サイトはAmazonアソシエイトプログラムの参加者です。リンクから商品をご購入いただくと、当方に紹介料が発生します。
可変フォントは1つのフォントファイルの中に太さ・幅・傾きなどの「軸」を持ち、その軸の値を連続的に変えられる形式です。font-variation-settings をCSSアニメーションで動かすと、Light から Black まで滑らかに太っていく、といった従来のウェブフォントでは不可能だった表現ができます。
当サイトの Gradient Text は色、Wavy Text は位置を動かす表現で、文字の形そのものは変わりません。本ページは文字の骨格自体が変形する別テーマで、ブランドロゴのアニメーションやヒーロー見出しのアイキャッチに向きます。
実装で最も多い失敗は、Google Fonts の読み込みURLで軸の範囲を指定し忘れることです。範囲記法(wght@100..1000)で読み込まないと可変フォント本体が配信されず、指定しても段階的にしか変化しません。
可変フォントの軸アニメーションは重くないですか?
文字のラスタライズが毎フレーム走るため、transform や opacity のアニメーションよりは負荷が高くなります。ヒーローの見出し1〜2箇所に限定し、本文や大量のテキストには使わないのが原則です。will-change: font-variation-settings を指定するとブラウザが最適化しやすくなります。
Google Fonts で可変軸が動かないのはなぜですか?
読み込みURLで軸の範囲を指定していない可能性が高いです。family=Roboto+Flex:wght@400 のように単一の値を書くと静的インスタンスだけが配信され、中間値へ補間されません。wght@100..1000 のように範囲記法(2つのドット)で指定すると可変フォント本体が配信され、連続的なアニメーションが可能になります。
コードは無料で使えますか?
はい。Motion LabのコードスニペットとAIプロンプトは、クレジット表記なしで自由に使えます。コピーしてそのままプロジェクトに利用できます。