Skip to main content
ansicode

SGR 5 — Blink (slow)

Blink the following text (≤ 150 blinks/minute).

Byte forms

Every common string-literal form so you can paste-and-search either direction.

\\x1b[\x1b[5m
\\033[\033[5m
\\e[\e[5m
ESC [ESC [ 5 m
hex1b 5b 35 6d

Live preview

Rendered in your browser via the same tokeniser the decoder uses — no terminal needed.

Blinking text

Description

ECMA-48 §8.3.117 defines SGR 5 as "slow blink" — at most 150 transitions per minute — and SGR 6 as "rapid blink" (> 150/min). The byte sequence is \x1b[5m. Almost no modern emulator implements the two rates separately; xterm explicitly collapses SGR 6 to SGR 5 and most others ignore SGR 6 entirely, so the slow-blink escape is what every cross-terminal "blink" library actually emits. The visual effect is the terminal alternating the character cell's foreground colour with its background colour at the implementation-defined rate (typically 0.5–1 Hz); the underlying bytes are stable, so the text remains selectable, copyable, and visible to screen readers. The matching close is SGR 25 (\x1b[25m) — surgical, leaves fg / bg / bold / italic / underline untouched.

Support varies more by *policy* than by capability. xterm, iTerm2, kitty, wezterm, gnome-terminal, Konsole and Ghostty animate the cell. Apple Terminal.app deliberately does not animate ("blink disagrees with Mac UI design") — the attribute is parsed but rendering is identical to non-blink. alacritty historically refused to animate as a UX choice; current builds (2024+) accept the attribute but render statically. Linux console / fbcon implements blink but the rate is locked to the hardware cursor blink rate. Both Windows Terminal and most Linux GUI emulators ship a "no blinking text" preference that suppresses SGR 5 globally — users who toggle it on (very common for accessibility) will never see your blink. The bigger concern is WCAG 2.x guideline 2.3.1, which caps any flashing content at 3 Hz to avoid seizure triggers; SGR 5 implementations sit below that floor, but photosensitive-epilepsy and vestibular-sensitivity complaints still recur from any flickering UI. Screen readers ignore the attribute entirely — the screen-readers pitfall extends here, since assistive software cannot render motion.

Disable with SGR 25 (\x1b[25m). The hard rule: never use blink as the sole signal for any user-meaningful content. Pair it with an explicit colour, icon, or text label per color-only-signal — a blinking word with no surrounding "[!]" / "[error]" prefix conveys nothing to anyone with blink globally disabled, on Apple Terminal.app, on alacritty, or running a screen reader. The terminfo cap is blink (tput blink / close via tput sgr0 since there is no surgical rmblink); many modern terminfo entries leave blink set even when the emulator ignores blink, so terminfo-based feature-detection is unreliable. Related: sgr-reset (SGR 0 — full reset), sgr-reverse (SGR 7 — a far safer cell-attention attribute with universal support), sgr-hidden (SGR 8 — the adjacent visibility attribute).

Spec citation: ECMA-48 §8.3.117 (SGR parameter 5)

Examples

bash
printf '\033[5mblink\033[25m steady\033[0m\n'
python
print('\x1b[5mblink\x1b[0m')
go
fmt.Print("\x1b[5mblink\x1b[0m")
javascript
console.log('\x1b[5mblink\x1b[0m')
c
printf("\x1b[5mblink\x1b[0m\n");

Frequently asked

Short answers to the questions developers actually search for this sequence.

Does anyone still render blink in 2026?
Yes, but unevenly. xterm, urxvt, Linux console / fbcon, gnome-terminal (VTE), konsole, and macOS Terminal.app still blink. kitty, alacritty, wezterm, and ghostty render the text statically — the modern-stack consensus is that blink causes accessibility and migraine problems. Never rely on blink to convey critical information; treat it as a stylistic flourish that is invisible on roughly half the terminals readers actually use.
How do I turn off blinking text — both in my output stream and per-terminal?
In your stream, emit \x1b[25m to disable blink without touching weight or colour (or \x1b[0m for a full reset). Per-terminal: iTerm2 has *Profiles → Text → Blinking text*; gnome-terminal has *Preferences → Profile → Text → Allow blinking text*; konsole has *Settings → Profile → Advanced → Enable blinking text*; xterm honours the cursorBlink X resource. ConPTY does not blink even when the host terminal would.

Terminal support

xterm
yes
Linux console (fbcon)
yes
macOS Terminal.app
no
iTerm2
yes
Windows Terminal
partial
cmd.exe / ConPTY
no
kitty
yes
alacritty
partial
WezTerm
yes
Ghostty
yes
GNOME Terminal
yes
Konsole
yes
tmux
yes
GNU screen
yes

Related sequences