UI/UX 設計スキル
UI の設計判断(何を・どこに・どの深さで・どんな器で置き、どう気づかせるか)を行うための思考手順と判断基準。確立されたデザイン理論は再解説せず、各場面で「どのレンズに則って検討するか」を指名する(レンズ=学習済みの知識を呼び出す名前)。
スコープ
- 使う: 新規画面・機能の UI 設計、アクション・ボタンの配置判断、既存 UI の整理・統合・シンプル化、画面遷移・情報構造の設計、UI 設計・仕様のレビュー。
- 使わない: 色・タイポグラフィ・装飾などビジュアル表現の作り込み、コンポーネントの実装詳細、コードのモジュール分割(module-boundary-design)、API 設計(restful-api-design)。
- 軽量パス: 既存パターンの内側で完結する軽微な変更(文言修正・既存一覧への項目追加など)は、手順全体を課さず「決定領域マップ」の該当行と境界条件だけを参照する。新しい入口・画面・フローを作る判断が入った時点で通常パスに切り替える。
前提原則(すべての判断に先立つ3つ)
原則0: 変更コストの高い側から確定する
AI 駆動開発でも変更コストは「データモデル・構造 > フロー > UI 表層」の勾配を持つ。高コスト側から順に確定し、安価になった UI 表層は一発勝負ではなく反復検証の道具として使う。使い捨てプロトタイプを中間物として挟む方法論は採用しない。構造仮説の検証は「実 UI + モックデータ(50行程度)」で行い、当たりが付いてから高コストなデータモデルを本実装する。人間の知覚・認知・行動に関する法則は人間側の定数であり、開発コスト構造がどう変わっても不変で適用する。
原則1: 動機の確定度で名詞と動詞を棲み分ける
| 面 | ユーザーの状態 | 設計様式 |
|---|---|---|
| ナビゲーション面(サイドバー・ダッシュボード・一覧起点) | 動機が未確定 | オブジェクト指向: 名詞で全体像を提示し、対象→行動の順に選ばせる(OOUI) |
| 動線上(作業中画面のアクション) | 動機が確定 | タスク指向: 動詞の単一入口→段階的開示(Progressive Disclosure) |
両方式は対立ではなく入れ子である(名詞の世界の中に動詞の入口が埋め込まれる)。同一プロダクト内に両方が共存するのが正しく、使い分けは画面の性質で決まる。
原則2: シンプルさは4戦略から選ぶ。「隠す」と「消す」を区別する
画面はシンプルに保つ。ただし複雑さは消えず移動するだけ(Tesler's Law)なので、手段は Colborne の4戦略(Remove / Organize / Hide / Displace)から明示的に選ぶ。Hide を選んだら再発見経路(動線上の配置・情報の匂い)を必ず維持する。「どこへ移すか」を決めずに隠さない。
設計手順(順序を守る)
いきなり UI から始めない。以下を応答にコピーして進捗を追跡する:
- [ ] 0. 前提確認: 誰が使うか(ロール・利用頻度・デバイス)・どの面か(ナビ面/動線上)
- [ ] 1. オブジェクト識別: この UI が扱う名詞と関係の抽出(OOUI のオブジェクト抽出)
- [ ] 2. 全体構造: 各オブジェクトのビュー(コレクション/シングル)・配置面・ナビ上の位置づけ(JJG の Structure 段階)
- [ ] 3. 行動フロー: 動機の発生地点→入口→段階開示→完了を「場所・操作可能要素・接続」で描く(Breadboarding / Wireflows)
- [ ] 4. データ状態の網羅: references/data-states.md のチェックリストを全状態について埋める
- [ ] 5. UI 具体化: 器の選択→コンポーネント→視覚階層→実データ相当で検証(lorem ipsum 禁止)
- 手順1と手順4は意図的に分割されている。属性・データ状態の詳細化はフロー確定後に行う(早期の属性詳細化は枝葉の議論で全体構造の合意を遅らせる)。
- 手順1〜2の厳密さには最も高い投資対効果がある。この段階のミスはそのまま高コストなデータモデル変更に直結する。
- 手順3↔5の往復は安価であり、フローと UI の間で迷ったら作って検証してよい。ただし手順0〜2を飛ばす理由にはならない(上流の質が UI 生成の品質上限を決める)。
red flags(手順スキップの兆候): 「画面イメージが先に固まっている」「とりあえずモーダルを足す」「単純な画面だから手順は不要」。単純に見える画面ほど手順0〜2は数分で終わる。省略するのではなく高速に通過する。
配置と動線の中核基準
各基準は「原則文 → 判断基準 → 歯止め」の形を持つ。
動機起点の配置
機能は、データモデルや管理メニューの論理ではなく、その機能を使いたい動機が発生する画面に置く。
- 判断基準: 「ユーザーはこの機能を使いたいと思うとき、どの画面を見ているか」に答え、その画面へ置く。
- 判断基準: 設定の帰属先(組織/拠点/個人などの階層)と配置場所を混同しない。帰属先はデータモデル上の区分であって動機の区分ではないため、配置を帰属先で割らず、帰属先の選択は入口通過後の開示層で行わせる。
- 歯止め: 動機発生点が複数ある場合は主要動線の1箇所に正を置き、他の画面には案内リンクを残す。
入口の統合と段階的開示
同じ動機で始まるアクション群は単一の入口に統合し、種別の選択は入口を通った後に行わせる。第一画面には「それができる」ことだけを、ユーザーの動機と同じ粒度の言葉で示す(動機が「何かを申請したい」なら入口は「申請」であり、種別の列挙ではない)。
- 判断基準(統合するか): ユーザーの最初の一言が同じか(「申請したい」「作成したい」)。同じなら統合し、異なるなら分離する。
- 判断基準(深さ): 最初に選ぶ操作=一次(常時表示)、入口を通った後に選ぶ操作=二次(開示層)。
- 歯止め: 開示は2段階以内。1つのメニュー・開示層に置くアクションは2〜6個。各段階のラベルが次の内容を予測させる(情報の匂いが立つ)ことが、深さを増やす正当化条件。
- 歯止め: 頻用者にはデフォルトタブ・前回選択の記憶・ショートカットで効率を担保する。
- 歯止め: 不可逆・破壊的操作の帰結は開示層に隠さない。
動線内完結と投資
作業の途中で必要になる副次機能は、画面遷移させずその場で完結させる。将来を楽にする投資行動(テンプレート化・お気に入り登録など)ほど遷移コストに弱いため、動線内完結を最優先する。
- 判断基準: 「この機能を使う動機は、別のどの作業の最中に発生するか」に答え、その作業の動線内に置く。
- 判断基準: 気づかせ方は pull 型にする(ユーザーが必要とする瞬間に視界へ入る位置に置く)。押し付け型の告知・プロモーションは Nagging(ダークパターン)になる。
- 歯止め: 動線に詰め込みすぎて主タスクの完了を妨げない。
配置=機能可用性の宣言(レビュー観点)
配置はグルーピングと適用範囲の宣言として読まれる。レビュー時は次を確認する:
- 1箇所にしか置かないことで「その画面の単位でしかできない」という誤解を生まないか。
- 分散配置が「別々の機能」という誤解を生まないか。
- 同じ配置パターンを他ロールの同種画面にも一貫して適用しているか。
決定領域マップ
該当する領域のレンズに則って検討する。レンズの正確な名称・拡張境界条件・確度は references/lens-catalog.md を参照する。
| # | 決定領域 | 指名するレンズ | 最重要の境界条件 |
|---|---|---|---|
| 1 | 入口と開示 | Progressive Disclosure、Hick's Law、Krug の第二法則 | 開示2段階以内・メニュー2〜6項目・ラベルの情報の匂いが深さの正当化条件 |
| 2 | ナビゲーションとIA | OOUI、Information Foraging、flat vs deep、ファセット分類 | ナビラベルに汎用動詞禁止・パンくずは深い階層のみ・ダッシュボードは運用系と分析系を混在させない |
| 3 | 知覚と配置 | ゲシュタルト原則、視覚階層、前注意的属性 | 強調は単一属性かつ希少に・余白で足りる所に罫線を足さない・配置=グルーピングの宣言 |
| 4 | 操作の物理 | Fitts's Law、ターゲットサイズ標準、サムゾーン、KLM-GOMS | タッチ最低24px(推奨44pt/48dp)・hover 依存禁止・破壊的操作はあえて届きにくく |
| 5 | 器の選択 | モーダル適用基準、ウィザード適用条件、Tabs Used Right、通知階層 | モーダルは短時間自己完結か重大確認のみ・タブは比較不要の同列内容のみ・エラーにトースト禁止 |
| 6 | フォーム | Luke Wroblewski のフォーム設計、reward early punish late、選択式優先 | 未エラーの欄を入力中に叱らない・プレースホルダをラベルにしない・2〜3択はラジオ(ドロップダウン禁止) |
| 7 | エラーと安全 | スリップ/ミステイクの区別、ポカヨケ、Undo 優先、意図的摩擦 | 確認ダイアログの乱用禁止(形骸化する)・type-to-confirm は不可逆操作のみ |
| 8 | フィードバックと時間 | システム状態の可視性、0.1/1/10秒、Doherty threshold、楽観的UI、empty states | 10秒超はバックグラウンド化・自動保存でもドラフト明示と明示的な確定操作を残す |
| 9 | 動線内の発見と投資 | Fogg Behavior Model(B=MAP)、Hooked の Investment、pull revelation | pull 型でなければ逆効果・投資の押し付けは Nagging 化する |
| 10 | B2B・業務システム | UI 密度、一括操作、Hide vs Disable、永遠の中級者 | 高密度は熟練×高頻度画面のみ・権限上不可は hide / 条件待ちは disabled+理由表示・既定 UI は中級者に最適化 |
| 11 | 言葉 | 動詞+目的語のボタンラベル、front-loading、ユーザーの言語 | ナビは名詞・ボタンは動詞の分業・表記は用語集で固定 |
| 12 | デフォルトと倫理 | デフォルト効果、ダークパターン類型、sludge | デフォルトは利用者利益基準・解約は契約と同等の手数・偽の緊急性/事前選択済み同意の禁止 |
アンチパターン
| アンチパターン | 症状 |
|---|---|
| 分散配置 | 同じ動機の機能を帰属先・種別ごとに別画面へばらまく |
| 隠しすぎ | 開示段階を増やしすぎて機能が発見されない |
| 統合しすぎ | 動機が異なるアクションまで1つの入口に押し込む |
| 遷移要求 | 作業中に必要になる機能のために別画面へ遷移させる |
| 全部見せ | 今できるアクションを一次層に全部並べる |
確度の規律
設計判断の根拠として理論・実験を引用するときは references/lens-catalog.md の確度管理表に従う。特に: 「Nine States of Design」は引用禁止(empty states と stress cases で語る)、Fogg モデルの閾値は「action line」ではなく behavior activation threshold と呼ぶ、ジャム実験(選択過多)と Zeigarnik 記憶効果は根拠に使わない。
references
| いつ | 読むファイル |
|---|---|
| 手順4(データ状態の網羅)に到達したら | references/data-states.md |
| 決定領域の拡張境界条件・レンズの正確な名称・引用の確度を確認するとき | references/lens-catalog.md |
| 入口統合・動線内投資・帰属選択の判断に迷ったとき(worked example) | references/case-studies.md |