l

o

a

d

i

n

g

.

.

.

[CSS] NowLoading「ネオン・ヘイロー・スピナー」

2026/06/03

CSS NowLoading

t f B! P L
「CSSを制するものは、Webページを制す」 こんな志の元、そのホームページで誰もが目にする、Now Loading をブログで追求する活動をしています。 最近では、AIがある程度までは作ってくれますが、最後の仕上げはどうしても人間が行わないと、ちゃんとしたコードが出来上がりません。(2026年5月現在では) 今回はかなりシンプルな見た目と、安定の Loading を表現してみました。

デモ

ソースコード

index.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Loading</title> </head> <body> <div class="loader"></div> </body> </html> style.css body { margin: 0; height: 100vh; display: flex; justify-content: center; align-items: center; background: #0f172a; } /* ローディング本体 */ .loader { width: 80px; height: 80px; border-radius: 50%; position: relative; animation: rotate 1.2s linear infinite; } /* グラデーションリング */ .loader::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient( #38bdf8, #6366f1, #ec4899, #38bdf8 ); mask: radial-gradient(farthest-side, transparent 60%, black 61%); -webkit-mask: radial-gradient(farthest-side, transparent 60%, black 61%); } /* 中央の抜き(ガラスっぽく) */ .loader::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: #0f172a; } /* 回転アニメ */ @keyframes rotate { to { transform: rotate(360deg); } }

解説

円形のグラデーションが、ぐるっと回転する、見た目綺麗なデザインです。 アニメーションは、1.2秒かけて360度回転させているだけなので、コードも非常にシンプルです。 ドーナツ型にくり抜いたグラデーションの作り方は、実はくり抜いているわけではなく、周辺と同じ色で塗りつぶしているだけなので、背景が単色でない場合は、clip-path()やmask()を使ってちゃんとくり抜いた方がいいです(スミマセン手抜きで) でも、Now Loadingは、ページ内の画像などの読み込みのための処理なので、単色で十分ということで、この仕様にしています。 あ、これ書いていて気がついたんですが、ページロード以外にも、Ajaxを使った、アップロードや、個別エレメント箇所などでの、動機待ちみたいな処理の場合のために、抜き色バージョンも用意しておいた方がいいですね。

抜き色改良版

.loader::afterを削除して、.loader::beforeのmask指定を以下に置き換えてください。 -webkit-mask: radial-gradient(circle, transparent 55%, black 56%); mask: radial-gradient(circle, transparent 55%, black 56%); 念の為、css全体のコードも掲載しておきます。 style.css body { margin: 0; height: 100vh; display: flex; justify-content: center; align-items: center; background: #0f172a; } /* ローダー */ .loader { width: 80px; height: 80px; border-radius: 50%; position: relative; animation: rotate 1.2s linear infinite; } /* グラデーションリング(くり抜き) */ .loader::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient( #38bdf8, #6366f1, #ec4899, #38bdf8 ); /* ここが本質:内側をくり抜く */ -webkit-mask: radial-gradient(circle, transparent 55%, black 56%); mask: radial-gradient(circle, transparent 55%, black 56%); } /* 回転 */ @keyframes rotate { to { transform: rotate(360deg); } }

あとがき

Now Loading は、凝れば凝るほど見た目の綺麗さも、受け取り手の面白さもアップしますが、「シンプルにする」ということは非常に重要です。 今回ぐらいのコードであれば、cssファイルを外部にして読み込みをするよりは、HTMLに書き込んだ方が効率的です。 そもそも、読み込みを待つための Now Loading なので、そのコード自体の読み込みが遅くなってしまうようでは、本末転倒ですからね。 改めて効率が良くて、見た目も、面白さも追求して、できるだけ離脱を防げるモノを追求したくなってきましたね。 こういうCSSのコード制作は、個人的に楽しいので、この CSS Now Loading は、シリーズ化していきたいと思います。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ