
CodePenで公開されている、CSSやJavaScriptで作られたプログレスバーのアニメーションアイデアを14個セレクトしました。シンプルな単色バーから、パーティクルやリキッドバブル、円形チャートまで幅広いバリエーションを集めています。各スニペットには実装のポイントも添えているので、どんな仕組みで動いているのか、どこを見ればカスタマイズできるのかが把握しやすくなっています。気になるデザインが見つかったら、実際のサイト制作の参考にしてみてください。
プログレスバーのアイデア
Color Changing Loading Progress Bar
読み込みごとに色が変化するプログレスバーのアイデア
See the Pen Color Changing Loading Progress Bar by Rachel McKean (@hopefulcodegirl) on CodePen.
- Author : Rachel McKean
- Link : CodePen – Demo
💡 実装のポイント
JS不使用のPure CSS構成。.Loading:after擬似要素のwidthとbackgroundを@keyframes loadで5秒かけて0%→100%に変化させ、同時に@keyframes pulseで背景全体の色も連動して変わる仕組み。色の切り替えタイミングはキーフレームのパーセンテージ値を調整するだけでOK。
The depressing loading bar
99%手前でリセットされ続けるループ型プログレスバーのアイデア
See the Pen The depressing loading bar by Ali Soueidan (@lazercaveman) on CodePen.
- Author : Ali Soueidan
- Link : CodePen – Demo
💡 実装のポイント
Pug+Sass+JSの構成。setIntervalで#progressのwidthをランダムな量ずつ増加させ、99%に達すると.completeクラスを付与→CSSのtransform: rotate(-180deg)でバー全体を回転させて0%に戻す「終わらないローディング」を演出。ネタ的な用途だが、ランダムな待ち時間の作り方は参考になる。
Expanding Loader
完了時にバーが展開するプログレスバーのアイデア
See the Pen Expanding Loader by Eric Gregoire (@Boogiesox) on CodePen.
- Author : Eric Gregoire
- Link : CodePen – Demo
💡 実装のポイントrequestAnimationFrameで.progress-barのwidthをランダムな増分で0→100%まで進め、100%到達時に.doneクラスを付与。CSS側のtransitionで高さが2pxから100%に一気に「展開」する仕掛けになっている。数値のカウントアップ表示も同じJSロジックで実装。
Bars
20種類のSVGパターン背景を使ったプログレスバーのアイデア
See the Pen Bars by Luca Gesmundo (@lucagez) on CodePen.
- Author : Luca Gesmundo
- Link : CodePen – Demo
💡 実装のポイント.crossesや.dotsなど柄ごとのクラス名にdata URI形式のSVGパターンをbackground-imageとして指定した20種類のコレクション。hoverでmouseoverイベントが発火し、JSがランダムな幅とtransition-durationを設定してバーを伸ばす。1パターンだけ使う場合は該当するSVGパターンのdata URIごとコピーすればよい。
CSS Progress bars
10種類のスタイルバリエーションを持つプログレスバーのアイデア
See the Pen CSS Progress bars by Paul King (@pmk) on CodePen.
- Author : Paul King
- Link : CodePen – Demo
💡 実装のポイント.aqua・.neon・.candyなど見た目違いのクラス10種+共通の.progress-bar構成。jQueryのMutationObserverでstyle属性の変化を監視しdata-width属性に反映する仕組みがユニークだが、単体利用なら.progress-barのwidthを直接指定するだけでシンプルに使える。
Dribbble Recreation: Loading Bar
泡アニメーションを重ねたプログレスバーのアイデア
See the Pen Dribbble Recreation: Loading Bar by Antoinette Janus (@internette) on CodePen.
- Author : Antoinette Janus
- Link : CodePen – Demo
💡 実装のポイント
SCSS+JSの構成。#fillのwidthを@keyframes growで0→100%に伸ばし、:before擬似要素に泡アニメーションgifをmix-blend-mode: overlayで重ねて質感を出している。パーセンテージ表示はsetIntervalでテキストを1ずつインクリメントするだけのシンプルな仕組み。
Loading particle effect
パーティクルが舞い散るプログレスバーのアイデア
See the Pen Loading particle effect by Thomas (@Thomas11juni) on CodePen.
- Author : Thomas
- Link : CodePen – Demo
💡 実装のポイント
Canvas+SimplexNoiseライブラリを使った実装。バーの先端からパーティクルを生成し、ノイズ関数で揺らめかせながらフェードアウトさせている。stops配列で進捗の一時停止ポイントを制御。CSSベースの他の実装と違い、Canvas全体のロジックとノイズライブラリの移植が必要なため導入コストは高め。
Loading-bar / css-only | cyberpunk
サイバーパンク風ターミナルログ演出のプログレスバーのアイデア
See the Pen Loading-bar / css-only | cyberpunk by Paulo Mazakina (@cinderbits) on CodePen.
- Author : Paulo Mazakina
- Link : CodePen – Demo
💡 実装のポイント
JS不使用のPure CSS構成。@property --numでカスタムプロパティをアニメーション可能な数値として登録し、counter()関数でパーセンテージ数字をカウントアップ表示している。contentプロパティを@keyframesで書き換えてターミナルのログ風テキストも演出。@propertyはSafari 16.4未満では非対応なので、対応状況を確認してから採用したい。
CSS loading bar
ホバーで進捗値をツールチップ表示するプログレスバーのアイデア
See the Pen CSS loading bar by Victor Darras (@victordarras) on CodePen.
- Author : Victor Darras
- Link : CodePen – Demo
💡 実装のポイント
Slim+Sass+CoffeeScriptの構成(Bourbon依存)。CoffeeScript側で.percentageのwidthを0.2%ずつ増やし続け、:before/:after擬似要素でホバー・アクティブ時に現在の%をツールチップ表示する仕組み。移植時はBourbonのmixin部分を通常のCSSに置き換える必要がある。
A pure CSS loading bar
数字が自動で反転表示されるプログレスバーのアイデア
See the Pen A pure CSS loading bar by Robin Rendle (@robinrendle) on CodePen.
- Author : Robin Rendle
- Link : CodePen – Demo
💡 実装のポイント
JS不使用のPure CSS(SCSS)構成。.bgと.elをmix-blend-mode: differenceで重ねることで、背景色が変化しても数字が常に読みやすい色に自動反転する仕組みが特徴。パーセンテージ表示はSCSSの@forループで1〜100までのcontentをキーフレームに書き出す力技で実現している。
Loading Petal Spinner
花びら状のスピナーと連動するプログレスバーのアイデア
See the Pen Loading Petal Spinner by Thomas Trinca (@Trinca) on CodePen.
- Author : Thomas Trinca
- Link : CodePen – Demo
💡 実装のポイント
8枚の花びら状要素をtransform: rotate()で放射状に配置し、.containerごと回転させながら各花びらをanimation-delayで少しずつずらして発光させるスピナー構成。下部の.bar+.progressがシンプルな進捗バーを兼ねており、left値のキーフレームで進み具合を表現している。
CSS astral loader
円柱風の質感を持つプログレスバーのアイデア
See the Pen CSS astral loader by Kitty Giraudel (@KittyGiraudel) on CodePen.
- Author : Kitty Giraudel
- Link : CodePen – Demo
💡 実装のポイント
Compassベースの疑似3Dバー。.wrapper全体をtransform: rotate(-90deg) scale(0.85)させることで円柱風の見た目を作り、.innerのwidthを@keyframes loaderで0→100%にアニメーションさせている。複数のbox-shadowを重ねて金属的な質感を表現している点が参考になる。
circular progress bar
豊富なオプションを持つ円形プログレスバーのアイデア
See the Pen circular progress bar by Greg (@Tomik23) on CodePen.
- Author : Greg
- Link : CodePen – Demo
💡 実装のポイント
外部ライブラリ「circular-progress-bar」(CDN経由)を使ったSVG円形プログレスバーのショーケース。data-pie属性にJSONでパーセンテージや色、線の太さなどのオプションを渡すだけで多彩なバリエーションを生成できる設計。IntersectionObserverでビューポート内に入った時だけアニメーションを開始する配慮もされている。
Progress Bar Liquid Bubble
液体が揺れる円形バブル型プログレスバーのアイデア
See the Pen Progress Bar Liquid Bubble by June Hanabi (@junebug12851) on CodePen.
- Author : June Hanabi
- Link : CodePen – Demo
💡 実装のポイント
Stylusのprogress-bubble($color, $amount)というmixinに色と進捗量を渡すだけで円形バブル型バーを生成できる設計。内部の.water要素を@keyframes spinで回転させ続けることで水面が揺れているような演出を実現。進捗値に応じて.greenなどのクラスを切り替えて色を変える運用を想定している。
プログレスバーとは?
プログレスバーとは、ファイルのダウンロードやアップロード、フォームの入力状況、処理の進捗などを視覚的に示すUIパーツのことです。バーの長さや円の塗りつぶし具合、パーセンテージ数値などで「あとどれくらいで完了するか」をユーザーに伝える役割を持っています。
単純な横棒タイプだけでなく、円形やバブル型、パーティクル演出を伴うものまでデザインの幅は広く、サイトやアプリの世界観に合わせて選ぶことができます。読み込みの待ち時間をただ表示するだけでなく、演出として楽しませる要素としても活用されています。
CodePenとは?
CodePenは、HTML、CSS、JavaScriptを使ってウェブページのプロトタイプや実装を行うことができるオンラインの開発環境です。
CodePenでは、ウェブ開発者やデザイナーが、ブラウザ上でコードを書きながら、すばやく試行錯誤することができます。ユーザーは自分のプロジェクトを公開し、他のユーザーによるフィードバックを受けたり、共有することもできます。
CodePenには、エディター機能が搭載されており、HTML、CSS、JavaScriptのコードを入力することができます。また、ユーザーが公開したプロジェクトは、フロントエンドの技術を利用して動的な表現やアニメーションを作ることができます。
よくある質問
-
SCSSやStylus、Pugなど、プリプロセッサで書かれたコードはそのまま使えますか?
そのままでは動作しません。コンパイルが必要なため、対応するビルド環境がない場合はCodePen上の「View Compiled CSS/HTML」からコンパイル済みのコードを書き出して使用してください。
-
プログレスバーはアクセシビリティ的に問題ありませんか?
視覚的な表現だけでは進捗状況が伝わりにくいため、
role="progressbar"やaria-valuenowなどのARIA属性を付与し、スクリーンリーダーでも状況が伝わるようにすることを推奨します。 -
数値のカウントアップをJavaScriptなしで表現できますか?
@propertyでカスタムプロパティを登録し、counter()関数と組み合わせればJSなしでカウントアップ表現が可能です。ただしSafari 16.4未満など未対応ブラウザがあるため、対応状況の確認をおすすめします。 -
円形のプログレスバーを実装するのに外部ライブラリは必須ですか?
必須ではありません。SVGの
stroke-dasharrayを使えばCSS/JSのみでも実装可能です。ただし外部ライブラリを使うと、色やアニメーションなど細かいオプションの調整が容易になるメリットがあります。