画面設計で最初に決めるべきは、色でもアイコンでもなく 「どこに何を置くか」の枠組み です。枠組みが揃っていれば、細部が多少ぶれても利用者は迷いません。逆に枠組みがぶれていると、細部をどれだけ整えても「使いにくい」と言われます。
画面を4つの領域に分ける
業務システムの画面は、次の4領域に整理すると全画面で一貫させやすくなります。
- グローバル領域(ヘッダー・サイドメニュー):システム全体の移動。画面によって変わらない
- コンテキスト領域(画面タイトル・パンくず・画面共通アクション):今どこにいて、この画面で何ができるか
- 作業領域(検索条件・一覧・入力フォーム):業務そのもの。画面の主役
- アクション領域(登録・更新・削除などの実行ボタン):位置を全画面で固定する
最も効果が大きいのはアクション領域の位置を固定することです。「登録ボタンは常にフォーム右下」「一覧の一括操作は常に一覧の左上」と決めるだけで、画面間の迷いが消えます。
グリッドは8pxを基準にする
余白・高さ・間隔をすべて 8の倍数(細かい調整は4px)で決めます。理由は美的なものではなく、判断を減らすためです。
| 用途 | 推奨値 | 補足 |
|---|---|---|
| 関連する要素の間隔(ラベルと入力欄) | 4〜8px | くっついて見える距離 |
| フォーム項目どうしの間隔 | 16px | 別項目だと分かる距離 |
| セクション間の間隔 | 32px | 意味のまとまりが変わる距離 |
| 領域間の間隔(一覧と検索条件) | 24〜32px | — |
| コンテンツの左右パディング | 24px(PC) / 16px(タブレット) | — |
「16pxか18pxか」で悩む時間がなくなるのが最大の効果です。迷ったら16px、狭くしたいなら8px、広げたいなら24pxと、選択肢を3つに絞ります。
グリッドを決めたのに、実装側で margin-top: 13px のような値が混ざるケース。トークン(--space-2: 8px など)としてCSS変数を用意し、生の数値を書けない状態にするのが確実です。
情報密度は「1行の高さ」で決まる
業務システムの体感速度を左右するのは、一覧の1行の高さです。
1画面に8〜10件。40件の確認にスクロールが4回必要。比較作業が成立しない。
1画面に18〜22件。スクロールなしで大半を比較できる。行の識別も十分。
さらに、密度は業務の性質で切り替えられるようにしておくと親切です。
- 照合・比較が中心の業務 → 高密度(1行36px、フォント13〜14px)
- 1件ずつ精読する業務 → 標準密度(1行44px、フォント14〜15px)
- 表示密度をユーザー設定で切り替えられると、現場の満足度が上がる
コンテンツ幅と画面サイズの前提
設計の基準幅を決める
業務端末の主流は 1366×768 と 1920×1080 です。1280px幅で破綻せず、1920px幅で間延びしないことを条件にします。
最大幅を用途で使い分ける
入力フォームは可読性のため最大 960〜1080px で中央寄せ、一覧画面は列が多いため画面幅いっぱいに広げる、という使い分けが現実的です。全画面一律で最大幅を絞ると、列の多い一覧が窮屈になります。
縦の折り返し位置を意識する
1366×768 の端末では、ブラウザのUIを差し引くと表示領域の高さは約 600px です。検索条件+一覧の1行目までが600px以内に収まるかを必ず確認してください。
サイドメニューの幅と折りたたみ
| 状態 | 推奨幅 | 用途 |
|---|---|---|
| 展開時 | 220〜260px | 通常利用。ラベルが2階層まで読める |
| 折りたたみ時 | 56〜64px | アイコンのみ。一覧の横幅を確保したいとき |
| 非表示 | 0px | 全画面での帳票プレビューなど |
折りたたみ状態はユーザーごとに記憶してください。毎回展開し直す手間は、地味ですが日次で効いてきます。
固定表示(スティッキー)の使いどころ
スクロールしても常に見えているべき要素は限られます。
- 一覧のヘッダー行(列名)は必ず固定する
- 横スクロールする一覧では、キー列(伝票番号・氏名など)を左端に固定する
- 長い入力フォームでは、保存ボタンを画面下部に固定する
- 検索条件はスクロールで隠してよい(代わりに「条件を表示」で戻せるようにする)
ヘッダー・パンくず・検索条件・操作バーをすべて固定すると、実際にスクロールできる領域が画面の4割程度になります。固定してよいのは合計で画面高さの25%までを目安にしてください。
レイアウトのチェックポイント
- ヘッダー・サイド・本文の役割が全画面で一致している
- 実行ボタンの位置が画面間でぶれていない
- 余白がすべて4px/8pxの倍数になっている
- 1280px幅で横スクロールが発生しない
- 1920px幅でフォームが間延びしていない
- 固定領域の合計が画面高さの25%以内