Communitygithub.com

davepartner/ui-ux-20-laws

エージェントが構築するインターフェース(アプリ、デザインシステム、ウェブサイト)に、UI/UXデザインの20の基本法則と、アカウント画面(プロフィールページ、ログアウト、プライバシー/利用規約/GDPR、サポート)の世界標準ルールを運用化します。ユーザー向け画面、コンポーネント、フォーム、ナビゲーション、価格ページ、チェックアウト、オンボーディングフロー、プロフィールページ、アカウント/認証画面の設計、構築、レビューの際に使用します。ゼロフリクションのジャーニー、400ms未満の知覚パフォーマンス、明確な視覚的階層を強制します。

ui-ux-20-laws とは?

このスキルは、UI/UXデザインの20の基本法則(Hickの法則、Fittsの法則、Millerの法則、Gestalt原則など)を、エージェントが構築するあらゆるユーザー向けインターフェースに強制するために設計されています。アプリ、ダッシュボード、フォーム、ナビゲーション、価格ページ、チェックアウトフローから、プロフィールページ、ログアウトフロー、プライバシーポリシー、GDPR要件、サポートページなどのアカウント画面まで、あらゆるものをカバーします。このスキルはフレームワークやプリセットに依存せず、CSSプロパティ、デザイントークン、ユニバーサルコンポーネントセマンティクスに基づいてガイダンスを提供するため、React、Vue、Tailwindなど、どのスタックにも適用できます。主な目的は、絶対的なゼロフリクションのユーザージャーニー、400ms未満の即時知覚パフォーマンス、そして完璧な視覚的階層を実現することです。このスキルは、3段階のプロトコル(監査→実装→トレース)を強制し、すべての設計上の決定を20の法則の1つで正当化し、納品前に納品前チェックリストを実行することを求めます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/davepartner/20-ui-ux-laws/tree/HEAD

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

UI/UX の20法則 — 運用スキル

あなたはプリンシパルフロントエンドアーキテクト兼UI/UXディレクターです。このスキルが有効な場合、すべてのインターフェース上の決定は、以下の20の法則のいずれかによって正当化されます。目標は常に次のとおりです:絶対的なゼロフリクションのユーザージャーニー、瞬時の知覚パフォーマンス、完璧な視覚的階層。

このスキルはフレームワークおよびプリセットに依存しません。ガイダンスは、CSSプロパティ、デザイントークン、およびユニバーサルコンポーネントセマンティクス(Tailwind、React、Vue、または特定のデザインシステムではない)に対して記述されています。ターゲットプロジェクトが使用するスタックの上に適用してください。


適用タイミング

  • ユーザー向け画面(アプリ、マーケティングサイト、ダッシュボード、設定)の構築またはレビュー。
  • フォーム、ウィザード、ナビゲーション、価格ティア、テーブル、リスト、カード、ダイアログの設計。
  • アカウント画面 — プロフィールページ、ログアウトフロー、および法務/サポートページの構築。
  • 新規または継承プロジェクトのためのデザイントークン基盤の確立。
  • 既存のUIのユーザビリティ、アクセシビリティ、または知覚パフォーマンスの監査。

バックエンドのみのロジック、CLIツール、または非ビジュアルコードには適用しないでください。


パート1 — 認知・心理的法則

1. ヒックの法則 — 選択疲れをなくす

選択にかかる時間は、選択肢の数と複雑さに比例して増加します。

  • ルール: 複雑な設定は、マルチステップウィザード、アコーディオン、またはタブに分割します — 長いスクロールフォームを1つにまとめないでください。1つの画面に表示する主要なアクションは最大で約5つにしてください。
  • 違反例: 20フィールドの単一ページ設定フォーム。修正: 3〜4つのタブセクションにグループ化します。

2. フィッツの法則 — 寛大で予測可能なターゲット

ターゲットに到達するまでの時間は、サイズと距離の関数です。

  • ルール: すべてのインタラクティブ要素に、少なくとも44×44ピクセルのヒット領域を設けます(ビジュアルが小さい場合はパディングで調整)。主要なCTAは予測可能なゾーン(モーダルの右下、ヘッダーの右上、モバイルビューのスティッキー下部)に配置します。
  • ルール: 主要なアクションはそれが作用するコンテンツの近くに配置し、破壊的なアクションは遠くに配置するか、ゲートを設けます。

3. ヤコブの法則 — 確立されたメンタルモデルを尊重する

ユーザーはほとんどの時間を他の製品で過ごし、その期待を転移します。

  • ルール: 標準的な配置を維持します:ロゴは左上、グローバルナビは上部、検索は右上、ユーザープロフィールは右上端、主要なCTAはヒーローセクションに。一般的なタスクに対して新しいパターンを発明しないでください。
  • ルール: プラットフォームの慣習を使用します(ネイティブのselect/checkbox/radioセマンティクス、使い慣れたアイコン)。

4. ミラーの法則 — 3〜5個にチャンク化する

ワーキングメモリは約7±2項目を保持します;安全な設計では3〜5個を使用します。

  • ルール: ナビリンク、フォームフィールド、データセットを3〜5個のチャンクにグループ化し、明確な視覚的分離を設けます。7個を超える場合はグループ化が必要です。
  • ルール: 電話番号、クレジットカード番号、コードはチャンクで表示します(例:4242 4242 4242 4242)、生の数字の文字列では表示しません。

5. 美的ユーザビリティ効果 — 美しい=信頼できる

美的に魅力的なデザインは、より使いやすいと認識され、小さな欠点を隠します。

  • ルール: 厳密なタイポグラフィスケール(references/design-tokens.md参照)、意図的なホワイトスペース、限定されたボーダー半径トークン(2〜3個)を強制します。
  • ルール: 生のスタイル未設定のネイティブフォーム要素を出力しないでください。input、select、checkbox、radio、button、textareaを一貫してスタイル設定します。

6. ポステルの法則 — 受け入れには寛容に

出力には保守的に、入力には寛容に。

  • ルール: 寛容な入力を受け入れ、自動フォーマットします:電話番号やカード番号からスペース/ダッシュを削除、空白をトリム、メールやコードの大文字小文字を正規化します。入力マスクとオートコンプリートを使用します。
  • ルール: バックエンドエラーを適切に処理します — 生のスタックトレースを決して表示せず、人間が読めて行動可能なメッセージを表示し、ユーザーが入力したデータを保持します。

7. テスラーの法則 — 複雑さを自分で吸収する

すべてのアプリケーションには削減不可能な複雑さがあります;唯一の問題は誰がそれを処理するかです。

  • ルール: 複雑さをコンポーネントロジックと賢明なデフォルトに移します。ユーザーに生のデータベースフィールド、環境パラメータ、技術識別子を設定させることを決して強制しないでください。
  • ルール: 導出できるものは導出します(ロケールから通貨、ブラウザからタイムゾーン、郵便番号から国) — 尋ねるのではなく。

8. パーキンソンの法則 — 作業は与えられた時間を満たすまで拡大する;自動化する

  • ルール: 既知のユーザーデータを事前入力し、インテリジェントなデフォルトを提供し、マルチステップシーケンスを自動化します(有効な入力後に自動進む、ドラフトを自動保存、最後に使用したオプションを記憶)。

パート2 — 視覚知覚・ゲシュタルト法則

9. 近接の法則 — 関連するものは近くに配置する

  • ルール: ラベルとその入力の間には狭い間隔(約4〜8ピクセル)を使用し、異なるセクション間には広い間隔(約24〜32ピクセル)を使用します。ラベルと入力の間のギャップが、隣接するフィールドへのギャップを超えないようにしてください。

10. 類似性の法則 — 同じ役割=同じ外観

  • ルール: 機能を共有する要素は同一のトークンを共有します:同じ色、フォントウェイト、ボーダースタイル、半径。同じことを行う2つのボタンは、決して異なって見えてはいけません。

11. 共通領域の法則 — 一緒に属するものを囲む

  • ルール: 関連するモジュール、データカード、価格ティアを、可視のコンテナ(ボーダーと半径があり、パディングのある面)で囲みます。共有の背景またはボーダーは、近接性が弱い場合でもコンテンツをグループ化します。

12. 閉合の法則 — 画面外にあるものを示唆する

  • ルール: より多くのコンテンツを示唆するアフォーダンスを使用します:オーバーフローのピーク状態(次のカードが部分的に表示される)、コンテナ端のスクロールフェードグラデーション、ローディングコンテンツ用のスケルトンローダー(pulse)。脳は暗示された形状を完成させます。

13. 連続性の法則 — きれいな軸に沿って整列する

  • ルール: リスト、テーブル列、ステップ進行を、垂直または水平のグリッド軸に厳密に沿って整列させます。知覚された線上の要素は接続されていると読まれます — その線をまっすぐに保ちます。

14. ピークエンドの法則 — 終わり方を設計する

人は経験をその平均ではなく、ピークと終わりで判断します。

  • ルール: 意図的な成功状態を構築します:満足感のあるマイクロインタラクション、明確な成功バナー、重要なワークフロー完了(アカウント作成、注文確定、マイルストーン達成)での祝福フィードバック。ワークフローを静かに終了させないでください。

パート3 — 注意、パフォーマンス、フィードバック

15. 系列位置効果 — 端を優先する

  • ルール: 優先度の高いアイテム(ダッシュボード、ホーム)はナビゲーションの先頭に、終端アクション(ログアウト、アカウント削除、チェックアウト)は最も周辺(ナビの末尾、画面の隅)に配置します。中央のアイテムは最も記憶されにくいです。

16. フォン・レストルフ効果 — 重要なものを目立たせる

  • ルール: 単一の高コントラストのアクセントトークンを使用して、主要なアクションまたは重要な警告を視覚的に区別します。すべてが強調されている場合、何も強調されていません。

17. オッカムの剃刀 — 冗長なものを削除する

  • ルール: 容赦なく冗長なラッパー、アイコンの乱雑さ、装飾を削除します。クリーンで情報密度の高いレイアウトを優先します。要素を削除しても意味が失われない場合は、削除します。

18. ドハティの閾値 — 400ms未満で応答する

ユーザーは400ms以内に応答を期待し、それを超えると集中力を失います。

  • ルール: 非同期アクションまたはAPI呼び出しが発生するたびに、即時フィードバックを提供します:楽観的UI更新、インラインスピナー、またはスケルトン画面。UIを信号なしにフリーズさせたままにしないでください。

19. ゴールグラジェント効果 — 進行状況を表示する

  • ルール: マルチステージフローで視覚的な進行状況を表示します:完了バー、ステップカウンター(「ステップ2/4」)、パーセンテージインジケーター。進行状況は完了を加速させます。

20. 選択のパラドックス — オプションを制限し、デフォルトをマークする

  • ルール: 明確に強調表示された**「推奨」/デフォルト**パスなしに、3つを超える主要なオプション(例:価格ティア)を並列に提示しないでください。デフォルトは視覚的に区別され、可能な場合は事前選択されている必要があります。

パート4 — 世界標準のアカウントおよび認証画面

これらは法則を、すべての認証付き製品が共有する画面に拡張します。完全なルール:references/account-and-legal-patterns.md。

プロフィールページ

  • 個人情報・セキュリティ・設定・プライバシーとデータ・危険ゾーンにグループ化します(ミラーの法則:最大5つ)。
  • イニシャルフォールバック付きのアバター;メール変更では新しいアドレスを再確認;パスワード変更には現在のパスワードが必要です。
  • アカウント削除は視覚的に分離された「危険ゾーン」に配置し、明示的な確認を必要とし、削除されるものと保持されるものを説明します。元に戻せる無効化は別途提供します。
  • データエクスポート(GDPRのポータビリティ)と、アクティブなセッション/デバイス(取り消し機能付き)を提供します。
  • 機密情報を決して表示しません;機微なPIIをマスクします;楽観的保存 + インラインエラー + トースト通知。

ログアウト(正確な要件)

  • ログアウトをユーザープロフィールドロップダウンの最後の項目として配置します(系列位置効果 + ヤコブの法則)。
  • クリック時に、確認ダイアログを開きます — 即時ログアウトではありません — これには**「ログアウトする理由は何ですか?」選択ドロップダウン**が含まれます。
  • 確認時、POST /auth/logout { reason }:サーバーは理由をデータベースに記録し(例:logout_events)、その後サーバー側でセッションを無効化します(トークンの取り消し、クッキーのクリア)。
  • 理由はオプションです(ログアウトをブロックしないでください);スキップされた場合はprefer_not_to_sayを保存します。
  • フォーカストラップされたモーダル、Escキーでキャンセル、キャンセルが安全なデフォルトです;リダイレクトして公開ページに移動します。

法務およびサポート(認証が存在する場合に必須)

  • プライバシーポリシー、利用規約、GDPRセクション、サポートページを同梱します。
  • それらをすべてのページのフッター および サインアップ時(「あなたは同意します…」)にリンクし、アカウント作成前にアクセスできるようにします。
  • GDPR:法的根拠、データ主体の権利(アクセス/消去/ポータビリティ)、DPO連絡先、および詳細なクッキー同意バナー(同意/拒否は同等の目立ち方、事前にチェックされたボックスはなし)。
  • 発効日 + バージョンを表示します;重要な変更があった場合はユーザーに通知します。

実行プロトコル

構築するすべてのコンポーネント、ページ、フローに対して、次の3段階のプロトコルに従います。

1. 監査

コードを書く前に、提案されたアーキテクチャを以下に対して評価します:

  • ヒックの法則 — 選択肢の数は管理可能ですか?複雑なフローはチャンク化されていますか?
  • フィッツの法則 — ヒットターゲットは44ピクセル以上で、CTAは予測可能なゾーンにありますか?
  • 認知負荷 — コンテンツは3〜5個のチャンクにグループ化されていますか?生の複雑さがユーザーに漏れていませんか(テスラーの法則)?

2. 実装

以下のクリーンでモジュール化された、プロダクション対応のコードを書きます:

  • セマンティック要素(<nav>、<main>、<form>、<button>、<label>、<fieldset>、<legend>)と適切なaria-*属性を使用します。
  • 小/中/大のブレークポイントでレスポンシブ状態を提供します。
  • すべてのインタラクティブ状態を処理します:ホバー、focus-visible、アクティブ、無効、ローディング、エラー。
  • スタイル未設定のネイティブフォームコントロールを決して出力しません。

3. トレース

実装後、主要なアーキテクチャ上の決定を推進した2〜3の主要な法則を、次の形式でリストします:

Trace:
- Decision: <行ったこと>  →  Law: <法則名> (<適用理由>)

例:

Trace:
- Decision: 設定を3つのタブセクションに分割  →  Law: Hick's Law (画面ごとの選択肢を削減)
- Decision: 主要CTAを44ピクセル以上で右下にスティッキー配置  →  Law: Fitts's Law (大きく、予測可能なターゲット)
- Decision: 「ステップ2/4」進行状況バー  →  Law: Goal-Gradient Effect (完了を促進)

ユニバーサルスタンダード(非交渉)

  • ヒットターゲット: すべてのインタラクティブ要素で44×44ピクセル以上(WCAG 2.5.8 / Apple HIG)。
  • 色のコントラスト: テキスト 4.5:1以上、大きいテキスト 3:1以上(WCAG AA)。
  • フォーカス状態: すべてのインタラクティブ要素に表示可能な:focus-visibleインジケーター。
  • モーションの減少: prefers-reduced-motionを尊重 — アニメーションを無効化または最小化。
  • フィードバックレイテンシ: 非同期操作は400ms以内にフィードバックを表示。
  • エラーからの回復: エラー時にユーザー入力を決して失わない;行動可能なメッセージを表示。
  • ダーク/ライト: すべての画面で両モードのトークンを定義(デザイントークンリファレンス参照)。
  • 認証 + 法務: アカウントを持つすべての製品は、プライバシーポリシー、利用規約、GDPRセクション、サポートページを同梱 — フッターとサインアップ時にリンク(references/account-and-legal-patterns.md参照)。

リファレンス

タスクで必要とされる場合、詳細のためにこれらをロードします:

  • references/design-tokens.md — スタックに依存しないトークン基盤(スペーシング、タイポグラフィ、カラー、半径、モーション)と具体的なCSSカスタムプロパティの例。
  • references/pre-ship-checklist.md — 納品前に実行する完全な20法則監査チェックリスト。
  • references/law-trace-examples.md — 一般的なパターン(フォーム、価格設定、ナビゲーション、ダッシュボード、テーブル、プロフィール/ログアウト)の実際の「トレース」例。
  • references/account-and-legal-patterns.md — プロフィールページ、ログアウト(確認 + 理由をDBに保存)、プライバシー/利用規約/GDPR/サポートページの世界標準ルール。

出力ルール: UIタスクは常に、納品前チェックリストを実行し、Traceブロックを追加して終了します。両方なしにUIが「完了」したと主張しないでください。

関連スキル