ANSIフォアグラウンドvsバックグラウンドカラーコードの解説

ANSIフォアグラウンド(テキスト)カラーコードとバックグラウンドカラーコードの違いを理解する。標準色(30-37、40-47)と明るい色(90-97、100-107)のSGRコード範囲。

Standard Colors

詳細な説明

ANSIのフォアグラウンドvsバックグラウンドカラー

ANSIエスケープシーケンスは、異なるSGRパラメータ範囲を使用してフォアグラウンド(テキスト)カラーとバックグラウンドカラーを区別します。この区別を理解することは、ターミナルカラーを扱う上で基本的です。

フォアグラウンドカラーコード

フォアグラウンドコードはテキスト文字自体の色を設定します:

  • 標準フォアグラウンド: 30-37(黒から白)
  • 明るいフォアグラウンド: 90-97(明るい黒から明るい白)
  • 256色フォアグラウンド: 38;5;N (Nは0-255)
  • トゥルーカラーフォアグラウンド: 38;2;R;G;B(任意のRGB値)

バックグラウンドカラーコード

バックグラウンドコードはテキストの背後の色を設定します:

  • 標準バックグラウンド: 40-47(黒から白)
  • 明るいバックグラウンド: 100-107(明るい黒から明るい白)
  • 256色バックグラウンド: 48;5;N (Nは0-255)
  • トゥルーカラーバックグラウンド: 48;2;R;G;B(任意のRGB値)

フォアグラウンドとバックグラウンドの組み合わせ

セミコロンで区切ることで、1つのエスケープシーケンスで両方を設定できます:

# 赤い背景に白いテキスト
echo -e "\033[37;41m赤に白\033[0m"

# ダークブルー背景に明るいシアンテキスト
echo -e "\033[96;44mシアンに青\033[0m"

# 256色:ダークグレー背景にオレンジテキスト
echo -e "\033[38;5;208;48;5;236mオレンジにグレー\033[0m"

リセットコード

  • 39 はフォアグラウンドのみをデフォルトカラーにリセット
  • 49 はバックグラウンドのみをデフォルトカラーにリセット
  • 0 はフォアグラウンドとバックグラウンドの両方およびすべてのフォーマットをリセット

パターン認識

フォアグラウンドとバックグラウンドコードのオフセットは常に10です:フォアグラウンド31(赤)はバックグラウンド41(赤)に対応し、フォアグラウンド92(明るい緑)はバックグラウンド102(明るい緑)に対応します。この一貫したパターンによりコードを覚えやすくなります。

ユースケース

フォアグラウンドvsバックグラウンドカラーの理解は、読みやすいターミナル出力を設計する際に重要です。アクセシビリティのためにテキストと背景色の間に十分なコントラストを確保する必要があります。この知識は、ターミナルアプリケーションでカラーテーブルヘッダー、ハイライトされた検索結果、ステータスバー、メニュー選択を作成するために不可欠です。

試してみる — ANSI Color Code Reference

フルツールを開く