本文へスキップ

通知センター

ベルアイコン(未読バッジ付き)をタップすると通知リストのパネルが開く。各通知をタップして既読化すると未読数が減る。

ENGLISH

Notification Center

  • JS
約321行領域別 / SaaS・業務 の一覧 →

プレビュー

クリック

操作クリック/タップで動きます。

仕様書

向く場面
  • アプリ内通知をヘッダーからまとめて見せる SaaS
  • 未読数を常に見せたいダッシュボード
  • 個別既読と一括既読の両方が要る場面
避ける場面
  • 即応が要る警告(トースト・バナーが向く)
  • 通知が数百件たまる履歴(専用ページが向く)
構成要素
  • ベルボタン
  • 未読バッジ
  • パネル
  • すべて既読
  • 通知項目
  • 未読ドット
持っている状態
  • 通常
  • ホバー
  • 押下中
キーボード

Tab でベルへ、Enter/Space で開閉。開くと「すべて既読」へフォーカス、Tab で各通知(button)へ、Enter/Space で既読化。Esc で閉じてベルへ戻る

支援技術

ベルは未読数入りの aria-label+aria-expanded+aria-haspopup。パネルは role=dialog で閉じている間は inert。通知は button で未読は隠しテキスト「未読」。未読数の変化は aria-live=polite。reduced-motion で遷移停止

動き

パネルが 0.92 倍から 180ms で拡大・フェード(ベル起点)。項目背景 120ms

デザインの要点

  • パネルはベルの角を起点に 0.92 倍から 180ms で開く。中央から出すと「どこから出たか」が切れる
  • 未読は点+通常の濃さ、既読は点を消して 0.55 の透明度。色だけでなく濃淡で差を付けると一覧で拾える
  • 「すべて既読」は 1 つずつ押す手間を省くために置く。バッジの数字は既読のたびに減らし、0 で消す
  • 通知は 1 件ずつ button にして Enter で既読化できるようにし、Esc で閉じてベルへフォーカスを戻す

コード(コピーして使えます)

<div class="nc-stage" id="nc-stage">
  <span class="nc-sr" id="nc-status" aria-live="polite"></span>
  <div class="nc-topbar">
    <span class="nc-app-name">ダッシュボード</span>
    <button class="nc-bell-btn" id="nc-bell-btn" aria-label="通知(未読3件)" aria-expanded="false" aria-haspopup="dialog">
      <svg class="nc-bell-icon" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <path d="M10 2a6 6 0 0 0-6 6v2.5l-1.5 2.5h15L16 10.5V8a6 6 0 0 0-6-6z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/>
        <path d="M8 16a2 2 0 0 0 4 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
      </svg>
      <span class="nc-badge" id="nc-badge" aria-hidden="true">3</span>
    </button>
  </div>
  <div class="nc-panel hidden" id="nc-panel" role="dialog" aria-label="通知" inert>
    <div class="nc-panel-header">
      <span class="nc-panel-title">通知</span>
      <button class="nc-read-all-btn" id="nc-read-all-btn">すべて既読</button>
    </div>
    <ul class="nc-list" id="nc-list"></ul>
  </div>
</div>

タグ

同じカテゴリ「SaaS・業務」のほかのパーツ

関連パーツ