本文へスキップ

ショートカット一覧

「?」ボタン(または ? キー)でキーボードショートカット一覧のオーバーレイを表示。kbd 風のキー表示で見やすく整理する。

ENGLISH

Keyboard Shortcut Overlay

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

プレビュー

クリック

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

仕様書

向く場面
  • ショートカットが多いエディタ・管理画面
  • ? キーの慣習を採るツール
  • 機能を覚えさせたいオンボーディング後の画面
避ける場面
  • ショートカットが 3 つ以下のアプリ
  • 入力欄が主体で ? が本文に頻出する画面
構成要素
  • 開くボタン
  • オーバーレイ
  • パネル見出し
  • 閉じるボタン
  • セクション
  • キー表示
持っている状態
  • 通常
  • ホバー
キーボード

? キー(入力欄にフォーカス中は除く)またはボタンで開き、閉じるボタンへフォーカス。Tab は一覧内に留まり、Esc・閉じるで閉じて開くボタンへ戻る

支援技術

role=dialog+aria-modal+aria-label。開閉ボタンに aria-label。キーは kbd 要素で表示。開くと閉じるボタンへ、閉じると開くボタンへフォーカスを移す。本文は overflow で縦スクロール可

動き

ボタンの背景 150ms。パネルの出現はアニメ無し

デザインの要点

  • キーは kbd 要素で 1 つずつ枠に入れ、+ で繋ぐ。「⌘S」と続けて書くと修飾キーの区別が読めない
  • ? キーは入力欄にフォーカスがある間は奪わない。本文に「?」を打つたびに一覧が開く事故を防ぐ
  • セクション見出し(編集/ナビゲーション/その他)で 9 件を 3 つに割る。並べるだけだと探せない
  • 開いたら閉じるボタンへフォーカスし、閉じたら開くボタンへ戻す。Esc も効かせる
実装メモ

プレビューは枠内に収めるため、オーバーレイを position:absolute(ステージ基準)で実装しています。実際のページで画面全体に重ねるときは position:fixed に変え、body 直下など高い階層へ置いてください。

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

<div class="sh-stage" id="sh-stage">
  <div class="sh-app">
    <p class="sh-app-title">エディタ</p>
    <p class="sh-app-hint">? キーまたはボタンでショートカット一覧を表示</p>
    <button class="sh-open-btn" id="sh-open-btn" aria-label="ショートカット一覧を開く">? ショートカット</button>
  </div>
  <div class="sh-overlay hidden" id="sh-overlay" role="dialog" aria-modal="true" aria-label="キーボードショートカット">
    <div class="sh-panel">
      <div class="sh-panel-header">
        <span class="sh-panel-title">キーボードショートカット</span>
        <button class="sh-close-btn" id="sh-close-btn" aria-label="閉じる">✕</button>
      </div>
      <div class="sh-body" id="sh-body"></div>
    </div>
  </div>
</div>

タグ

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

関連パーツ