本文へスキップ

通知・オーバーレイ

重ねて伝える、モーダル・通知・確認。

いまの画面の上に重ねて伝える部品のカテゴリ。中央のモーダルと確認ダイアログ、横からのドロワー、下からのボトムシートとアクションシート、ボタン脇のポップオーバー、右クリックのコンテキストメニュー、そして削除を取り消せるスナックバーがある。原則はプログレッシブ・ディスクロージャ。重ねるということは利用者の注意を奪うということなので、常時見せる必要のないものを「必要になった瞬間だけ」手前に出すために使う。何でもモーダルにして画面が止まってしまう、逆に確認なしで破壊的操作が通ってしまう、どちらの相談でも引く。

使い分け利用者の判断が要るなら modal / confirm-dialog、作業を続けながら見せるなら side-drawer、モバイルの選択肢は bottom-sheet / action-sheet。小さな操作群は popover-menu / context-menu。破壊的操作は確認で止めるより snackbar-undo で「取り消せる」形にするほうが速い。

まず見る3件

  • クリック

    モーダル解説あり

    Modal Dialog

    ボタンでフェード+スケールインしながらモーダルが中央に開く。背景クリック・×ボタン・Escキーで閉じる。

    • 出現は scale 0.88→1 と opacity を 220ms で同時に動かす。位置は動かさず、中央から「浮き上がる」ように見せる
    • 閉じている間は inert と visibility:hidden の両方を当てる。opacity:0 だけでは見えないボタンに Tab が入る
    • 開いたら中の先頭要素へ、閉じたら開く前にフォーカスがあった要素へ戻す。戻さないと文書の先頭に飛ぶ
  • クリック

    ドロワー解説あり

    Side Drawer

    ボタンで右側からパネルがスライドイン。背景クリックか×で閉じる。モバイルではボトムシートになる想定のスタイル。

    • パネルは translateX(100%) で画面外に置き、280ms で滑り込ませる。フェードだと「どこから来たか」が伝わらない
    • 影は開いている間だけ付ける。閉じていても影のぼかしが枠の右端に「暗い帯」として残る
    • 閉じている間は inert+visibility:hidden で Tab 順から外す。画面外のリンクにフォーカスが飛ぶと枠が横スクロールする
  • ホバー

    スナックバー+取り消し解説あり

    Snackbar with Undo

    リスト項目を削除すると「削除しました [取り消す]」が下部に出て3秒で自動消滅。取り消しで元に戻る。

    • 削除した瞬間は DOM から消さず removing クラスで隠すだけにし、3 秒後の確定で初めて remove する。取り消しはクラスを外すだけ
    • フォーカスは奪わない。代わりにホバー・フォーカスが乗っている間はタイマーを止め、読んでいる最中に消えないようにする
    • 読み上げは aria-atomic=true で「削除しました 取り消す」を一続きにする。分かれて読まれると取り消せることが伝わらない

使い分け表

パーツ操作技術向く場面状態
モーダル
Modal Dialog
クリックJSはい/いいえの単純な確認・必ず読んで判断してほしい内容default / hover / focus / active
ドロワー
Side Drawer
クリックJSハンバーガーメニューの受け皿・項目数が多いナビ・フィルタ・カートdefault / hover / focus / active
スナックバー+取り消し
Snackbar with Undo
ホバーJS削除・アーカイブなど数秒なら覆せる操作・確認ダイアログを毎回挟みたくない一覧default / hover
確認ダイアログ
Confirmation Dialog
クリックJS取り消せない削除の最終確認・既定を安全側(キャンセル)にしたい確認default / hover / focus / active / success
ポップオーバー
Popover Menu
クリックJS「…」ボタンにまとめる行内アクション・2〜6 個の選択肢を画面を暗くせず出すdefault / hover / focus / active
ドラッグ式ボトムシート
Draggable Bottom Sheet
ドラッグJS共有・アクションメニューのモバイル表示・指で開き具合を直接操作させたいパネルdefault / focus / active
コンテキストメニュー
Context Menu
クリックJS右クリックで対象に紐づく操作を出す・行・カードごとの編集/複製/削除default / hover / focus
アクションシート
Action Sheet
クリックJSスマホで対象に対する操作を一覧で選ばせる・共有・書き出しなど数個の選択肢default / hover / focus / active

すべての見本(8件)

  • クリック

    モーダル解説あり

    Modal Dialog

    ボタンでフェード+スケールインしながらモーダルが中央に開く。背景クリック・×ボタン・Escキーで閉じる。

  • クリック

    ドロワー解説あり

    Side Drawer

    ボタンで右側からパネルがスライドイン。背景クリックか×で閉じる。モバイルではボトムシートになる想定のスタイル。

  • ホバー

    スナックバー+取り消し解説あり

    Snackbar with Undo

    リスト項目を削除すると「削除しました [取り消す]」が下部に出て3秒で自動消滅。取り消しで元に戻る。

  • クリック

    確認ダイアログ

    Confirmation Dialog

    「本当に削除しますか?」をOK/キャンセルで確認。破壊的操作の前に一歩置く確認UIのパターン。

  • クリック

    ポップオーバー解説あり

    Popover Menu

    ボタン横に矢印付きの小パネル(メニュー)がフェードイン。外側クリックで閉じる。コンテキストメニューの基本形。

  • ドラッグ

    ドラッグ式ボトムシート解説あり

    Draggable Bottom Sheet

    画面下からせり出すシート。ハンドルをドラッグして「半分/全開/閉じる」の3段階にスナップする。iOS/AndroidのモバイルUI定番。

  • クリック

    コンテキストメニュー

    Context Menu

    ステージ上を右クリック(長押し)すると、カーソル位置にメニューが開く。アイコン付き項目・区切り線・破壊的項目を持ち、項目クリック・外側クリック・Escで閉じる。

  • クリック

    アクションシート

    Action Sheet

    画面下からせり上がるiOS風のアクションシート。操作の一覧と、離れた位置の「キャンセル」を持ち、破壊的操作は朱色で示す。背景クリック・Escで閉じる。