Skip to content

Reset bold/dim (SGR 22)

Category: sgr · Baseline: core · Tags: ECMA-48 Standard · Specification ↗

SGR 22 resets both bold (SGR 1) and faint/dim (SGR 2) attributes. The sequence is ESC [ 22 m. There is no way to reset bold without also resetting faint, or vice versa — they share this single reset code. This paired reset is one of the awkward corners of SGR. ECMA-48 uses SGR 22 for both bold and faint, so applications cannot clear only one of those attributes portably. Emulators should preserve that shared reset behavior even if their internal style model stores bold and dim separately.
How this is testedautomated
Send \x1b[1mX\x1b[22mY, verify the second cell has bold=false and dim=false.

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-05-17

Supported by all 12 tested terminals — universal adoption. Part of the Core TUI baseline.

Supported by 14 of 14 backends (100%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✓ yes
VS Code✓ yes
Warp✓ yes
Kitty0.46.2✓ yes
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
vt100.js0.2.1✓ yes
vterm.js0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes