ANSIトゥルーカラー(24ビットRGB) - ターミナルで1600万色

フォアグラウンドにANSIエスケープコード38;2;R;G;B、バックグラウンドに48;2;R;G;Bを使用してターミナルで24ビットトゥルーカラーを使用。主要ターミナルのサポートガイドと例。

True Color

詳細な説明

ターミナルでの24ビットトゥルーカラー

トゥルーカラー(24ビットカラーまたはダイレクトカラーとも呼ばれる)では、ターミナル出力で1670万のRGBカラーのいずれかを使用できます。これはWebやデスクトップアプリケーションの全色範囲に匹敵する、最も柔軟なANSIカラーモードです。

エスケープシーケンス形式

  • フォアグラウンド: \033[38;2;R;G;Bm (R、G、Bは0-255)
  • バックグラウンド: \033[48;2;R;G;Bm (R、G、Bは0-255)

# カスタムオレンジフォアグラウンド
echo -e "\033[38;2;255;165;0mオレンジテキスト\033[0m"

# 特定のブランドカラー(#6366F1 - Indigo)
echo -e "\033[38;2;99;102;241mブランドカラー\033[0m"

# グラデーション効果
for i in $(seq 0 5 255); do
  echo -en "\033[38;2;${i};0;$((255-i))m#\033[0m"
done
echo

HexをANSIトゥルーカラーに変換

#FF6B35のような16進数カラーを変換するには:

hex_color = "FF6B35"
r = int(hex_color[0:2], 16)  # 255
g = int(hex_color[2:4], 16)  # 107
b = int(hex_color[4:6], 16)  # 53
print(f"\033[38;2;{r};{g};{b}mカラーテキスト\033[0m")

ターミナルサポート

トゥルーカラーは以下でサポートされています:

  • 完全サポート: iTerm2、Windows Terminal、Alacritty、Kitty、WezTerm、GNOME Terminal(3.18+)、Konsole(18.07+)、foot
  • 部分的/サポートなし: macOS Terminal.app(サポートなし)、古いPuTTYバージョン、tmux(TcまたはRGB terminfo機能が必要)

トゥルーカラーサポートの検出

# COLORTERM環境変数を確認
if [ "$COLORTERM" = "truecolor" ] || [ "$COLORTERM" = "24bit" ]; then
  echo "トゥルーカラーサポートあり"
fi

フォールバック戦略

最大互換性のために、フォールバックチェーンを実装:トゥルーカラー > 256色 > 16色 > カラーなし。COLORTERMTERM環境変数を確認して最適なカラーモードを決定します。

ユースケース

トゥルーカラーは、ターミナルでの画像ビューア(chafa、img2txt)、ターミナルベースのデザインツール、カラーピッカーユーティリティ、特定のブランドカラーに一致させる必要があるアプリケーションなど、ピクセルパーフェクトなカラー精度が必要なターミナルアプリケーションに最適です。bat、delta、gumなどの最新CLIツールは、リッチな構文ハイライトとUIテーマにトゥルーカラーを使用しています。

試してみる — ANSI Color Code Reference

フルツールを開く