CSSでプログレスバーを円形で作る方法

こんにちは。

ゆうやです!

本記事では、

「Webサイトのお問い合わせページなどで進捗状況を視覚的にわかりやすくしたい!」

「入力画面、確認画面、完了画面で進捗状況をわかりやすくしたい!」

という方に向けてCSSで作る進捗バーを紹介します!

CSSでプログレスバーを円形で作る方法

プログレスバー完成イメージ

プログレスバー

赤色がアクティブ

1,2の箇所は用途に応じて、「入力」「確認」などと変更してくださいませ〜

実際に確認したい方はこちらのデモページよりご覧になってください。

デモページ

プログレスバーのHTML

「2」もしくは「完了」ブロックに赤色でスタイリングしたい場合は該当の親要素と子要素に「isActive」クラスを付与してください!

index.html
<div class="Group">
   <div class="Group-Bar"></div>
   <div class="Group-Item isActive">
     <div class="Group-Item-CircleOuter Circle Shapeborder isActive">
       <div class="Group-Item-CircleInner Circle Shapeborder isActive"></div>
     </div>
     <p class="Group-Item-Text">1</p>
   </div>
   <div class="Group-Item">
     <div class="Group-Item-CircleOuter Circle Shapeborder">
       <div class="Group-Item-CircleInner Circle Shapeborder"></div>
     </div>
     <p class="Group-Item-Text">2</p>
   </div>
   <div class="Group-Item">
      <div class="Group-Item-CircleOuter Circle Shapeborder">
        <div class="Group-Item-CircleInner Circle Shapeborder"></div>
      </div>
      <p class="Group-Item-Text">完了</p>
   </div>
 </div>

プログレスバーのCSS

index.css
.Group {
  margin-bottom: 24px;
  position: relative;
  width: 100%;
  max-width: 320px;
  display: flex;
  justify-content: space-between;
  z-index: 0;
}
.Group-Bar {
  position: absolute;
  top: 12px;
  left: 5%;
  width: 90%;
  height: 2px;
  background-color: #eaeaea;/*バーの色*/
  z-index: -1;
}
@media screen and (min-width: 768px) {
  .Group-Bar {
    top: 17px;
    height: 5px;
  }
}
.Shapeborder.isActive {
  border: 1px solid #e2264d;
}
.Circle {
  border-radius: 50%;
}
.Group-Item {
  color: #b7b7b7;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.Group-Item.isActive {
  color: #e2264d;
}
.Group-Item-CircleOuter {
  width: 26px;
  height: 26px;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .Group-Item-CircleOuter {
    width: 39px;
    height: 39px;
  }
}
.Group-Item-CircleOuter.isActive {
  background: #fff;
}
.Group-Item-CircleInner {
  width: 16px;
  height: 16px;
  background-color: #b7b7b7;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .Group-Item-CircleInner {
    width: 25px;
    height: 25px;
  }
}
.Group-Item-CircleInner.isActive {
  background: #e2264d;
}
.Group-Item-CircleInner:last-of-type::after {
  content: none;
}
.Group-Item-Text {
  margin-top: 10px;
  font-size: 1.4rem;
  font-weight: 600;
}

参考記事

参考 シンプルなHTMLで、美しいプログレスバーを実装するスタイルシートのテクニックコリス

まとめ

いかがでしたでしょうか。

知らないと何時間もうんうん頭を悩ませて作ることになるコンポーネントですが、知ってさえいれば圧倒言う間に実装できてしまうので今後もそういったコンポーネントの作り方をどんどん紹介していけたらなと思いました。

最後までご高覧いただきありがとうございました!

あわせて読みたい

CSSで横並びメニューに区切り線を入れる方法

CSSで三角形を作る方法【左上・右上・右下・左下自由自在に配置】