From WikiChip
Colors - IRC

Internet Relay Chat

Intro

Protocol

Related Topics

v · d · e

IRC Colors (or mIRC Colors) is a light-weight sub-protocol designed to add support for various text formatting to IRC. The protocol usually supports foreground, background, bold, italics, underline, and reverse.

Overview

Text formatting is done via a set of special character sequences that are parsed by the IRC client. Every new segment of text formats starts with one of the formatting control character. The same control character can be used at the end of the format in order to terminate it. The caret notation is used to represent such characters. For example, the ^B character is used to specify bold text. ^BHello World^B will display on supported IRC client as Hello World

While originally designed to be exclusively client-side, over time servers have been updated to be made aware of color codes. Some servers support various channel modes to block colors, strip colors, and ban various patterns. The exact level of support depends on the server software used.

Format characters

Most clients support at least bold and underline. Below are the common shortcuts for those characters:

Format Code point Shortcuts Example
Bold 0x02 Ctrl+B / Cmd+B ^BAA^BBB^BCC^BDD = AABBCCDD
Italics 0x1D Ctrl+I / Opt+ Cmd+I ^IAA^IBB^ICC^IDD = AABBCCDD
Underline 0x1F Ctrl+U / Opt+ Cmd+U ^UAA^UBB^UCC^UDD = AABBCCDD
Reverse 0x16 Ctrl+R / Opt+ Cmd+R ^RAA^RBB^RCC^RDD = AABBCCDD
Plain 0x0F Ctrl+O / Opt+ Cmd+O ^I^B^UAAA^OBBB = AAABBB

The plain text character is used to restore all formatting back to default.

Color formatting

The sub-protocol supports both background and foreground coloring via the 0x03 code point. On most IRC clients, the character can be generated via the Ctrl+K shortcut key ((Ctrl+C) in irssi). The syntax for coloring text is ^KN (^CN in irssi) for just foreground color or ^KN,M (^CN,M in irssi) for a background color as well. Where N and M represent any integer between 0 and 15 inclusively, allowing up to sixteen colors. ^K alone can be used to terminate the previous sequence of colored text.

While most client allow the user to change the meaning of those values, the default values are:

Value Name RGB HTML
0 White 255,255,255 #FFFFFF
1 Black 0,0,0 #000000
2 Navy 0,0,127 #00007F
3 Green 0,147,0 #009300
4 Red 255,0,0 #FF0000
5 Maroon 127,0,0 #7F0000
6 Purple 156,0,156 #9C009C
7 Orange 252,127,0 #FC7F00
8 Yellow 255,255,0 #FFFF00
9 Light Green 0,252,0 #00FC00
10 Teal 0,147,147 #009393
11 Cyan 0,255,255 #00FFFF
12 Royal blue 0,0,252 #0000FC
13 Magenta 255,0,255 #FF00FF
14 Gray 127,127,127 #7F7F7F
15 Light Gray 210,210,210 #D2D2D2

Any new sequence of colors will override the previous (or default). If the ^K character is used without any numbers, it will reset the text format back to default. If a color sequence defines a background color and a new color sequence starts without a background color, the previous background color will be used. For example ^K0,1Hello ^4There! will generate the Hello There!

Using the ^K character as a color terminator will not terminate any other kind of formatting such as bold. For example ^B^K0,1Hello ^KThere! will generate Hello There! where the bold continues on to the rest of the line. Using the ^O key, however, will restore all formats to default from that point onward.