<color>
The <color>
CSS type represents a color.
Warning
Not to be confused with the color
CSS rule to set text color.
Syntax
A <color>
should be in one of the formats explained in this section.
A bullet point summary of the formats available follows:
a recognised named color (e.g., red
);
a 3 or 6 hexadecimal digit number representing the RGB values of the color (e.g., #F35573
);
a 4 or 8 hexadecimal digit number representing the RGBA values of the color (e.g., #F35573A0
);
a color description in the RGB system, with or without opacity (e.g., rgb(23, 78, 200)
);
a color description in the HSL system, with or without opacity (e.g., hsl(290, 70%, 80%)
);
Textual's default themes also provide many CSS variables with colors that can be used out of the box.
Named colors
A named color is a <name>
that Textual recognises.
Below, you can find a (collapsed) list of all of the named colors that Textual recognises, along with their hexadecimal values, their RGB values, and a visual sample.
All named colors available.
colors
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name ┃ hex ┃ RGB ┃ Color ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ "aliceblue" │ #F0F8FF │ rgb ( 240 , 248 , 255 ) │ │
│ "ansi_black" │ #000000 │ rgb ( 0 , 0 , 0 ) │ │
│ "ansi_blue" │ #000080 │ rgb ( 0 , 0 , 128 ) │ │
│ "ansi_bright_black" │ #808080 │ rgb ( 128 , 128 , 128 ) │ │
│ "ansi_bright_blue" │ #0000FF │ rgb ( 0 , 0 , 255 ) │ │
│ "ansi_bright_cyan" │ #00FFFF │ rgb ( 0 , 255 , 255 ) │ │
│ "ansi_bright_green" │ #00FF00 │ rgb ( 0 , 255 , 0 ) │ │
│ "ansi_bright_magenta" │ #FF00FF │ rgb ( 255 , 0 , 255 ) │ │
│ "ansi_bright_red" │ #FF0000 │ rgb ( 255 , 0 , 0 ) │ │
│ "ansi_bright_white" │ #FFFFFF │ rgb ( 255 , 255 , 255 ) │ │
│ "ansi_bright_yellow" │ #FFFF00 │ rgb ( 255 , 255 , 0 ) │ │
│ "ansi_cyan" │ #008080 │ rgb ( 0 , 128 , 128 ) │ │
│ "ansi_green" │ #008000 │ rgb ( 0 , 128 , 0 ) │ │
│ "ansi_magenta" │ #800080 │ rgb ( 128 , 0 , 128 ) │ │
│ "ansi_red" │ #800000 │ rgb ( 128 , 0 , 0 ) │ │
│ "ansi_white" │ #C0C0C0 │ rgb ( 192 , 192 , 192 ) │ │
│ "ansi_yellow" │ #808000 │ rgb ( 128 , 128 , 0 ) │ │
│ "antiquewhite" │ #FAEBD7 │ rgb ( 250 , 235 , 215 ) │ │
│ "aqua" │ #00FFFF │ rgb ( 0 , 255 , 255 ) │ │
│ "aquamarine" │ #7FFFD4 │ rgb ( 127 , 255 , 212 ) │ │
│ "azure" │ #F0FFFF │ rgb ( 240 , 255 , 255 ) │ │
│ "beige" │ #F5F5DC │ rgb ( 245 , 245 , 220 ) │ │
│ "bisque" │ #FFE4C4 │ rgb ( 255 , 228 , 196 ) │ │
│ "black" │ #000000 │ rgb ( 0 , 0 , 0 ) │ │
│ "blanchedalmond" │ #FFEBCD │ rgb ( 255 , 235 , 205 ) │ │
│ "blue" │ #0000FF │ rgb ( 0 , 0 , 255 ) │ │
│ "blueviolet" │ #8A2BE2 │ rgb ( 138 , 43 , 226 ) │ │
│ "brown" │ #A52A2A │ rgb ( 165 , 42 , 42 ) │ │
│ "burlywood" │ #DEB887 │ rgb ( 222 , 184 , 135 ) │ │
│ "cadetblue" │ #5F9EA0 │ rgb ( 95 , 158 , 160 ) │ │
│ "chartreuse" │ #7FFF00 │ rgb ( 127 , 255 , 0 ) │ │
│ "chocolate" │ #D2691E │ rgb ( 210 , 105 , 30 ) │ │
│ "coral" │ #FF7F50 │ rgb ( 255 , 127 , 80 ) │ │
│ "cornflowerblue" │ #6495ED │ rgb ( 100 , 149 , 237 ) │ │
│ "cornsilk" │ #FFF8DC │ rgb ( 255 , 248 , 220 ) │ │
│ "crimson" │ #DC143C │ rgb ( 220 , 20 , 60 ) │ │
│ "cyan" │ #00FFFF │ rgb ( 0 , 255 , 255 ) │ │
│ "darkblue" │ #00008B │ rgb ( 0 , 0 , 139 ) │ │
│ "darkcyan" │ #008B8B │ rgb ( 0 , 139 , 139 ) │ │
│ "darkgoldenrod" │ #B8860B │ rgb ( 184 , 134 , 11 ) │ │
│ "darkgray" │ #A9A9A9 │ rgb ( 169 , 169 , 169 ) │ │
│ "darkgreen" │ #006400 │ rgb ( 0 , 100 , 0 ) │ │
│ "darkgrey" │ #A9A9A9 │ rgb ( 169 , 169 , 169 ) │ │
│ "darkkhaki" │ #BDB76B │ rgb ( 189 , 183 , 107 ) │ │
│ "darkmagenta" │ #8B008B │ rgb ( 139 , 0 , 139 ) │ │
│ "darkolivegreen" │ #556B2F │ rgb ( 85 , 107 , 47 ) │ │
│ "darkorange" │ #FF8C00 │ rgb ( 255 , 140 , 0 ) │ │
│ "darkorchid" │ #9932CC │ rgb ( 153 , 50 , 204 ) │ │
│ "darkred" │ #8B0000 │ rgb ( 139 , 0 , 0 ) │ │
│ "darksalmon" │ #E9967A │ rgb ( 233 , 150 , 122 ) │ │
│ "darkseagreen" │ #8FBC8F │ rgb ( 143 , 188 , 143 ) │ │
│ "darkslateblue" │ #483D8B │ rgb ( 72 , 61 , 139 ) │ │
│ "darkslategray" │ #2F4F4F │ rgb ( 47 , 79 , 79 ) │ │
│ "darkslategrey" │ #2F4F4F │ rgb ( 47 , 79 , 79 ) │ │
│ "darkturquoise" │ #00CED1 │ rgb ( 0 , 206 , 209 ) │ │
│ "darkviolet" │ #9400D3 │ rgb ( 148 , 0 , 211 ) │ │
│ "deeppink" │ #FF1493 │ rgb ( 255 , 20 , 147 ) │ │
│ "deepskyblue" │ #00BFFF │ rgb ( 0 , 191 , 255 ) │ │
│ "dimgray" │ #696969 │ rgb ( 105 , 105 , 105 ) │ │
│ "dimgrey" │ #696969 │ rgb ( 105 , 105 , 105 ) │ │
│ "dodgerblue" │ #1E90FF │ rgb ( 30 , 144 , 255 ) │ │
│ "firebrick" │ #B22222 │ rgb ( 178 , 34 , 34 ) │ │
│ "floralwhite" │ #FFFAF0 │ rgb ( 255 , 250 , 240 ) │ │
│ "forestgreen" │ #228B22 │ rgb ( 34 , 139 , 34 ) │ │
│ "fuchsia" │ #FF00FF │ rgb ( 255 , 0 , 255 ) │ │
│ "gainsboro" │ #DCDCDC │ rgb ( 220 , 220 , 220 ) │ │
│ "ghostwhite" │ #F8F8FF │ rgb ( 248 , 248 , 255 ) │ │
│ "gold" │ #FFD700 │ rgb ( 255 , 215 , 0 ) │ │
│ "goldenrod" │ #DAA520 │ rgb ( 218 , 165 , 32 ) │ │
│ "gray" │ #808080 │ rgb ( 128 , 128 , 128 ) │ │
│ "green" │ #008000 │ rgb ( 0 , 128 , 0 ) │ │
│ "greenyellow" │ #ADFF2F │ rgb ( 173 , 255 , 47 ) │ │
│ "grey" │ #808080 │ rgb ( 128 , 128 , 128 ) │ │
│ "honeydew" │ #F0FFF0 │ rgb ( 240 , 255 , 240 ) │ │
│ "hotpink" │ #FF69B4 │ rgb ( 255 , 105 , 180 ) │ │
│ "indianred" │ #CD5C5C │ rgb ( 205 , 92 , 92 ) │ │
│ "indigo" │ #4B0082 │ rgb ( 75 , 0 , 130 ) │ │
│ "ivory" │ #FFFFF0 │ rgb ( 255 , 255 , 240 ) │ │
│ "khaki" │ #F0E68C │ rgb ( 240 , 230 , 140 ) │ │
│ "lavender" │ #E6E6FA │ rgb ( 230 , 230 , 250 ) │ │
│ "lavenderblush" │ #FFF0F5 │ rgb ( 255 , 240 , 245 ) │ │
│ "lawngreen" │ #7CFC00 │ rgb ( 124 , 252 , 0 ) │ │
│ "lemonchiffon" │ #FFFACD │ rgb ( 255 , 250 , 205 ) │ │
│ "lightblue" │ #ADD8E6 │ rgb ( 173 , 216 , 230 ) │ │
│ "lightcoral" │ #F08080 │ rgb ( 240 , 128 , 128 ) │ │
│ "lightcyan" │ #E0FFFF │ rgb ( 224 , 255 , 255 ) │ │
│ "lightgoldenrodyellow" │ #FAFAD2 │ rgb ( 250 , 250 , 210 ) │ │
│ "lightgray" │ #D3D3D3 │ rgb ( 211 , 211 , 211 ) │ │
│ "lightgreen" │ #90EE90 │ rgb ( 144 , 238 , 144 ) │ │
│ "lightgrey" │ #D3D3D3 │ rgb ( 211 , 211 , 211 ) │ │
│ "lightpink" │ #FFB6C1 │ rgb ( 255 , 182 , 193 ) │ │
│ "lightsalmon" │ #FFA07A │ rgb ( 255 , 160 , 122 ) │ │
│ "lightseagreen" │ #20B2AA │ rgb ( 32 , 178 , 170 ) │ │
│ "lightskyblue" │ #87CEFA │ rgb ( 135 , 206 , 250 ) │ │
│ "lightslategray" │ #778899 │ rgb ( 119 , 136 , 153 ) │ │
│ "lightslategrey" │ #778899 │ rgb ( 119 , 136 , 153 ) │ │
│ "lightsteelblue" │ #B0C4DE │ rgb ( 176 , 196 , 222 ) │ │
│ "lightyellow" │ #FFFFE0 │ rgb ( 255 , 255 , 224 ) │ │
│ "lime" │ #00FF00 │ rgb ( 0 , 255 , 0 ) │ │
│ "limegreen" │ #32CD32 │ rgb ( 50 , 205 , 50 ) │ │
│ "linen" │ #FAF0E6 │ rgb ( 250 , 240 , 230 ) │ │
│ "magenta" │ #FF00FF │ rgb ( 255 , 0 , 255 ) │ │
│ "maroon" │ #800000 │ rgb ( 128 , 0 , 0 ) │ │
│ "mediumaquamarine" │ #66CDAA │ rgb ( 102 , 205 , 170 ) │ │
│ "mediumblue" │ #0000CD │ rgb ( 0 , 0 , 205 ) │ │
│ "mediumorchid" │ #BA55D3 │ rgb ( 186 , 85 , 211 ) │ │
│ "mediumpurple" │ #9370DB │ rgb ( 147 , 112 , 219 ) │ │
│ "mediumseagreen" │ #3CB371 │ rgb ( 60 , 179 , 113 ) │ │
│ "mediumslateblue" │ #7B68EE │ rgb ( 123 , 104 , 238 ) │ │
│ "mediumspringgreen" │ #00FA9A │ rgb ( 0 , 250 , 154 ) │ │
│ "mediumturquoise" │ #48D1CC │ rgb ( 72 , 209 , 204 ) │ │
│ "mediumvioletred" │ #C71585 │ rgb ( 199 , 21 , 133 ) │ │
│ "midnightblue" │ #191970 │ rgb ( 25 , 25 , 112 ) │ │
│ "mintcream" │ #F5FFFA │ rgb ( 245 , 255 , 250 ) │ │
│ "mistyrose" │ #FFE4E1 │ rgb ( 255 , 228 , 225 ) │ │
│ "moccasin" │ #FFE4B5 │ rgb ( 255 , 228 , 181 ) │ │
│ "navajowhite" │ #FFDEAD │ rgb ( 255 , 222 , 173 ) │ │
│ "navy" │ #000080 │ rgb ( 0 , 0 , 128 ) │ │
│ "oldlace" │ #FDF5E6 │ rgb ( 253 , 245 , 230 ) │ │
│ "olive" │ #808000 │ rgb ( 128 , 128 , 0 ) │ │
│ "olivedrab" │ #6B8E23 │ rgb ( 107 , 142 , 35 ) │ │
│ "orange" │ #FFA500 │ rgb ( 255 , 165 , 0 ) │ │
│ "orangered" │ #FF4500 │ rgb ( 255 , 69 , 0 ) │ │
│ "orchid" │ #DA70D6 │ rgb ( 218 , 112 , 214 ) │ │
│ "palegoldenrod" │ #EEE8AA │ rgb ( 238 , 232 , 170 ) │ │
│ "palegreen" │ #98FB98 │ rgb ( 152 , 251 , 152 ) │ │
│ "paleturquoise" │ #AFEEEE │ rgb ( 175 , 238 , 238 ) │ │
│ "palevioletred" │ #DB7093 │ rgb ( 219 , 112 , 147 ) │ │
│ "papayawhip" │ #FFEFD5 │ rgb ( 255 , 239 , 213 ) │ │
│ "peachpuff" │ #FFDAB9 │ rgb ( 255 , 218 , 185 ) │ │
│ "peru" │ #CD853F │ rgb ( 205 , 133 , 63 ) │ │
│ "pink" │ #FFC0CB │ rgb ( 255 , 192 , 203 ) │ │
│ "plum" │ #DDA0DD │ rgb ( 221 , 160 , 221 ) │ │
│ "powderblue" │ #B0E0E6 │ rgb ( 176 , 224 , 230 ) │ │
│ "purple" │ #800080 │ rgb ( 128 , 0 , 128 ) │ │
│ "rebeccapurple" │ #663399 │ rgb ( 102 , 51 , 153 ) │ │
│ "red" │ #FF0000 │ rgb ( 255 , 0 , 0 ) │ │
│ "rosybrown" │ #BC8F8F │ rgb ( 188 , 143 , 143 ) │ │
│ "royalblue" │ #4169E1 │ rgb ( 65 , 105 , 225 ) │ │
│ "saddlebrown" │ #8B4513 │ rgb ( 139 , 69 , 19 ) │ │
│ "salmon" │ #FA8072 │ rgb ( 250 , 128 , 114 ) │ │
│ "sandybrown" │ #F4A460 │ rgb ( 244 , 164 , 96 ) │ │
│ "seagreen" │ #2E8B57 │ rgb ( 46 , 139 , 87 ) │ │
│ "seashell" │ #FFF5EE │ rgb ( 255 , 245 , 238 ) │ │
│ "sienna" │ #A0522D │ rgb ( 160 , 82 , 45 ) │ │
│ "silver" │ #C0C0C0 │ rgb ( 192 , 192 , 192 ) │ │
│ "skyblue" │ #87CEEB │ rgb ( 135 , 206 , 235 ) │ │
│ "slateblue" │ #6A5ACD │ rgb ( 106 , 90 , 205 ) │ │
│ "slategray" │ #708090 │ rgb ( 112 , 128 , 144 ) │ │
│ "slategrey" │ #708090 │ rgb ( 112 , 128 , 144 ) │ │
│ "snow" │ #FFFAFA │ rgb ( 255 , 250 , 250 ) │ │
│ "springgreen" │ #00FF7F │ rgb ( 0 , 255 , 127 ) │ │
│ "steelblue" │ #4682B4 │ rgb ( 70 , 130 , 180 ) │ │
│ "tan" │ #D2B48C │ rgb ( 210 , 180 , 140 ) │ │
│ "teal" │ #008080 │ rgb ( 0 , 128 , 128 ) │ │
│ "thistle" │ #D8BFD8 │ rgb ( 216 , 191 , 216 ) │ │
│ "tomato" │ #FF6347 │ rgb ( 255 , 99 , 71 ) │ │
│ "turquoise" │ #40E0D0 │ rgb ( 64 , 224 , 208 ) │ │
│ "violet" │ #EE82EE │ rgb ( 238 , 130 , 238 ) │ │
│ "wheat" │ #F5DEB3 │ rgb ( 245 , 222 , 179 ) │ │
│ "white" │ #FFFFFF │ rgb ( 255 , 255 , 255 ) │ │
│ "whitesmoke" │ #F5F5F5 │ rgb ( 245 , 245 , 245 ) │ │
│ "yellow" │ #FFFF00 │ rgb ( 255 , 255 , 0 ) │ │
│ "yellowgreen" │ #9ACD32 │ rgb ( 154 , 205 , 50 ) │ │
└────────────────────────┴─────────┴────────────────────┴──────────────────────┘
Hex RGB value
The hexadecimal RGB format starts with an octothorpe #
and is then followed by 3 or 6 hexadecimal digits: 0123456789ABCDEF
.
Casing is ignored.
If 6 digits are used, the format is #RRGGBB
:
RR
represents the red channel;
GG
represents the green channel; and
BB
represents the blue channel.
If 3 digits are used, the format is #RGB
.
In a 3 digit color, each channel is represented by a single digit which is duplicated when converting to the 6 digit format.
For example, the color #A2F
is the same as #AA22FF
.
Hex RGBA value
This is the same as the hex RGB value , but with an extra channel for the alpha component (that sets opacity).
If 8 digits are used, the format is #RRGGBBAA
, equivalent to the format #RRGGBB
with two extra digits for opacity.
If 4 digits are used, the format is #RGBA
, equivalent to the format #RGB
with an extra digit for opacity.
rgb
description
The rgb
format description is a functional description of a color in the RGB color space.
This description follows the format rgb(red, green, blue)
, where red
, green
, and blue
are decimal integers between 0 and 255.
They represent the value of the channel with the same name.
For example, rgb(0, 255, 32)
is equivalent to #00FF20
.
rgba
description
The rgba
format description is the same as the rgb
with an extra parameter for opacity, which should be a value between 0
and 1
.
For example, rgba(0, 255, 32, 0.5)
is the color rgb(0, 255, 32)
with 50% opacity.
hsl
description
The hsl
format description is a functional description of a color in the HSL color space.
This description follows the format hsl(hue, saturation, lightness)
, where
hue
is a float between 0 and 360;
saturation
is a percentage between 0%
and 100%
; and
lightness
is a percentage between 0%
and 100%
.
For example, the color #00FF20
would be represented as hsl(128, 100%, 50%)
in the HSL color space.
hsla
description
The hsla
format description is the same as the hsl
with an extra parameter for opacity, which should be a value between 0
and 1
.
For example, hsla(128, 100%, 50%, 0.5)
is the color hsl(128, 100%, 50%)
with 50% opacity.
Examples
CSS
Header {
background : red ; /* Color name */
}
. accent {
color : $ accent ; /* Textual variable */
}
# footer {
tint : hsl ( 300 , 20 % , 70 % ); /* HSL description */
}
Python
In Python, rules that expect a <color>
can also accept an instance of the type Color
.
# Mimicking the CSS syntax
widget . styles . background = "red" # Color name
widget . styles . color = "$accent" # Textual variable
widget . styles . tint = "hsl(300, 20%, 70%)" # HSL description
from textual.color import Color
# Using a Color object directly...
color = Color ( 16 , 200 , 45 )
# ... which can also parse the CSS syntax
color = Color . parse ( "#A8F" )