バッジカウンター

UI コンポーネント Easy #badge #counter #notification #button

ベルアイコンの右上に未読件数を重ねる、通知バッジのコンポーネントです。バッジは position:absolute でボタンの角に配置し、数字が変わるたびに transform:scale(1.4) で一瞬ふくらんで元に戻る、目を引くマイクロアニメーションが入っています。

▶ プレビュー

解説

ベルアイコンの右上に未読件数を重ねる、通知バッジのコンポーネントです。バッジは position:absolute でボタンの角に配置し、数字が変わるたびに transform:scale(1.4) で一瞬ふくらんで元に戻る、目を引くマイクロアニメーションが入っています。地味ですが実用的なのが data-zero 属性の扱いで、件数が0になると属性を付けて display:none で非表示にし、0件のときに「0」を見せないようにしています。また100を超える数は 99+ と省略表示する配慮もあります。

使う場面

  • 通知ベルやメッセージアイコンの未読件数表示
  • カートに入っている商品点数のバッジ
  • タブやメニュー項目に付ける「新着あり」の印

件数の更新は update(n) を呼ぶだけで、増減ボタンやサーバーからの値をそのまま渡せます。色はバッジ背景の #e53e3e(赤)を変えればブランドに合わせられます。スクリーンリーダー向けには、件数が変わったことが伝わるよう aria-live 領域に同じ数を反映させるとアクセシブルになります。

よくある質問

件数が99を超えたときの表示はどうなりますか?
このサンプルでは100以上を99+とまとめて表示します。上限を変えたい場合は、JavaScriptのupdate関数内で99と比較している箇所の数値を、たとえば999に書き換えれば表示の閾値を調整できます。
0件のときにバッジを消すには?
件数が0になるとdata-zero属性が付き、CSSのdisplay:noneで非表示になる仕組みです。逆に0でも丸を見せたい場合は、そのCSSルールを外して常時表示にすれば対応できます。
追加日:2026-05-22
← すべてのスニペットへ戻る