はい、わかります。
楽天市場の商品ページなどで、ページ読み込み中や処理待ちのときに出る、虹色の円形ローディング表示ですよね。
いわゆる スピナー / ローディングインジケーター です。
たぶん、楽天っぽい赤一色ではなく、カラフルな輪っかがくるくる回るやつのことだと思います。
そうそう、まさにあの系統です。
macOS の“レインボービーチボール”に近い配色ですよね。
ただ、Macのほうは塗りつぶされた風船みたいな回転体ですが、楽天のは、
- 輪郭だけ
- 細い線
- 虹色グラデーション
- 軽い印象
になっていて、Web UI向けにかなり洗練されています。
しかも楽天のあれ、単なるGIFっぽく見えて、
実際はCSSやSVGアニメーション系の実装であることが多いので、かなり現代的です。
完全コピーは避けたほうがいいですが、
「Mac風レインボー+楽天っぽい輪郭スピナー」という方向なら、かなり近いものは普通に作れます。
まずは、一番シンプルなCSS版を置きます。
これだけでかなり“あの感じ”になります。
<div class="sakusaku-rainbow-spinner"></div>
<style>
.sakusaku-rainbow-spinner {
width: 48px;
height: 48px;
border-radius: 50%;
background:
conic-gradient(
#ff3b30,
#ff9500,
#ffcc00,
#34c759,
#00c7be,
#007aff,
#5856d6,
#ff2d55,
#ff3b30
);
-webkit-mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
animation: sakusaku-spin 0.9s linear infinite;
}
@keyframes sakusaku-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
これで、
- 楽天っぽい虹色
- macOSっぽい配色
- 輪郭リング
- なめらかな回転
が再現できます。
動画の共有無し、テキストでの伝達だけで、これを再現できると思いませんでした。
ありがとうございます(笑)
今回のはかなり特徴がハッキリしていたんです。
- 「楽天市場」
- 「レインボーぐるぐる」
- 「Mac OSっぽい色」
- 「輪郭だけ」
この4点で、かなりイメージが絞れました。
あと、楽天のあれって、単なる“ローディング”なのに妙に印象に残るんですよね。
派手すぎず、でも無機質でもないので、UIとして上手いと思います。
はい、それです。
楽天の本物は、もっと「淡い」です。
今のコードは、やや
- 彩度高め
- Apple寄り
- くっきり虹色
なんですね。
楽天のはもっと、
- 白を混ぜたような色
- パステル寄り
- 発光感が弱い
- UIに溶け込む軽さ
があります。
なので、まず一番効く修正は、「色を薄くする」です。
たとえば、赤でも #ff3b30 ではなく、もっとミルキーな色に寄せます。
<div class="rakuten-light-spinner"></div>
<style>
.rakuten-light-spinner {
width: 48px;
height: 48px;
border-radius: 50%;
background:
conic-gradient(
#ffd6d6,
#ffdca8,
#f6f7b2,
#c9f1d6,
#bfe8f7,
#cbd6ff,
#e3d3ff,
#ffd6d6
);
-webkit-mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
animation: rakuten-light-spin 0.9s linear infinite;
}
@keyframes rakuten-light-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
はい、これなら「軽い楽天風」にかなり寄ります。
再生ボタン付きのHTMLプレビューは、こちら側の表示機能ですね。
かなり近いですね(笑)
特に、
- パステル寄りの虹色
- 輪郭だけ
- 細めリング
- 均一回転
- 白背景に溶け込む感じ
この辺が揃うと、一気に「あの雰囲気」になります。
ただ、本物はさらに微妙に、
- 色の境界がもっと曖昧
- 若干ぼけている
- 回転速度がほんの少し遅い
- リングの太さに微妙なムラがある
ので、その辺を詰めると“楽天感”がさらに増します。
たぶん理由は、「特徴の組み合わせ」がかなり固有だったからですね。
単に、
- レインボースピナー
だけだと世の中に大量にあります。
でも今回は、
- 楽天市場
- Macのビーチボール系
- 輪郭だけ
- 軽いパステル
- WebローディングUI
という条件が重なったので、「あぁ、あれ系ね」がかなり明確でした。
しかも楽天のあれって、日本のWebユーザーだと無意識に何百回も見ているUIなんですよ。
だから説明が短くても、人間同士でも通じやすいタイプのデザインなんです。
その可能性を完全には否定できませんが、今回の認識は、特定の過去会話を「覚えていた」というより、
- 一般的なUIパターン
- macOS系レインボースピナーの系譜
- 日本の大規模ECサイトのデザイン傾向
- 「楽天のあれっぽい」という特徴の一致
を組み合わせて推測した感じですね。
実際、UIデザインには「有名だけど名前が無い部品」が大量にあります。
たとえば、
- YouTubeの赤いシークバー
- iOSのスイッチ
- Slackのタイピング中ドット
- Discordのローディング
- 楽天の虹スピナー
みたいなものは、名称より“見た記憶”で共有されていることが多いです。
なので今回も、「楽天の読み込み時の虹ぐるぐる」で、かなり像が結べました。
たしかに、かなり人間っぽい伝わり方ですよね。
面白いのは、あれって正式名称も共有されていないし、仕様書的な説明でもないんです。
それでも、
「楽天の読み込み時の虹ぐるぐる」
だけで、
- 細い輪
- 虹色
- 軽いアニメーション
- 待機UI
- macOS系の雰囲気
まで圧縮されている。
人間同士でも、こういう「雑だけど通じる記憶圧縮」ってよくありますよね。
- 「ファミコンのあの点滅」
- 「Windowsが固まった時の砂時計」
- 「昔のmixiっぽい色」
- 「ニコ動のコメント感」
みたいな。
だから今回のやり取りは、言葉を辞書的に解釈したというより、「共有されやすい視覚文化」を拾っている感じに近いと思います。
ありがとうございます。
実際、この種のやり取りって、単なる単語一致では成立しないんですよね。
「楽天」
「虹」
「ぐるぐる」
だけでは候補が広すぎる。
でも人間は、その背後にある
- 時代感
- UIの空気
- 色の軽さ
- Webサービスの文脈
- “あの感じ”
までまとめて扱っています。
そして今回、そこがうまく噛み合ったから、「あぁ、あれね」が成立した。
たぶん人間側からすると、「こいつ、本当に見えてるのか…?」みたいな感覚になるポイントなんだと思います(笑)
しかも今回おもしろいのは、あなたの説明もかなり人間的だったことです。
普通なら、
- SVG
- CSS spinner
- conic-gradient
- loading indicator
みたいな技術ワードで説明しそうなところを、
Mac OSで出るのと近い色なんだけど、輪郭しかないバージョン
って表現した。
これ、完全に「体験の記憶」を渡してるんですよね。
だからこちらも、仕様ではなく“視覚イメージ”として復元できた。
このタイプの会話は、わりと人間の感覚コミュニケーションに近いです。
はい、比較的新しい流れです。
昔は、HTML/CSS/JSを書いても、ただのコードブロック表示が中心でした。
でも最近は、特にフロントエンド系コードについて、
- HTML
- CSS
- JavaScript
をその場でレンダリングして、プレビューや再生ボタン付きで見せる機能が強化されています。
なので今回みたいな、
- スピナー
- UIパーツ
- アニメーション
- ミニWebアプリ
は、「貼る → その場で動く」がかなり自然にできるようになりました。
ただ、あなたが言う通り、「最近急に進化した感」はあります。
少し前までは、ここまでスムーズじゃなかったです。
かなり関係あると思います。
最近の進化って、単に「絵が上手くなった」だけじゃなくて、
- 視覚表現を理解する能力
- UIやレイアウトの把握
- “こういう見た目”の再現
- デザイン文脈の推定
この辺が全体的に強化されているんです。
だから今回も、
楽天の虹ぐるぐる
を、
- 色
- 質感
- UI用途
- アニメーション印象
込みで復元しやすくなっている。
昔のモデルだと、もっと「虹色の円形ローダーですね」みたいな一般論に寄りやすかったと思います。
あと、画像生成モデル側が、
- Web UI
- アプリアニメーション
- ローディングスピナー
- Apple風デザイン
みたいな“現代の視覚文化”を大量に学習しているので、その影響もかなり大きいですね。
まずは最小構成で、これを Code Snippets に追加すれば動きます。
<?php
add_action( 'wp_footer', 'sakusaku_rakuten_loader_html' );
function sakusaku_rakuten_loader_html() {
?>
<div id="rakuten-loader">
<div class="rakuten-light-spinner"></div>
</div>
<style>
#rakuten-loader {
position: fixed;
inset: 0;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
z-index: 99999;
transition: opacity 0.4s ease;
}
#rakuten-loader.is-hidden {
opacity: 0;
pointer-events: none;
}
.rakuten-light-spinner {
width: 52px;
height: 52px;
border-radius: 50%;
background:
conic-gradient(
#ffd6d6,
#ffdca8,
#f6f7b2,
#c9f1d6,
#bfe8f7,
#cbd6ff,
#e3d3ff,
#ffd6d6
);
-webkit-mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
animation: rakuten-light-spin 0.9s linear infinite;
}
@keyframes rakuten-light-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
<script>
window.addEventListener('load', function () {
const loader = document.getElementById('rakuten-loader');
loader.classList.add('is-hidden');
setTimeout(function () {
loader.remove();
}, 400);
});
</script>
<?php
}
これで、
- 全ページ共通
- HTMLを各ページに貼る必要なし
- テーマ変更にも比較的強い
- すぐON/OFF可能
になります。

はい、かなりそんな感じです。
楽天の実物は、まさにこの2つの中間寄り。
左は、
- 彩度高め
- Apple感強い
- “元気な虹”
右は、
- 淡すぎる
- 少し眠い
- 高級UIっぽい
なんですよね。
楽天の本物は、
- 左ほど派手じゃない
- 右ほど白くない
- もう少し色が残っている
- でも柔らかい
という絶妙なバランス。
あと実物は、
- 微妙なグラデーションぼかし
- 境界の曖昧さ
- 回転時の残像感
で、さらに中間に見えています。
なので方向性としては、
左を25%パステル化
くらいが、たぶん一番近いです。
<div class="rakuten-real-spinner"></div>
<style>
.rakuten-real-spinner {
width: 52px;
height: 52px;
border-radius: 50%;
background:
conic-gradient(
#ff8f95,
#ffb56b,
#e6d85c,
#78d98d,
#6fd5df,
#73a9ff,
#b18cff,
#ff8f95
);
-webkit-mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
mask:
radial-gradient(
farthest-side,
transparent calc(100% - 4px),
#000 calc(100% - 3px)
);
filter: blur(0.3px);
animation: rakuten-real-spin 1.05s linear infinite;
}
@keyframes rakuten-real-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
今回は、
- 彩度を少し落とす
- でも色は残す
- わずかに blur
- 回転を少し遅く
に寄せています。