📄
概念 📚 software-design-concepts

ビジュアルデザイン原則

タイポグラフィ・カラー・余白・グリッドを用いた視覚的一貫性と階層設計の基本原則

ビジュアルデザイン原則とは、情報を視覚的に整理し、ユーザーが直感的に理解・操作できるインターフェースを作るための基本的な指針を指す。デザインの4原則として知られる「コントラスト(Contrast)」「繰り返し(Repetition)」「整列(Alignment)」「近接(Proximity)」は、タイポグラフィ・カラー・余白・グリッドすべてに横断的に適用される考え方であり、これらを意識するだけでUI品質は大きく向上する。

カラー設計ではアクセシビリティの観点が欠かせない。WCAG(Web Content Accessibility Guidelines)では、通常テキストと背景のコントラスト比として4.5:1以上を要求しており、視覚障害やディスプレイ環境の違いに対応するための最低基準となる。カラーだけで情報を伝える設計(「赤いボタンが削除です」など)は色覚多様性のあるユーザーを排除するため、形・テキスト・アイコンを組み合わせた多重の情報伝達が必要である。

デザイントークンは色・タイポグラフィ・スペーシング・角丸などのデザイン上の決定事項を変数として定義する仕組みである。color-primaryspacing-mdのような意味論的な名前でトークンを定義することで、デザインの一貫性を保ちながらテーマ変更や多ブランド対応を容易にする。デザイントークンはデザインツール(Figma)とコード実装の間の契約としても機能し、デザインと実装の乖離を防ぐ。

コードレビューで着目するポイント

  • テキストと背景のコントラスト比が4.5:1(大きなテキストは3:1)以上を満たしているか
  • スペーシングやサイズがデザイントークンやデザインシステムの変数で定義されており、マジックナンバーが散在していないか
  • フォントサイズ・行間・フォントウェイトが情報の階層(見出し・本文・補足)を明確に反映しているか
  • コントラスト・テキスト・アイコンを組み合わせた多重の情報伝達になっているか(カラーのみに依存していないか)
  • グリッドシステムが統一されており、要素の配置に一貫性があるか
  • レスポンシブデザインでブレイクポイントが適切に設定されているか
  • ダークモード対応が必要な場合、CSS Custom Propertiesによるトークン切り替えが実装されているか

典型的なアンチパターン

マジックナンバーによるスペーシング: margin: 13pxpadding: 7px のような任意の数値が散在すると、画面全体での余白の一貫性が失われ、視覚的なリズムが崩れる。4の倍数や8の倍数をベースにしたスペーシングスケールをデザイントークンとして定義し統一すべきである。

カラーのみによる状態の伝達: エラー状態を赤色のみで示すデザインは、色覚多様性(約5%の男性に存在する)のあるユーザーには伝わらない。赤色に加えてエラーアイコン・エラーテキストを組み合わせて情報を多重化する必要がある。

コントラスト比の軽視: ブランドカラーのライトグレーを小さい本文テキストに使うと、コントラスト比が不足して読みにくくなる。デザインツールで実装前にコントラスト比を確認し、AAレベル(4.5:1)以上を担保することが必須である。

参考リソース

  • 標準: WCAG 2.1 - Webコンテンツのアクセシビリティガイドライン(コントラスト比の基準を含む)
  • 書籍: 「The Non-Designer’s Design Book」(Robin Williams) - 4原則をわかりやすく解説したデザイン入門書
  • ツール: Figma Contrast Plugin - Figma上でコントラスト比をチェックするプラグイン
  • ツール: Coolors - アクセシブルなカラーパレット生成ツール
  • 標準: Material Design / Apple HIG - タイポグラフィ・スペーシング・カラーの設計事例として参照価値が高い
  1. 1. 📄アーキテクチャスタイル
  2. 2. 📄ドメインモデリング
  3. 3. 📄モジュール分割と依存管理
  4. 4. 📄データモデリング
  5. 5. 📄API設計
  6. 6. 📄整合性とトランザクション
  7. 7. 📄非同期処理(Queue/Event)
  8. 8. 📄キャッシング
  9. 9. 📄ユーザーリサーチ
  10. 10. 📄情報アーキテクチャ
  11. 11. 📄インタラクションデザイン
  12. 12. 📄UX原則とヒューリスティクス
  13. 13. 📄アクセシビリティ(UX観点)
  14. 14. 📄UXメトリクス
  15. 15. 📄スケーラビリティ
  16. 16. 📄可用性とレジリエンス
  17. 17. 📄オブザーバビリティ
  18. 18. 📄環境・インフラ設計
  19. 19. 📄データマイグレーション
  20. 20. 📄セキュリティ設計原則
  21. 21. 📄データ保護とマルチテナント
  22. 22. 📄LLMセキュリティ
  23. 23. 📄ビジュアルデザイン原則
  24. 24. 📄デザインシステム
  25. 25. 📄コンポーネント設計
  26. 26. 📄スタイリング
  27. 27. 📄設計原則
  28. 28. 📄デザインパターン(GoF)
  29. 29. 📄エンタープライズパターン
  30. 30. 📄クリーンコード
  31. 31. 📄リファクタリング
  32. 32. 📄型設計とコントラクト
  33. 33. 📄関数型プログラミング概念
  34. 34. 📄エラーハンドリング
  35. 35. 📄テスト戦略と哲学
  36. 36. 📄テスト種別(機能テスト)
  37. 37. 📄テスト種別(UI・ビジュアル)
  38. 38. 📄テスト種別(契約・境界)
  39. 39. 📄並行処理・マルチスレッド
  40. 40. 📄パフォーマンス最適化
  41. 41. 📄ドキュメント管理
  42. 42. 📄バージョン管理と開発プロセス
  43. 43. 📄脅威モデリング
  44. 44. 📄通信保護(TLS)
  45. 45. 📄暗号化・機密情報管理
  46. 46. 📄認証・セッション管理
  47. 47. 📄認可・アクセス制御
  48. 48. 📄入力バリデーション
  49. 49. 📄インジェクション攻撃
  50. 50. 📄正規化(データベース正規化)