DEMO
CODE
<div class="demo-stage rpb-stage"> <span class="rpb-ring" aria-hidden="true"></span> <span class="rpb-ring" aria-hidden="true"></span> <span class="rpb-ring" aria-hidden="true"></span> <span class="rpb-ring" aria-hidden="true"></span> <div class="rpb-core">LIVE</div> </div>
.rpb-stage { position:relative; display:flex; align-items:center; justify-content:center; padding:3rem; background:#0B0B10; min-height:280px; overflow:hidden; }
.rpb-ring {
position:absolute; top:50%; left:50%; width:120px; height:120px; margin:-60px 0 0 -60px;
border:1px solid rgba(233,27,137,.55); border-radius:50%;
transform:scale(.4); opacity:0;
animation: rpb-expand 4s cubic-bezier(.2,.6,.35,1) infinite;
}
.rpb-ring:nth-child(1) { animation-delay:0s; }
.rpb-ring:nth-child(2) { animation-delay:1s; }
.rpb-ring:nth-child(3) { animation-delay:2s; }
.rpb-ring:nth-child(4) { animation-delay:3s; }
@keyframes rpb-expand {
0% { transform:scale(.4); opacity:0; }
15% { opacity:.9; }
100% { transform:scale(3.4); opacity:0; }
}
.rpb-core {
position:relative; width:96px; height:96px; border-radius:50%;
background:#15151A; border:1px solid rgba(233,27,137,.7); color:#fff;
display:flex; align-items:center; justify-content:center;
font-family:'Oswald',sans-serif; font-size:.8rem; letter-spacing:.24em;
box-shadow:0 0 40px rgba(233,27,137,.22);
}
@media (prefers-reduced-motion: reduce) {
.rpb-ring { animation:none; opacity:.25; transform:scale(1.6); }
}
AI PROMPT
中心から同心円が静かに広がり続けるリップル背景をCSSだけで作って。円は border: 1px solid のみ・背景なし・border-radius: 50% の空要素を4つ置き、position: absolute で中心に重ねる(top:50%; left:50%; margin: -半径 0 0 -半径 で中央寄せ)。@keyframes は 0% で transform: scale(.4); opacity: 0、15% で opacity: .9、100% で transform: scale(3.4); opacity: 0。これで「小さく現れて大きく薄れる」波紋になる。4つに animation-delay を 0s / 1s / 2s / 3s と等間隔で振ると、周期4秒の中で常に1本ずつ広がり続ける状態になる。中心にはロゴやステータス表示を置くと「稼働中」「配信中」の意味が乗る。transform と opacity だけなのでGPU合成で動き、常時アニメーションでも軽い。注意: 親に overflow: hidden を付けること。円は最終的に親より大きくなる。 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アソシエイトプログラムの参加者です。リンクから商品をご購入いただくと、当方に紹介料が発生します。
中心から同心円が繰り返し広がる背景演出です。輪郭だけの円を scale と opacity で拡散させる構造で、要素数が少なく transform と opacity しか動かさないため、常時アニメーションでも負荷が小さいのが利点です。
当サイトの Ripple Effect はクリックした位置から波紋が1回だけ広がる「操作への反応」で、Material Design のボタンで知られる表現です。本ページは操作と無関係に一定周期で広がり続ける「状態の表示」という別テーマになります。ライブ配信中の表示やレーダーのメタファーとして使う場面が中心です。
本数を変えるときは animation-delay を「周期 ÷ 本数」で再計算してください。ここを揃えないと波紋が団子になって出ます。
リップル背景はどんな場面で使いますか?
「動いている・生きている」ことを示したい対象の周囲に置くのが定番です。ライブ配信中のインジケーター、位置情報のレーダー表示、CTAボタンの背後、ロゴの周囲などです。中心に置く要素の意味づけによって、同じ演出が「稼働中」にも「注目してほしい」にもなります。
波紋の間隔はどう決めますか?
animation-delay を「アニメーション周期 ÷ 円の本数」で等間隔に振るのが基本です。本ページは周期4秒・4本なので 0s / 1s / 2s / 3s としています。この計算をずらすと波紋が固まって出るため、本数を変えるときは delay も再計算してください。
コードは無料で使えますか?
はい。Motion LabのコードスニペットとAIプロンプトは、クレジット表記なしで自由に使えます。コピーしてそのままプロジェクトに利用できます。