SGR
from エスケープシーケンス
Select Graphic Rendition
SGR はテキストの見た目(色・装飾)を制御するCSIで、最終バイトは m。
基本フォーマット
code:_
CSI <パラメータ1> ; <パラメータ2> ; ... m
例: \x1b[1;31;42m → ボールド + 前景赤 + 背景緑
3.1 テキスト属性
table:_
パラメータ 効果 リセット
0 全属性リセット —
1 ボールド (太字) 22
2 暗い色 (Dim/Faint) 22
3 イタリック 23
4 下線 24
5 点滅 (遅い) 25
6 点滅 (速い) 25
7 反転 (前景色と背景色を入れ替え) 27
8 非表示 (Hidden) 28
9 取り消し線 29
21 二重下線 24
53 上線 (Overline) 55
code:_
ボールド+イタリック+下線:
\x1b[1;3;4mdecorated text\x1b[0m
バイト列: 1B 5B 31 3B 33 3B 34 6D ...テキスト... 1B 5B 30 6D
3.2 8色 (基本色)
code:_
前景色 (30–37):
\x1b[30m 黒 \x1b[31m 赤 \x1b[32m 緑 \x1b[33m 黄
\x1b[34m 青 \x1b[35m マゼンタ \x1b[36m シアン \x1b[37m 白
背景色 (40–47):
\x1b[40m 黒 \x1b[41m 赤 \x1b[42m 緑 \x1b[43m 黄
\x1b[44m 青 \x1b[45m マゼンタ \x1b[46m シアン \x1b[47m 白
明るい色 (高輝度):
前景 90–97: \x1b[90m 明るい黒(灰) ... \x1b[97m 明るい白
背景 100–107: \x1b[100m 明るい黒(灰) ... \x1b[107m 明るい白
デフォルトに戻す:
前景: \x1b[39m
背景: \x1b[49m
3.3 256色 (拡張色)
code:_
前景: \x1b[38;5;<n>m (n = 0–255)
背景: \x1b[48;5;<n>m
色番号の構造:
0–7: 標準色 (30–37 と同じ)
8–15: 高輝度色 (90–97 と同じ)
16–231: 6x6x6 カラーキューブ (n = 16 + 36*r + 6*g + b, 各0–5)
232–255: グレースケール (24段階)
例:
\x1b[38;5;196m → 前景を明るい赤に (カラーキューブ)
\x1b[48;5;236m → 背景を暗いグレーに (グレースケール)
\x1b[38;5;82m → 前景を明るい緑に
バイト列 (38;5;196):
1B 5B 33 38 3B 35 3B 31 39 36 6D
ESC [ 3 8 ; 5 ; 1 9 6 m
3.4 True Color / 24ビットカラー
code:_
前景: \x1b[38;2;<r>;<g>;<b>m (各 0–255)
背景: \x1b[48;2;<r>;<g>;<b>m
例:
\x1b[38;2;255;128;0m → 前景をオレンジに (R=255, G=128, B=0)
\x1b[48;2;30;30;30m → 背景を暗いグレーに
バイト列 (38;2;255;128;0):
1B 5B 33 38 3B 32 3B 32 35 35 3B 31 32 38 3B 30 6D
ESC [ 3 8 ; 2 ; 2 5 5 ; 1 2 8 ; 0 m
3.5 下線の色 (拡張)
一部のターミナルは下線の色を独立して設定できる:
code:_
下線色 (256色): \x1b[58;5;<n>m
下線色 (True Color): \x1b[58;2;<r>;<g>;<b>m
下線色リセット: \x1b[59m
下線スタイルの拡張 (kitty等):
\x1b[4:0m 下線なし
\x1b[4:1m 直線
\x1b[4:2m 二重線
\x1b[4:3m 波線 (curly)
\x1b[4:4m 点線 (dotted)