• #UIデザイン
  • #UX
  • #設計原則
個人メモ

UIデザイン原則

UIデザインの基本原則をカテゴリー別に整理。

→ デザイン原則インタラクティブページ - Good/Bad例を比較できるインタラクティブ版


実装カテゴリー(実装しやすさ順)

Good/Bad例を作成する際の実装難易度でグルーピング。同じコンポーネントパターンで複数の原則を実装できる。

A. テキスト変更のみ(最も簡単)

UIコンポーネントは同じ、テキストの書き方だけでGood/Badを示せる。

No原則実装パターン完了
11ユーザーの言葉を使うラベル比較
33ナビゲーション項目は名詞にするナビ項目比較
44選択肢の文言は肯定文にするチェックボックスラベル
47デフォルトボタンには具体的な動詞を用いるボタンラベル比較
55エラー表示は建設的にするエラーメッセージ比較

B. 単一コンポーネント(ボタン/コントロール)

1つのコンポーネントでGood/Badを示せる。

No原則実装パターン完了
4シグニファイアボタンの見た目(押せそう/押せなさそう)
48ラジオボタンは単数選択、チェックボックスはオンオフ選択UI比較
49フリップフロップ問題を避けるトグルボタン比較
72肯定/否定ボタンの順序ボタン配置比較
74ハイライト表現は構成要素をひとつだけ変化させるハイライト比較
78タッチ操作する要素の大きさは7mm以上ボタンサイズ比較
93ホットスポットを広げるクリック領域比較

C. フォーム系(入力UI)

フォームコンポーネントでGood/Badを示せる。

No原則実装パターン完了
42よいデフォルトデフォルト値あり/なし
43制限コントロールを活用するテキスト入力 vs ドロップダウン
45値を入力させるのではなく結果を選ばせるスライダー vs プリセット
46入力欄を構造化する電話番号入力など
50ユーザーに厳密さを求めないバリデーション比較
51入力サジェスチョンを提示するオートコンプリート
39整合性を損なう操作を求めない重複入力の例

D. レイアウト/配置系

要素の配置やグルーピングでGood/Badを示せる。

No原則実装パターン完了
10視覚ゲシュタルトグルーピング比較
30ペンは紙の近くに置くツール配置比較
40入力フォームにはストーリー性を持たせるフォーム順序比較
41操作の流れを作る視線誘導比較
66操作の近くでフィードバックするフィードバック位置比較
84色やフォントを使いすぎないスタイル過多 vs シンプル
85整然とレイアウトする整列あり/なし

E. ナビゲーション系

ナビやメニューUIでGood/Badを示せる。

No原則実装パターン完了
59ウェイファインディングパンくず/現在地表示
60エスケープハッチホームリンクあり/なし
73メニュー項目の位置を変化させない固定 vs 動的メニュー
80ドリルダウンは上→下、左→右階層UI方向
81左が戻るで右が進む戻る/進むボタン配置
82モバイルでは包括的より階層的に情報密度比較

F. インタラクション/アニメーション系

動きやタイミングでGood/Badを示す(デモが必要)。

No原則実装パターン完了
8直接操作ドラッグ操作デモ
63画面の変化をアニメーションで表すトランジションあり/なし
64トランジションは両方向につける双方向アニメーション
65ユーザーの操作に対して0.1秒以内に反応遅延比較デモ
79ジェスチャはコマンド式ではなく直接操作式スワイプ操作デモ
90UIをロックしないローディング中の操作可否

G. モーダル/確認系

ダイアログやモーダルでGood/Badを示せる。

No原則実装パターン完了
32前提条件は先に提示する条件提示タイミング
54フールプルーフよりフェールセーフUndo vs 確認ダイアログ
57黙って実行する過剰確認 vs 即実行
62回答の先送り初期設定の強制 vs スキップ可能
67プログレッシブ・ディスクロージャ全表示 vs 段階的表示

H. 情報表示系

データや状態の表示方法でGood/Badを示せる。

No原則実装パターン完了
25オブジェクトは自身の状態を体現する状態表示あり/なし
28データよりも情報を伝える数値 vs 意味のある表現
31視覚的に何であるかを示し文字で説明するアイコン+テキスト
52スクロール画面では続きがありそうに見せる切れ目の見せ方
53プロパティの選択肢でプレビューを見せるプレビューあり/なし
96色に依存させない色のみ vs 色+形

Z. 概念的(UIで直接示しにくい)

設計指針として理解すべきだが、単一UIで示すのが難しいもの。後回しまたはドキュメントで説明。

No原則備考
1シンプルにする全体設計の話
2簡単にする全体設計の話
3メンタルモデル概念的
6一貫性システム全体の話
7ユーザーの主導権概念的
9モードレスシステム設計の話
17ヒックの法則選択肢数の話
18複雑性保存の法則概念的
83単純なものは単純なままに概念的
87ユーザーの道具にする概念的
99デザインは新しい意味を提案する哲学
100人類にポジティブな影響を与える哲学

デザインカテゴリー(内容別)

基本原則

No原則説明
1シンプルにする機能や情報を厳選し、できるだけ要素を少なくする。あらゆるデザインジャンルにおける基本原則。
2簡単にする利用方法を効率化し、目的達成までの手順と労力をできるだけ減らす。

認知・心理

メンタルモデルと知覚

No原則説明
3メンタルモデルユーザーが想像する利用モデルに合った構成と動きにする。学習可能なイディオムによってユーザーに利用モデルを与える。メタファを用いて概念や機能性を伝える。
4シグニファイア操作対象となる要素が見えていて、その意味が一目でわかるようにしておく。押せるものは押せそうに、押せないものは押せなさそうに見せる。
5マッピング操作する所と結果が反映される所の対応を把握できるようにする。位置関係、形、色、記号などによって手掛かりを与える。
6一貫性配色、形状、配置、振る舞いなどに一貫したルールを適用する。同じ性質のものは同じ表現、違う性質のものは違う表現にする。
10視覚ゲシュタルト近接、類似、閉鎖といったパターン(プレグナンツの法則)を用いてレイアウトし、要素同士のグループ関係を効果的に示す。
71直観的より慣用的に多くの人が言う「直観的」は「慣用的」の意味。人々がすでに知っているイディオムにすることが大事。

認知負荷

No原則説明
12ユーザーの記憶に頼らない参照すべき情報はそれが必要となるその場で参照できなければいけない。
17ヒックの法則選択肢の中からひとつを選ぶ場合、選択肢の数に比例して時間がかかる。
18複雑性保存の法則プロセスを単純化しようとしても限界がある。複雑性をできるだけユーザー側からシステム側に移動した設計にする。
19タスクコヒーレンスユーザーが最後に行ったことを覚えているだけでユーザーの行動を正しく予測したのと同じ効果がある。

操作・インタラクション

ユーザー主導

No原則説明
7ユーザーの主導権システムがユーザーをコントロールするのではなく、ユーザーがシステムをコントロールできるようにする。
8直接操作画面上のオブジェクトに直接触れて操作しているような感覚を与える。身体的な動作に追従してリアルタイムに表示を更新する。
9モードレスできるだけモードをなくす。UIがモードレスであれば、ユーザーは自由な順序で作業を行うことができる。
11ユーザーの言葉を使うインターフェース上で使う文言は、システム内部の技術用語や運営者の業界用語ではなく、ユーザーが普段使っている一般的な表現を用いる。

効率化

No原則説明
14プリコンピュテーション先人がすでに見つけている最適値をプリセットにしたり、デザインの過程で再利用する。
20メジャーなタスクに最適化する80%のユーザーは全機能の20%しか使わない(パレートの法則)。メジャーな要求への対応を優先する。
21パースエージョン説得的な仕掛けでユーザーの行動を促す。レコメンデーション、心理的な報酬、他者との比較などによって動機づけする。
22ショートカットを用意する経験あるユーザーが頻繁に実行することについて、通常の段階的な操作を短縮してより速く行う方法を提供する。
29ユーザーがとれる操作がひとつしかないなら自動化する現在許された入力が1種類だけであればシステムが自動で代行するべき。

タッチ・ポインティング

No原則説明
16フィッツの法則近くて大きいものほどポイントしやすく、遠くて小さいものほどポイントしにくい。
78タッチ操作する要素の大きさは7mm以上にするボタンをはじめ各種UIコントロールを、指で十分に押しやすい7〜10mm四方以上の大きさにする。
79ジェスチャはコマンド式ではなく直接操作式にするジェスチャに対する画面の反応は、対象の要素が直接的に追従するような振る舞いにする。
93ホットスポットを広げる表示されている矩形よりも広い範囲をタップ/クリック可能にする。

オブジェクト指向UI

オブジェクトの設計

No原則説明
23オブジェクトベースにする要求からオブジェクトを抽出してUIに反映する。ユーザーがオブジェクトに直接働きかけながら目的を達成できるようにする。
24ビューはオブジェクトを表象するインターフェースは、オブジェクトを表象するビューの集まりによって構成される。ひとつのオブジェクトは複数のビューによって異なる表現を持つことができる。
25オブジェクトは自身の状態を体現する画面上のすべてのオブジェクトは、自身の状態を視覚的かつリアルタイムに体現し続けなければいけない。
26名詞→動詞 の操作順序ユーザーがまず対象物(名詞)を選び、それからアクション(動詞)を選ぶようにする。これがGUIの基本的な操作順序。
35データをバインドする同じオブジェクトが複数のビューで見えている時、それらの状態を常に同期させる。
36ゼロ・ワン・インフィニティ個数に関して恣意的な仕様を作らない。要素の存在可能な個数は基本的に0か1か無限とする。
37すべての操作可能な要素は意味を持つ画面上で現在操作可能な要素や選択可能な項目はすべて、ユーザーのタスクにとって何らかの意味を持っている必要がある。

ラベルとアイコン

No原則説明
33ナビゲーション項目は名詞にする情報の種類ごとに画面を作り、ナビゲーション項目は名詞表現にする。
34アイコンは名詞または形容詞を表すアイコンはオブジェクト(名詞)、あるいは結果として得られる状態(形容詞)をモチーフにする。

ツール配置

No原則説明
30ペンは紙の近くに置くツール類は処理対象の近くに配置する。その場でモードレスに操作して逐次結果を確認できるようにする。

入力フォーム

データ入力の基本

No原則説明
38ユーザーが入力したものはユーザーのものユーザーが入力した値や設定した内容は基本的にすべて保存されるべき。
39整合性を損なうような操作をユーザーに求めない情報の整合性が損なわれる可能性がある操作をユーザーに求めない。生年月日と年齢を両方入力させるようなことはしない。
40入力フォームにはストーリー性を持たせる入力項目はユーザーにとって意味のあるグループにまとめる。身近なことや単純なものを先に、複雑なものを後にする。
41操作の流れを作る視覚ゲシュタルトを利用したグルーピングやストーリー性のある項目配置によってユーザーの視線と操作を誘導する。

入力支援

No原則説明
42よいデフォルト選択式の入力欄や設定項目に妥当性の高いデフォルト値を与えることでユーザーの操作を減らせる。
43制限コントロールを活用する入力可能な内容に制限がある場合は、ラジオボタン、ドロップダウン、スライダーなどの制限コントロールを用いる。
45値を入力させるのではなく結果を選ばせるパラメーターの値を設定させるよりも、得られる結果を示して選ばせる。
46入力欄を構造化する入力すべき値の書式に合わせて入力欄を分割または制限コントロール化する。
50ユーザーに厳密さを求めない半角と全角、ひらがなとカタカナ、ハイフンの有無など、入力書式の揺れをシステム側で吸収する。
51入力サジェスチョンを提示する途中まで入力したところで「入力しようとしていたこと」や「価値のある入力値」を選択肢として提示する。

ボタンと選択肢

No原則説明
44選択肢の文言は肯定文にする選択肢の文言はできるだけ肯定文にする。ラベルが否定形だと選択行為が「否定を肯定する」という意味になりわかりにくい。
47デフォルトボタンには具体的な動詞を用いる「OK」や「はい」ではなく、「保存」や「消去」など、実行されるアクションを表す具体的な動詞を用いる。
48ラジオボタンは単数選択、チェックボックスはオンオフAかBかの場合はラジオボタン、真か偽かの場合はチェックボックス。
49フリップフロップ問題を避けるひとつのボタンでオンとオフを切り替える場合、状態表現とラベルを分離する。
72肯定/否定ボタンの順序はプラットフォームのルールに従う明確なルールがない場合は「左が戻るで右が進む」に従って右を肯定ボタンにする。

エラー・制約

エラー回避

No原則説明
13コンストレイントユーザーの行動を意図的に制限することにより、誤操作を減らしたり有効な使い方を促したりする。
15エラーを回避する操作ミスを起こしにくくする。エラーメッセージをわかりやすく示すことも大事だが、それ以前にエラーが起きないように工夫することが重要。
32前提条件は先に提示する事前に満たしておくべき前提条件を長い手続きの途中や最後になってから求めない。
56可能性と確率を区別する滅多にない事を考慮しすぎて通常の利用を面倒にしてはいけない。メインケースを重視すべき。

エラー対応

No原則説明
54フールプルーフよりフェールセーフ間違ったとしても大丈夫なようにする方が重要。全ての操作が取り消し可能であれば、実質的に誤操作は存在しなくなる。
55エラー表示は建設的にする何が起きたのか的確に知らせ、そこからどうすればよいのかを示す。
57黙って実行するユーザーがやろうとしたことにいちいち確認をとったり、正常完了を報告したりしない。不可逆的かつデータ消失の恐れがある場合にのみ実行前の意思確認をする。

ビジュアルデザイン

レイアウト

No原則説明
27グラフィックのトーン&マナーを揃える色調・彩度・明度、グラデーション、ボーダー、影、角の取り方などの度合いを揃える。
84色やフォントを使いすぎない種類を増やしすぎると画面が乱雑になる。
85整然とレイアウトするグリッドに沿って整然と配置する。余白や揃えに反復性と一貫性を持たせる。

情報表示

No原則説明
28データよりも情報を伝えるユーザーは数値よりもその意味を知りたい。例えば何バイト使っているかより何割残っているかを示す。
31視覚的に何であるかを示し文字で説明するオブジェクトの存在や状態を視覚的に把握できるようにし、文字情報でそれを補足する。
52スクロール画面では続きがありそうに見せるスクリーンの下端にちょうどコンテンツの切れ目があるとスクロールできるように見えない。
53プロパティの選択肢でプレビューを見せるスタイル変更やツール選択時に、結果として得られる状態のプレビューを選択肢として提示する。

視覚効果

No原則説明
74ハイライト表現は構成要素をひとつだけ変化させる変化が大きすぎるとハイライトではなく別な種類の要素に見えてしまう。
75錯視を考慮する目の錯覚が生じて意図しない見え方になることがある。必要に応じて目視ベースで調整する。

フィードバック

アニメーション

No原則説明
63画面の変化をアニメーションで表す広い範囲を変化させる際には、0.1〜0.5秒程度のトランジションアニメーションをつける。
64トランジションは両方向につける状態Aから状態Bへの変化にトランジションをつける際は、逆方向の動きも状態Bから状態Aに戻る変化につける。

応答性

No原則説明
65ユーザーの操作に対して0.1秒以内に反応を返す反応が瞬時に行われていると感じる限界は0.1秒。10秒以上かかる処理には進捗率や残り時間の表示が必要。
66操作の近くでフィードバックするシステムの状態変化を示す時には、ユーザーが注目している場所の近くでフィードバックする。
90UIをロックしない数秒以上UIがロックされているとユーザーはアプリケーションを自由にコントロールしている感覚を失う。

ナビゲーション

道しるべ

No原則説明
59ウェイファインディング情報空間の中でユーザーが迷子にならないように道しるべを与える。今どこにいるのか、どこへ行けるのかなど。
60エスケープハッチいつでもすぐに最初の場所に戻れるよう避難口を用意する。
73メニュー項目の位置を変化させないユーザーはメニューの中で目当ての項目を空間的に記憶するので、位置関係が変わると学習できない。

画面遷移

No原則説明
80ドリルダウンは上→下、左→右上で選択した項目の内容が下に、左で選択した項目の内容が右に表示されるようにする。
81左が戻るで右が進む画面遷移の方向性を水平軸で示す場合、左を戻る(過去)に、右を進む(未来)に対応させる。
82モバイルでは包括的より階層的にモバイルでは一度に見せる情報を限定して階層的に見せるのが良い。

オンボーディング

No原則説明
61即座の喜びを与えるユーザーが製品を使い始めて数秒以内に成功体験を得られるようにする。
62回答の先送りはじめからユーザーにすべての意思決定を求めず、必要最小限のもの以外は回答を先送りできるようにする。
67プログレッシブ・ディスクロージャ初級者が簡単に使い始められるように最初は高度な機能を隠しておき、必要になった時にUIを追加表示する。
89ユーザーを教育するのではなくユーザーが学習できるようにするインターフェースに操作説明を書くのではなく、インターフェースを自己説明的にする。

国際化・アクセシビリティ

多言語対応

No原則説明
68アイコンのモチーフは特定の文化に依存させない特定の文化圏でのみ使われるサインや言語依存の慣用表現などを元にした記号は国際的なサービスで使わない。
69多言語化を想定したUIではラベルの長さの違いを考慮する言語によって単語の平均文字数は異なる。ドイツ語は長く、漢字やハングルは短くなる。
70◯✕△等の記号を安易に使わない◯と✕の肯定/否定のニュアンスは文化圏によって異なるので、国際的なインターフェースでは注意が必要。

アクセシビリティ

No原則説明
94音声読み上げに対応する非テキスト情報には代替テキストをつける。アクセシビリティを高める。
95文字の拡大に対応するプラットフォームやブラウザのテキスト拡大機能に対応する。
96色に依存させない色がなくても情報が伝わるようにする。グレースケールで表示して確認するとよい。
97ユーザーが自分のペースで作業できるようにする操作に時間制限を設けない。タイミングによって操作の有効性を変化させない。

記憶と学習

No原則説明
76空間的に記憶できるようにするユーザーが2次元上の任意の場所にオブジェクトを置いて空間的に記憶できるようにする。
77プロスペクティブメモリーユーザーが未来の自分のために手がかりを残せるようにする。ブックマーク、フラグ、付箋、下書き保存など。

設計哲学

ユーザーの道具

No原則説明
83単純なものは単純なままにシンプルな製品では簡単にできたことが成熟した製品では複雑になってはいけない。
86カスタマイズ機能に頼らないカスタマイズ機能に頼ることは、システムをより複雑にしてかえって学習のしやすさや保守性を低下させる。
87ユーザーの道具にするシステムは提供者の物ではなくユーザーの物として作る。ユーザーが自分の行為を強化するための道具と位置づける。
88ユーザーが自分なりの方法で作業を遂行できまたそれを改善できるようにするマニュアルレスよりもモードレスな道具を作る。道具の使い方を工夫することが創造性の源。

インタラクションの品質

No原則説明
58ガッツを見せるデザインには仕様を割り切るためのガッツが必要。網羅性や論理性や厳密さを優先しすぎると、むしろ基本的なデザイン趣旨がわかりにくくなる。
91ゲームを持ち込まない偶然性、意外性、ギャンブル性、難解さなどのゲーム性をインターフェースに含めてはいけない。(ゲームアプリを除く)
92動かしたままに動くのではなく動かしたいように動く思いどおりにコントロールできていると感じさせるために、適切な「あそび」や「補正」を含める。
98ユーザーイリュージョンをもたらすシステムの内部的な仕組みを隠しながら、バーチャルな世界観の中で対象を現し、ユーザーが作業に集中できるようにする。

理念

No原則説明
99デザインは新しい意味を提案するデザインは問題を解決するだけでなく、物事の新しい捉え方を導く。
100人類にポジティブな影響を与える道具のデザインは、人がもつ短所への寛容と長所の増進によって人類に奉仕し、生活を豊かにするためにある。

実装計画:Vueコンポーネント化

目的

UIデザイン原則のGood/Bad例を表示するVueコンポーネントを作成する。

データ構造

interface DesignPrinciple {
  no: number
  name: string
  description: string
  category: string      // 大カテゴリー
  subcategory?: string  // 中カテゴリー
  good?: GoodBadExample
  bad?: GoodBadExample
}

interface GoodBadExample {
  title: string
  description: string
  image?: string  // スクリーンショットやイラスト
  code?: string   // コード例がある場合
}

コンポーネント構成案

components/
  design-principles/
    DesignPrincipleCard.vue      # 単一原則のカード(Good/Bad表示含む)
    DesignPrincipleList.vue      # カテゴリー別リスト
    GoodBadComparison.vue        # Good/Bad比較表示
    CategoryNav.vue              # カテゴリーナビゲーション

実装ステップ

  1. データファイル作成(data/design-principles.ts
  2. DesignPrincipleCard.vue - 原則カード(タイトル、説明、Good/Bad)
  3. GoodBadComparison.vue - Good/Badの比較UI
  4. DesignPrincipleList.vue - カテゴリー別表示
  5. CategoryNav.vue - カテゴリー切り替え
  6. ページ統合(この記事またはVueページで使用)