.tmTheme Color Schemes
As of Sublime Text build 3149, a new color scheme format .sublime-color-scheme was introduced for easier editing, customization and addition of new features. The documentation for the new format is available at the main Color Schemes documentation.
This page documents Sublime Text's implementation of the legacy .tmTheme format. Support for this legacy format will remain for backwards compatibility, but new features will only be added to the .sublime-color-scheme format.
The .tmTheme format was created by TextMate. It is an XML format split into a global settings and scope styles.
Example
The following is an example of the format of a .tmTheme file. A complete color scheme will have many more scope styles to cover the standard scope names.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Example Color Scheme</string>
<key>settings</key>
<array>
<!-- Global settings -->
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#222222</string>
<key>foreground</key>
<string>#EEEEEE</string>
<key>caret</key>
<string>#FFFFFF</string>
</dict>
</dict>
<!-- Scope styles -->
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#888888</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFD500</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7F00FF</string>
</dict>
</dict>
</array>
</dict>
Colors
Colors in color schemes may be specified using of three formats: hex RGB, hex RGBA or (X11) named.
The hex RGB format consists of the first two characters representing
the red channel, the second two green and the final two represent blue.
The specify red in hex RGB, write #FF0000
.
The hex RGBA format starts the same as hex RGB, but adds a fourth pair of
hex characters that control the opacity. To specify red with 50% opacity
in hex RGBA, write #FF000080
.
Named colors use X11 color names. Please note that while some share names with CSS named colors, the actual colors tend to differ.
Global Settings
The following global settings go in the first <dict>
,
and are specified using <key>
/<string>
pairs.
- background
- The default background color
- foreground
- The default color for text
- caret
- The color of the caret
- lineHighlight
-
The background color of the line containing the caret. Only used
when the
highlight_line
setting is enabled.
Accents
- misspelling
- The color to use for the squiggly underline drawn under misspelled words.
- minimapBorder
-
The color of the border drawn around the viewport
area of the minimap when the setting
draw_minimap_border
is enabled. Note that the viewport is normally only visible on hover, unless thealways_show_minimap_viewport
setting is enabled. - accent
-
A color made available for use by the theme. The Default
theme uses this to highlight modified tabs when the
highlight_modified_tabs
setting is enabled.
CSS
CSS is applied to minihtml content created via the popups and phantoms functionality that is exposed through the API. Supported CSS properties are discussed in the minihtml CSS reference.
Plugins that use minihtml are encouraged to set a unique id
attribute on the <body>
tag of generated HTML
to allow color schemes to override default plugin styles.
- popupCss
- CSS passed to popups.
- phantomCss
-
CSS passed to phantoms. If not specified, uses
popupCss
.
Gutter
- gutter
- The background color of the gutter
- gutterForeground
- The color of line numbers in the gutter
Selection
- selection
- The background color of selected text
- selectionForeground
- A color that will override the scope-based text color of the selection
- selectionBorder
- The color for the border of the selection
- inactiveSelection
- The background color of a selection in a view that is not currently focused
- inactiveSelectionForeground
- A color that will override the scope-based text color of the selection in a view that is not currently focused
Find
- highlight
- The border color for "other" matches when the Highlight matches option is selected in the Find panel. Also used to highlight matches in Find in Files results.
- findHighlight
- The background color of text matched by the Find panel
- findHighlightForeground
- A color that will override the scope-based text color of text matched by the Find panel
Guides
Guides are controlled globally by the draw_indent_guides
setting.
- guide
-
The color used to draw indent guides. Only used if
the option
"draw_normal"
is present in the settingindent_guide_options
. - activeGuide
-
The color used to draw the indent guides for the
indentation levels containing the caret. Only used
if the option
"draw_active"
is present in the settingindent_guide_options
. - stackGuide
-
The color used to draw the indent guides for the
parent indentation levels of the indentation level
containing the caret. Only used if the option
"draw_active"
is present in the settingindent_guide_options
.
Brackets
Bracket matching is controlled globally by the
match_brackets
setting.
- bracketsOptions
-
How brackets are highlighted when the caret is next to one. Accepts a space-separated list from the following:
underline
stippled_underline
squiggly_underline
foreground
- bracketsForeground
-
The color to use when drawing the style specified by
bracketsOptions
. - bracketContentsOptions
-
How brackets are highlighted when the caret is positioned in between a pair of brackets. Accepts a space-separated list from the following:
underline
stippled_underline
squiggly_underline
foreground
- bracketContentsForeground
-
The color to use when drawing the style specified by
bracketsContentsOptions
.
Tags
Tag matching is controlled globally by the
match_tags
setting.
- tagsOptions
-
How tags are highlighted when the caret is inside of one. Accepts a space-separated list from the following:
underline
stippled_underline
squiggly_underline
foreground
- tagsForeground
-
The color to use when drawing the style specified by
tagsOptions
.
Shadows
- shadow
- The color of the shadow used to show when a text area can be horizontally scrolled
- shadowWidth
- The width of the shadow in device-independent pixels
Scope Styles
Color schemes interact with the text in a file via scopes. Scopes are set
to code or prose tokens via the syntax. Scopes are dotted strings,
specified from least-to-most specific. For example, the if
keyword in PHP could be specified via the scope name
keyword.control.php
.
Matching
Color schemes apply colors and font styles to the scopes by matching the
dotted labels, starting with the first. Prefix matching is the standard
way to have a color scheme apply to multiple syntaxes. Instead of matching
keyword.control.php
, most color schemes will instead assign
a color to keyword
. Matching the first one or two labels
in a scope is most common. Including the final label, the syntax name, is
uncommon unless a syntax-specific override is desired.
Naming
Author of syntaxes can assign whatever scopes they want to a given token. This combined with the fact that there are hundreds of community-maintained syntaxes means that is can be hard to know what scopes to target. The official Scope Naming guidelines were established to help syntax and color scheme authors use a common set, for better interoperability. The Usage in Color Schemes section provides a baseline set of scopes that color scheme authors should strive to handle.
Style Rules
Each scope style rule consists of a <dict>
tag containing
three pairs of <key>
/<string>
tags, with
the following keys:
name
– the (arbitrary) name for the scope rulescope
– the scope to apply the settings tosettings
– a<dict>
of settings
The settings
<dict>
tag may contain one
or more of the following <key>
tags:
foreground
– the text colorbackground
– the background colorfontStyle
– zero or more ofbold
,italic
, separated by spaces
Examples
The following scope style rule will color all strings as green:
<dict>
<key>name</key>
<string>Strings</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#00FF00</string>
</dict>
</dict>
To style all numbers as bold, italic red, use:
<dict>
<key>name</key>
<string>Numbers</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF0000</string>
<key>fontStyle</key>
<string>bold italic</string>
</dict>
</dict>
Appendix: X11 Colors
antiquewhite
antiquewhite1
antiquewhite2
antiquewhite3
antiquewhite4
aquamarine
aquamarine1
aquamarine2
aquamarine3
aquamarine4
azure
azure1
azure2
azure3
azure4
barely blushing
beige
bisque
bisque1
bisque2
bisque2
bisque3
bisque4
black
blanchedalmond
blue
blue1
blue2
blue3
blue4
blueviolet
brown
brown1
brown2
brown3
brown4
burlywood
burlywood1
burlywood2
burlywood3
burlywood4
cadetblue
cadetblue1
cadetblue2
cadetblue3
cadetblue4
carmel tan
chartreuse
chartreuse1
chartreuse2
chartreuse3
chartreuse4
chocolate
chocolate1
chocolate2
chocolate3
chocolate4
coral
coral1
coral2
coral3
coral4
cornflowerblue
cornsilk
cornsilk1
cornsilk2
cornsilk3
cornsilk4
crimson
cyan
cyan1
cyan2
cyan3
cyan4
darkblue
darkcyan
darkgoldenrod
darkgoldenrod1
darkgoldenrod2
darkgoldenrod3
darkgoldenrod4
darkgray
darkgreen
darkgrey
darkkhaki
darkmagenta
darkolivegreen
darkolivegreen1
darkolivegreen2
darkolivegreen3
darkolivegreen4
darkorange
darkorange1
darkorange2
darkorange3
darkorange4
darkorchid
darkorchid1
darkorchid2
darkorchid3
darkorchid4
darkred
darksalmon
darkseagreen
darkseagreen1
darkseagreen2
darkseagreen3
darkseagreen4
darkslateblue
darkslategray
darkslategray1
darkslategray2
darkslategray3
darkslategray4
darkslategrey
darkturquoise
darkviolet
deeppink
deeppink1
deeppink2
deeppink3
deeppink4
deepskyblue
deepskyblue1
deepskyblue2
deepskyblue3
deepskyblue4
dimgray
dimgrey
dodgerblue
dodgerblue1
dodgerblue2
dodgerblue3
dodgerblue4
dove beige
dusted pink
dusty trail
eggshell cream
far horizon
firebrick
firebrick1
firebrick2
firebrick3
firebrick4
floralwhite
forestgreen
frosted lime
frosted peach
gainsboro
ghostwhite
gold
gold1
gold3
gold4
goldenrod
goldenrod1
goldenrod2
goldenrod3
goldenrod4
gray
gray cliffs
gray0
gray1
gray10
gray100
gray11
gray12
gray13
gray14
gray15
gray16
gray17
gray18
gray19
gray2
gray20
gray21
gray22
gray23
gray24
gray25
gray26
gray27
gray28
gray29
gray3
gray30
gray31
gray32
gray33
gray34
gray35
gray36
gray37
gray38
gray39
gray4
gray40
gray41
gray42
gray43
gray44
gray45
gray46
gray47
gray48
gray49
gray5
gray50
gray51
gray52
gray53
gray54
gray55
gray56
gray57
gray58
gray59
gray6
gray60
gray61
gray62
gray63
gray64
gray65
gray66
gray67
gray68
gray69
gray7
gray70
gray71
gray72
gray73
gray74
gray75
gray76
gray77
gray78
gray79
gray8
gray80
gray81
gray82
gray83
gray84
gray85
gray86
gray87
gray88
gray89
gray9
gray90
gray91
gray92
gray93
gray94
gray95
gray96
gray97
gray98
gray99
green
green veil
green1
green2
green3
green4
greenyellow
grey
grey0
grey1
grey10
grey100
grey11
grey12
grey13
grey14
grey15
grey16
grey17
grey18
grey19
grey2
grey20
grey21
grey22
grey23
grey24
grey25
grey26
grey27
grey28
grey29
grey3
grey30
grey31
grey32
grey33
grey34
grey35
grey36
grey37
grey38
grey4
grey40
grey41
grey42
grey43
grey44
grey45
grey46
grey47
grey48
grey49
grey5
grey50
grey51
grey52
grey53
grey54
grey55
grey56
grey57
grey58
grey59
grey6
grey60
grey61
grey62
grey63
grey64
grey65
grey66
grey67
grey68
grey69
grey7
grey70
grey71
grey72
grey73
grey74
grey75
grey76
grey77
grey78
grey79
grey8
grey80
grey81
grey82
grey83
grey84
grey85
grey86
grey87
grey88
grey89
grey9
grey90
grey91
grey92
grey93
grey94
grey95
grey96
grey97
grey98
grey99
honeydew
honeydew1
honeydew2
honeydew3
honeydew4
hotpink
hotpink1
hotpink2
hotpink3
hotpink4
indianred
indianred1
indianred2
indianred3
indianred4
indigo
indigo2
ivory
ivory tusk
ivory1
ivory2
ivory3
ivory4
khaki
khaki1
khaki2
khaki3
khaki4
lavender
lavenderblush
lavenderblush1
lavenderblush2
lavenderblush3
lavenderblush4
lawngreen
lemonchiffon
lemonchiffon1
lemonchiffon2
lemonchiffon3
lemonchiffon4
light adobe
light sand
lightblue
lightblue1
lightblue2
lightblue3
lightblue4
lightcoral
lightcyan
lightcyan1
lightcyan2
lightcyan3
lightcyan4
lightgoldenrod
lightgoldenrod1
lightgoldenrod2
lightgoldenrod3
lightgoldenrod4
lightgoldenrodyellow
lightgray
lightgreen
lightgrey
lightpink
lightpink1
lightpink2
lightpink3
lightpink4
lightsalmon
lightsalmon1
lightsalmon2
lightsalmon3
lightsalmon4
lightseagreen
lightskyblue
lightskyblue1
lightskyblue2
lightskyblue3
lightskyblue4
lightslateblue
lightslategray
lightslategrey
lightsteelblue
lightsteelblue1
lightsteelblue2
lightsteelblue3
lightsteelblue4
lightyellow1
lightyellow2
lightyellow3
lightyellow4
limegreen
linen
magenta
magenta1
magenta2
magenta3
magenta4
maroon
maroon1
maroon2
maroon3
maroon4
mediumaquamarine
mediumblue
mediumorchid
mediumorchid1
mediumorchid2
mediumorchid3
mediumorchid4
mediumpurple
mediumpurple1
mediumpurple2
mediumpurple3
mediumpurple4
mediumseagreen
mediumslateblue
mediumspringgreen
mediumturquoise
mediumvioletred
midnightblue
mintcream
mistyrose
mistyrose1
mistyrose2
mistyrose3
mistyrose4
moccasin
morning fog
navajowhite
navajowhite1
navajowhite2
navajowhite3
navajowhite4
navy
navyblue
oldlace
olivedrab
olivedrab1
olivedrab2
olivedrab3
olivedrab4
orange
orange1
orange2
orange3
orange4
orangered
orangered1
orangered2
orangered3
orangered4
orchid
orchid1
orchid2
orchid3
orchid4
ostrich feather
pale olive
palegoldenrod
palegreen
palegreen1
palegreen2
palegreen3
palegreen4
paleturquoise
paleturquoise1
paleturquoise2
paleturquoise3
paleturquoise4
palevioletred
palevioletred1
palevioletred2
palevioletred3
palevioletred4
papayawhip
peachpuff
peachpuff1
peachpuff2
peachpuff3
peachpuff4
pearly gates
peru
pink
pink1
pink2
pink3
pink4
plantation white
plum
plum1
plum2
plum3
plum4
porcelain white
powderblue
purple
purple1
purple2
purple3
purple4
red
red1
red2
red3
red4
rosybrown
rosybrown1
rosybrown2
rosybrown3
rosybrown4
royalblue
royalblue1
royalblue2
royalblue3
royalblue4
saddlebrown
salmon
salmon1
salmon2
salmon3
salmon4
sand box
sandybrown
seagreen
seagreen1
seagreen2
seagreen3
seagreen4
seashell
seashell1
seashell2
seashell3
seashell4
sgibeet
sgibrightgray
sgibrightgrey
sgichartreuse
sgidarkgray
sgigray0
sgigray100
sgigray12
sgigray16
sgigray20
sgigray24
sgigray28
sgigray32
sgigray36
sgigray4
sgigray40
sgigray44
sgigray48
sgigray52
sgigray56
sgigray60
sgigray64
sgigray68
sgigray72
sgigray76
sgigray8
sgigray80
sgigray84
sgigray88
sgigray92
sgigray96
sgigrey0
sgigrey100
sgigrey12
sgigrey16
sgigrey20
sgigrey24
sgigrey28
sgigrey32
sgigrey36
sgigrey4
sgigrey40
sgigrey44
sgigrey48
sgigrey52
sgigrey56
sgigrey60
sgigrey64
sgigrey68
sgigrey72
sgigrey76
sgigrey8
sgigrey80
sgigrey84
sgigrey88
sgigrey92
sgigrey96
sgilightblue
sgilightgray
sgilightgrey
sgimediumgray
sgimediumgrey
sgiolivedrab
sgisalmon
sgislateblue
sgiteal
sgiverydarkgray
sgiverydarkgrey
sgiverylightgray
sgiverylightgrey
sienna
sienna1
sienna2
sienna3
sienna4
skyblue
skyblue1
skyblue2
skyblue3
skyblue4
slateblue
slateblue1
slateblue2
slateblue3
slateblue4
slategray
slategray1
slategray2
slategray3
slategray4
slategrey
snow
snow1
snow2
snow3
snow4
springgreen
springgreen1
springgreen2
springgreen3
springgreen4
steelblue
steelblue1
steelblue2
steelblue3
steelblue4
subtle white
tan
tan1
tan2
tan3
tan4
thistle
thistle1
thistle2
thistle3
thistle4
toasted meringue
tomato
tomato1
tomato2
tomato3
tomato4
turquoise
turquoise1
turquoise2
turquoise3
turquoise4
ultra pure white
violet
violetred
violetred1
violetred2
violetred3
violetred4
warm shadow
warm summer
wedding veil
wheat
wheat1
wheat2
wheat3
wheat4
white
white orchid
white sail
whitesmoke
yellow
yellow1
yellow2
yellow3
yellow4
yellowgreen