空・ローディング・エラー

データがない、読み込み中、問題が発生した場合の表示。これらの状態こそ先生の不安を取り除き、次のアクションに導く設計が求められる。

空状態(Empty State)

構成要素

空状態は3つの要素で構成する。

  • アイコン: 大きめのアイコンで視覚的に「空」であることを伝える。
  • メッセージ: 「なぜ空なのか」を端的に伝える。ネガティブな表現(「データがありません」)ではなく、状況を説明する表現(「生徒がまだ登録されていません」)を使う。
  • CTA: 次のアクションへのボタン(「生徒を追加」「CSVインポート」など)。先生が「次に何をすべきか」を迷わない。

空状態が発生する場面

初回アクセス時(データ未登録)、検索/フィルタ結果が0件の場合。検索結果0件の場合はCTAを「フィルタをクリア」にし、初回とは異なるメッセージにする。

ローディング(Loading)

スケルトンスクリーン

スピナー(回転するアイコン)ではなく、スケルトンスクリーンを使う。スケルトンはコンテンツが表示される場所と形状を予告するため、先生は「これからここにデータが表示される」と予測できる。一覧画面ならテーブルの形、詳細画面ならdt/ddの形のスケルトンを表示する。

レイアウトシフトの防止

スケルトンの高さとレイアウトは実際のコンテンツと一致させる。データが読み込まれたときに画面がガタつく(レイアウトシフト)と、先生が操作中のボタンがずれて誤クリックする原因になる。

エラー(Error)

インラインエラー

フォームのバリデーションエラーなど、特定のフィールドに関するエラーは該当フィールドの直下に表示する。赤テキスト + 赤ボーダーで視覚的に強調。メッセージは「どうすれば解決するか」を伝える。

ページレベルエラー

APIエラーや通信エラーなど、画面全体に影響するエラーは、コンテンツエリアにエラー状態を表示する。アイコン + メッセージ + リトライボタンで構成する。技術的なエラーメッセージ(500 Internal Server Error)は表示せず、先生にわかる言葉で伝える(「データの読み込みに失敗しました。再度お試しください。」)。

復旧ガイダンス

エラー表示には必ずリカバリー手段を提供する。「再読み込み」ボタン、「サポートに問い合わせ」リンク、「前の画面に戻る」リンクなど。先生が行き止まりにならないようにする。

Do / Don't

Do
  • 空状態にCTA(次のアクション)を提示する
  • ローディングにはスケルトンを使う
  • エラーメッセージを先生にわかる言葉で書く
  • エラーに必ず復旧手段(リトライ等)を提供する
Don't
  • 回転スピナーだけを表示しない(何が読み込まれるかわからない)
  • 「データがありません」だけで終わらせない
  • 技術的なエラーコードをそのまま表示しない
  • エラー画面を行き止まりにしない

プロトタイプ

生徒がまだ登録されていません

CSVインポートまたは手動で生徒を追加してください。
テンプレートをダウンロードして利用できます。