Skip to content

Colours reference

TAnsiColor is a value-type record describing a foreground or background colour. Build them by name, by 256-palette index, by RGB, or by hex.

Building colours

pascal
// Named — the 16 ANSI colours plus the full xterm-256 palette
TAnsiColor.Red
TAnsiColor.Aqua
TAnsiColor.Lime
TAnsiColor.Cyan2
TAnsiColor.Grey

// 256-palette index (0-255)
TAnsiColor.FromIndex(202)

// 24-bit RGB
TAnsiColor.FromRGB(255, 136, 0)

// Hex
TAnsiColor.FromHex('#ff8800')
TAnsiColor.FromHex('ff8800')          // # is optional

// By name (case-insensitive; aliases like gray/grey, magenta/fuchsia,
// cyan/aqua all resolve)
TAnsiColor.FromName('orange1')

A zero-initialised TAnsiColor (no constructor call) means default — "use the terminal's default for this slot". IsDefault returns True.

In markup

The same names work as markup tokens (lowercase by convention):

[red]hi[/]
[bold cyan2]hi[/]
[#ff8800 on #1e90ff]warm on cool[/]

The 16 ANSI base colours

Always available, regardless of terminal capability. Indices 0–15 map directly to the SGR fg/bg codes:

#SwatchNameHexSGR fgSGR bg
0blackblack#0000003040
1maroonmaroon#8000003141
2greengreen#0080003242
3oliveolive#8080003343
4navynavy#0000803444
5purplepurple#8000803545
6tealteal#0080803646
7silversilver#c0c0c03747
8greygrey / gray#80808090100
9redred#ff000091101
10limelime#00ff0092102
11yellowyellow#ffff0093103
12blueblue#0000ff94104
13fuchsiafuchsia / magenta#ff00ff95105
14aquaaqua / cyan#00ffff96106
15whitewhite#ffffff97107

Grey, Fuchsia and Aqua each have a CSS-style alias (Gray, Magenta, Cyan) that resolves to the same palette entry.

The full xterm-256 palette

Indices 0–15 are the standard ANSI colours above, repeated here for completeness. 16–231 form a 6×6×6 RGB cube using levels (0, 95, 135, 175, 215, 255). 232–255 are the 24-step grayscale ramp 8 + (i − 232) × 10. Names are taken verbatim from Spectre.Console's generated palette so call sites match between the two libraries; the trailing _1, _2 suffixes mark repeated palette positions.

#SwatchNameHex
0blackblack#000000
1maroonmaroon#800000
2greengreen#008000
3oliveolive#808000
4navynavy#000080
5purplepurple#800080
6tealteal#008080
7silversilver#c0c0c0
8greygrey / gray#808080
9redred#ff0000
10limelime#00ff00
11yellowyellow#ffff00
12blueblue#0000ff
13fuchsiafuchsia / magenta#ff00ff
14aquaaqua / cyan#00ffff
15whitewhite#ffffff
16grey0grey0 / gray0#000000
17navybluenavyblue#00005f
18darkbluedarkblue#000087
19blue3blue3#0000af
20blue3_1blue3_1#0000d7
21blue1blue1#0000ff
22darkgreendarkgreen#005f00
23deepskyblue4deepskyblue4#005f5f
24deepskyblue4_1deepskyblue4_1#005f87
25deepskyblue4_2deepskyblue4_2#005faf
26dodgerblue3dodgerblue3#005fd7
27dodgerblue2dodgerblue2#005fff
28green4green4#008700
29springgreen4springgreen4#00875f
30turquoise4turquoise4#008787
31deepskyblue3deepskyblue3#0087af
32deepskyblue3_1deepskyblue3_1#0087d7
33dodgerblue1dodgerblue1#0087ff
34green3green3#00af00
35springgreen3springgreen3#00af5f
36darkcyandarkcyan#00af87
37lightseagreenlightseagreen#00afaf
38deepskyblue2deepskyblue2#00afd7
39deepskyblue1deepskyblue1#00afff
40green3_1green3_1#00d700
41springgreen3_1springgreen3_1#00d75f
42springgreen2springgreen2#00d787
43cyan3cyan3#00d7af
44darkturquoisedarkturquoise#00d7d7
45turquoise2turquoise2#00d7ff
46green1green1#00ff00
47springgreen2_1springgreen2_1#00ff5f
48springgreen1springgreen1#00ff87
49mediumspringgreenmediumspringgreen#00ffaf
50cyan2cyan2#00ffd7
51cyan1cyan1#00ffff
52darkreddarkred#5f0000
53deeppink4deeppink4#5f005f
54purple4purple4#5f0087
55purple4_1purple4_1#5f00af
56purple3purple3#5f00d7
57bluevioletblueviolet#5f00ff
58orange4orange4#5f5f00
59grey37grey37 / gray37#5f5f5f
60mediumpurple4mediumpurple4#5f5f87
61slateblue3slateblue3#5f5faf
62slateblue3_1slateblue3_1#5f5fd7
63royalblue1royalblue1#5f5fff
64chartreuse4chartreuse4#5f8700
65darkseagreen4darkseagreen4#5f875f
66paleturquoise4paleturquoise4#5f8787
67steelbluesteelblue#5f87af
68steelblue3steelblue3#5f87d7
69cornflowerbluecornflowerblue#5f87ff
70chartreuse3chartreuse3#5faf00
71darkseagreen4_1darkseagreen4_1#5faf5f
72cadetbluecadetblue#5faf87
73cadetblue_1cadetblue_1#5fafaf
74skyblue3skyblue3#5fafd7
75steelblue1steelblue1#5fafff
76chartreuse3_1chartreuse3_1#5fd700
77palegreen3palegreen3#5fd75f
78seagreen3seagreen3#5fd787
79aquamarine3aquamarine3#5fd7af
80mediumturquoisemediumturquoise#5fd7d7
81steelblue1_1steelblue1_1#5fd7ff
82chartreuse2chartreuse2#5fff00
83seagreen2seagreen2#5fff5f
84seagreen1seagreen1#5fff87
85seagreen1_1seagreen1_1#5fffaf
86aquamarine1aquamarine1#5fffd7
87darkslategray2darkslategray2#5fffff
88darkred_1darkred_1#870000
89deeppink4_1deeppink4_1#87005f
90darkmagentadarkmagenta#870087
91darkmagenta_1darkmagenta_1#8700af
92darkvioletdarkviolet#8700d7
93purple_1purple_1#8700ff
94orange4_1orange4_1#875f00
95lightpink4lightpink4#875f5f
96plum4plum4#875f87
97mediumpurple3mediumpurple3#875faf
98mediumpurple3_1mediumpurple3_1#875fd7
99slateblue1slateblue1#875fff
100yellow4yellow4#878700
101wheat4wheat4#87875f
102grey53grey53 / gray53#878787
103lightslategreylightslategrey / lightslategray#8787af
104mediumpurplemediumpurple#8787d7
105lightslatebluelightslateblue#8787ff
106yellow4_1yellow4_1#87af00
107darkolivegreen3darkolivegreen3#87af5f
108darkseagreendarkseagreen#87af87
109lightskyblue3lightskyblue3#87afaf
110lightskyblue3_1lightskyblue3_1#87afd7
111skyblue2skyblue2#87afff
112chartreuse2_1chartreuse2_1#87d700
113darkolivegreen3_1darkolivegreen3_1#87d75f
114palegreen3_1palegreen3_1#87d787
115darkseagreen3darkseagreen3#87d7af
116darkslategray3darkslategray3#87d7d7
117skyblue1skyblue1#87d7ff
118chartreuse1chartreuse1#87ff00
119lightgreenlightgreen#87ff5f
120lightgreen_1lightgreen_1#87ff87
121palegreen1palegreen1#87ffaf
122aquamarine1_1aquamarine1_1#87ffd7
123darkslategray1darkslategray1#87ffff
124red3red3#af0000
125deeppink4_2deeppink4_2#af005f
126mediumvioletredmediumvioletred#af0087
127magenta3magenta3#af00af
128darkviolet_1darkviolet_1#af00d7
129purple_2purple_2#af00ff
130darkorange3darkorange3#af5f00
131indianredindianred#af5f5f
132hotpink3hotpink3#af5f87
133mediumorchid3mediumorchid3#af5faf
134mediumorchidmediumorchid#af5fd7
135mediumpurple2mediumpurple2#af5fff
136darkgoldenroddarkgoldenrod#af8700
137lightsalmon3lightsalmon3#af875f
138rosybrownrosybrown#af8787
139grey63grey63 / gray63#af87af
140mediumpurple2_1mediumpurple2_1#af87d7
141mediumpurple1mediumpurple1#af87ff
142gold3gold3#afaf00
143darkkhakidarkkhaki#afaf5f
144navajowhite3navajowhite3#afaf87
145grey69grey69 / gray69#afafaf
146lightsteelblue3lightsteelblue3#afafd7
147lightsteelbluelightsteelblue#afafff
148yellow3yellow3#afd700
149darkolivegreen3_2darkolivegreen3_2#afd75f
150darkseagreen3_1darkseagreen3_1#afd787
151darkseagreen2darkseagreen2#afd7af
152lightcyan3lightcyan3#afd7d7
153lightskyblue1lightskyblue1#afd7ff
154greenyellowgreenyellow#afff00
155darkolivegreen2darkolivegreen2#afff5f
156palegreen1_1palegreen1_1#afff87
157darkseagreen2_1darkseagreen2_1#afffaf
158darkseagreen1darkseagreen1#afffd7
159paleturquoise1paleturquoise1#afffff
160red3_1red3_1#d70000
161deeppink3deeppink3#d7005f
162deeppink3_1deeppink3_1#d70087
163magenta3_1magenta3_1#d700af
164magenta3_2magenta3_2#d700d7
165magenta2magenta2#d700ff
166darkorange3_1darkorange3_1#d75f00
167indianred_1indianred_1#d75f5f
168hotpink3_1hotpink3_1#d75f87
169hotpink2hotpink2#d75faf
170orchidorchid#d75fd7
171mediumorchid1mediumorchid1#d75fff
172orange3orange3#d78700
173lightsalmon3_1lightsalmon3_1#d7875f
174lightpink3lightpink3#d78787
175pink3pink3#d787af
176plum3plum3#d787d7
177violetviolet#d787ff
178gold3_1gold3_1#d7af00
179lightgoldenrod3lightgoldenrod3#d7af5f
180tantan#d7af87
181mistyrose3mistyrose3#d7afaf
182thistle3thistle3#d7afd7
183plum2plum2#d7afff
184yellow3_1yellow3_1#d7d700
185khaki3khaki3#d7d75f
186lightgoldenrod2lightgoldenrod2#d7d787
187lightyellow3lightyellow3#d7d7af
188grey84grey84 / gray84#d7d7d7
189lightsteelblue1lightsteelblue1#d7d7ff
190yellow2yellow2#d7ff00
191darkolivegreen1darkolivegreen1#d7ff5f
192darkolivegreen1_1darkolivegreen1_1#d7ff87
193darkseagreen1_1darkseagreen1_1#d7ffaf
194honeydew2honeydew2#d7ffd7
195lightcyan1lightcyan1#d7ffff
196red1red1#ff0000
197deeppink2deeppink2#ff005f
198deeppink1deeppink1#ff0087
199deeppink1_1deeppink1_1#ff00af
200magenta2_1magenta2_1#ff00d7
201magenta1magenta1#ff00ff
202orangered1orangered1#ff5f00
203indianred1indianred1#ff5f5f
204indianred1_1indianred1_1#ff5f87
205hotpinkhotpink#ff5faf
206hotpink_1hotpink_1#ff5fd7
207mediumorchid1_1mediumorchid1_1#ff5fff
208darkorangedarkorange#ff8700
209salmon1salmon1#ff875f
210lightcorallightcoral#ff8787
211palevioletred1palevioletred1#ff87af
212orchid2orchid2#ff87d7
213orchid1orchid1#ff87ff
214orange1orange1#ffaf00
215sandybrownsandybrown#ffaf5f
216lightsalmon1lightsalmon1#ffaf87
217lightpink1lightpink1#ffafaf
218pink1pink1#ffafd7
219plum1plum1#ffafff
220gold1gold1#ffd700
221lightgoldenrod2_1lightgoldenrod2_1#ffd75f
222lightgoldenrod2_2lightgoldenrod2_2#ffd787
223navajowhite1navajowhite1#ffd7af
224mistyrose1mistyrose1#ffd7d7
225thistle1thistle1#ffd7ff
226yellow1yellow1#ffff00
227lightgoldenrod1lightgoldenrod1#ffff5f
228khaki1khaki1#ffff87
229wheat1wheat1#ffffaf
230cornsilk1cornsilk1#ffffd7
231grey100grey100 / gray100#ffffff
232grey3grey3 / gray3#080808
233grey7grey7 / gray7#121212
234grey11grey11 / gray11#1c1c1c
235grey15grey15 / gray15#262626
236grey19grey19 / gray19#303030
237grey23grey23 / gray23#3a3a3a
238grey27grey27 / gray27#444444
239grey30grey30 / gray30#4e4e4e
240grey35grey35 / gray35#585858
241grey39grey39 / gray39#626262
242grey42grey42 / gray42#6c6c6c
243grey46grey46 / gray46#767676
244grey50grey50 / gray50#808080
245grey54grey54 / gray54#8a8a8a
246grey58grey58 / gray58#949494
247grey62grey62 / gray62#9e9e9e
248grey66grey66 / gray66#a8a8a8
249grey70grey70 / gray70#b2b2b2
250grey74grey74 / gray74#bcbcbc
251grey78grey78 / gray78#c6c6c6
252grey82grey82 / gray82#d0d0d0
253grey85grey85 / gray85#dadada
254grey89grey89 / gray89#e4e4e4
255grey93grey93 / gray93#eeeeee

Capability-aware downsampling

The active console's Profile.Capabilities.ColorSystem determines how a TAnsiColor actually emits:

TColorSystemWhat's emitted
NoColorsNothing. SGR escapes are stripped.
Legacy8 colours (SGR 30-37 / 40-47); brights downsampled.
Standard16 colours (adds SGR 90-97 / 100-107).
EightBit256 colours (38;5;n / 48;5;n).
TrueColor24-bit RGB (38;2;r;g;b / 48;2;r;g;b).

A TAnsiColor.FromRGB value renders perfectly under TrueColor, gracefully downsamples to the nearest 256 entry under EightBit, and further to the closest of 16 / 8 colours under Standard / Legacy. You get colour where it's supported and clean text where it isn't.

See Capabilities for how the colour system is detected.

Helpers

pascal
// Blend two colours by a 0..1 fade factor — used by the indeterminate
// progress bar pulse.
mid := TAnsiColor.Red.Blend(TAnsiColor.Yellow, 0.5);

// Compare two colours for equality
if c1.Equals(c2) then ...

// Render to debug-friendly string
s := c.ToString;     // e.g. 'rgb(255,136,0)' or '#ff8800'

See also

  • Markup syntax — using colours inside markup tags.
  • Styles — combining colours with decorations into a TAnsiStyle.
  • Capabilities — colour-system detection.
  • Canvas — for pixel-level RGB rendering.

Released under the MIT License.