-
Notifications
You must be signed in to change notification settings - Fork 0
Themes
Spiral edited this page Aug 23, 2026
·
3 revisions
- Themes can be changed in settings under
Select Theme - They are loaded from
[GMM Folder]/Resources/Themes
App Colors
| Key | Location |
|---|---|
editor.background |
Main code editor Folding margin Selected folding marker |
editor.foreground |
Code editor text Selected folding marker |
editorLineNumber.foreground |
Code editor line numbers |
editor.lineHighlightBackground |
Background and border of the current line |
editor.selectionBackground |
Selected text Folding markers |
env.foreground |
General application text Focused and hovered text fields Menu shortcuts and arrows Title bar buttons Checkbox text and checkmarks |
link |
Links |
link.hover |
Links when hovered |
tab.bg.inactive |
Inactive tabs |
tab.bg.inactive.hover |
Menu backgrounds and borders ComboBox dropdowns Inactive tabs when hovered |
tab.bg.inactive.unfocused.hover |
Inactive tabs when the window is unfocused and hovered Hovered ComboBoxes Hovered text fields Hovered buttons and menu items |
tab.bg.unfocused |
Inactive tabs when the window is unfocused Pressed ComboBoxes and buttons |
tab.close.unfocused |
Tab close button when the window is unfocused |
tab.close.hover |
Tab close button when hovered |
tab.separator |
Tab separators Inactive tab close button when hovered |
decoration.bg.hover |
Minimize and maximize buttons when hovered Hovered checked checkboxes |
decoration.bg.pressed |
Minimize and maximize buttons when pressed Pressed checkboxes |
decoration.exit.bg.hover |
Close button when hovered |
decoration.exit.bg.pressed |
Close button when pressed |
Token Colors
- These are the colors that are used for code syntax
- This is the best list that I could compile. If you know of any more, please contribute
-
How it works: All children within a scope are affected by the settings. However, applied settings are based on child-major. Meaning that if you declare something with a scope of
entity.namewith a foreground of yellow, then you declare something else ofentity.name.functionwith a foreground of green. Everything that falls under the scope ofentity.namewill be yellow, except for function names, which would be green. - In the following list of scopes, some examples may contain
"...",{...}, or(...). These are used to show what actually gets affected by that scope. Quotations are used first, then curly brackets, then parentheses. For example, in this<"summary">,"summary"is what actually gets affected. Another example is$"Number: ({num})", here"{num}"is what actually gets affected
| Scope | Description |
|---|---|
comment |
Comments and documentation comments |
constant |
Boolean, null, numeric, and character constants |
entity |
Named code entities such as classes, methods, variables, and attributes |
keyword |
C# keywords and operators |
meta |
Additional semantic information such as ac |
| Themes.zip | |
| cessors and interpolation | |
punctuation |
Syntax punctuation such as braces, brackets, commas, and semicolons |
storage |
Type declarations and modifiers |
string |
String and character literals |
variable |
References to variables and special language variables |
| Scope | Example | Description |
|---|---|---|
comment.block |
/* ... */ |
Block comments |
comment.block.documentation |
/// comment |
XML documentation comments |
comment.line |
// comment |
Single-line comments |
comment.line.double-slash |
// comment |
The // portion of a line comment, depending on punctuation context |
| Scope | Example | Description |
|---|---|---|
constant.language.boolean |
Boolean constants | |
constant.language.boolean.true |
true |
true boolean value |
constant.language.boolean.false |
false |
false boolean value |
constant.language.null |
null |
Null literal |
| Scope | Example | Description |
|---|---|---|
constant.numeric.decimal |
1, 12, 123.45
|
Decimal numbers and general numeric values |
constant.numeric.hex |
FF |
Hexadecimal digits |
constant.numeric.binary |
1010 |
Binary digits |
constant.numeric.other |
. |
Decimal point |
constant.numeric.other.suffix |
f, L, m
|
Numeric suffixes |
constant.numeric.other.prefix |
0x, 0b
|
Numeric prefixes |
constant.numeric.other.prefix.hex |
0x |
Hexadecimal prefix |
constant.numeric.other.prefix.binary |
0b |
Binary prefix |
| Scope | Example | Description |
|---|---|---|
constant.character.escape |
\n, \"
|
Character escape sequences |
| Scope | Example | Description |
|---|---|---|
entity.name.function |
void "MethodName"() |
Function or method name |
entity.name.tag |
XML documentation tag | |
entity.name.tag.localname |
<"summary">, <"param">
|
Local name of an XML tag |
entity.name.type.alias |
using "Console" = System.Console |
Type alias |
entity.name.type.class |
class "ClassName" |
Class name |
entity.name.type.enum |
enum "EnumName" |
Enum name |
entity.name.type.interface |
interface "ITest" |
Interface name |
entity.name.type.namespace |
namespace "MyNamespace", using "System"
|
Namespace name |
entity.name.type.struct |
struct "MyStruct" |
Struct name |
entity.name.type.type-parameter |
IEnumerable<T> Test<"T"> |
Generic type parameter |
| Scope | Example | Description |
|---|---|---|
entity.name.variable.enum-member |
MyEnum."Value" |
Enum member |
entity.name.variable.event |
event Action "OnEvent" |
Event declaration |
entity.name.variable.field |
int "num" |
Field declaration |
entity.name.variable.local |
int "num" |
Local variable declaration |
entity.name.variable.parameter |
void Method(int "num") |
Method parameter |
entity.name.variable.property |
int "Num" { get; set; } |
Property declaration |
entity.name.variable.tuple-element |
("str", "num") |
Tuple element |
| Scope | Example | Description |
|---|---|---|
keyword.control.context.checked |
"checked" { } |
Checked context |
keyword.control.context.lock |
"lock" (obj) { } |
Lock statement |
| Scope | Example | Description |
|---|---|---|
keyword.control.conditional.switch |
"switch" (value) |
Switch statement |
keyword.control.conditional.case |
"case" null: |
Case label |
keyword.control.conditional.default |
"default": |
Default case |
keyword.control.conditional.if |
if |
If statement |
keyword.control.conditional.else |
else |
Else statement |
keyword.control.conditional.when |
when |
Pattern matching condition |
| Scope | Example | Description |
|---|---|---|
keyword.control.exception.catch |
catch |
Catch block |
keyword.control.exception.finally |
finally |
Finally block |
keyword.control.exception.try |
try |
Try block |
| Scope | Example | Description |
|---|---|---|
keyword.control.flow.break |
break |
Break statement |
keyword.control.flow.continue |
continue |
Continue statement |
keyword.control.flow.return |
return |
Return statement |
keyword.control.flow.throw |
throw |
Throw statement |
keyword.control.flow.yield |
yield |
Yield statement |
| Scope | Example | Description |
|---|---|---|
keyword.control.loop.do |
do |
Do-while loop |
keyword.control.loop.for |
for |
For loop |
keyword.control.loop.foreach |
foreach |
Foreach loop |
keyword.control.loop.in |
in |
Foreach/in expression |
keyword.control.loop.while |
while |
While loop |
| Scope | Example | Description |
|---|---|---|
keyword.operator.arithmetic |
+, -, *, /, %
|
Arithmetic operators |
keyword.operator.arrow |
=> |
Lambda or expression-bodied member |
keyword.operator.comparison |
==, !=` |
Equality comparison |
keyword.operator.decrement |
-- |
Decrement |
keyword.operator.increment |
++ |
Increment |
keyword.operator.assignment |
=, ??=
|
Assignment |
keyword.operator.assignment.compound |
+=, -=, /=, *=, %=
|
Compound assignment |
keyword.operator.assignment.compound.bitwise |
>>= |
Compound bitwise assignment |
keyword.operator.bitwise |
&, |, ^
|
Bitwise operators |
keyword.operator.bitwise.shift |
<< |
Bit shifting |
keyword.operator.expression.as |
as |
Type casting |
keyword.operator.expression.nameof |
nameof |
Name expression |
keyword.operator.expression.typeof |
typeof |
Type expression |
keyword.operator.expression.await |
await |
Await expression |
keyword.operator.expression.new |
new |
Object creation |
keyword.operator.expression.pattern.is |
is |
Pattern matching |
keyword.operator.logical |
&&, ||
|
Logical operators |
keyword.operator.null-coalescing |
?? |
Null-coalescing operator |
keyword.operator.relational |
<, <=, >, >=
|
Relational operators |
keyword.operator.range |
.. |
Range operator |
| Scope | Example | Description |
|---|---|---|
keyword.other.directive.static |
using "static" System |
Static using directive |
keyword.other.directive.using |
"using" System |
Using directive |
| Scope | Example | Description |
|---|---|---|
keyword.type |
Built-in type keyword | |
keyword.type.bool |
bool |
Boolean type |
keyword.type.interface |
interface |
Interface type |
keyword.type.object |
object |
Object type |
keyword.type.string |
string |
String type |
keyword.type.void |
void |
Void type |
keyword.type.long |
long |
Long type |
keyword.type.int |
int |
Integer type |
keyword.type.float |
float |
Float type |
keyword.type.dynamic |
dynamic |
Dynamic type |
keyword.type.double |
double |
Double type |
keyword.type.decimal |
decimal |
Decimal type |
| Scope | Example | Description |
|---|---|---|
meta.accessor.setter |
"arr[i]" = 1 |
Setter/accessor body |
meta.accessor.getter |
"arr[i]" |
Getter/accessor body |
meta.interpolation |
$"Number: ({num})" |
String interpolation |
meta.tag |
/// <summary> |
XML documentation tag |
| Scope | Example | Description |
|---|---|---|
punctuation.accessor |
Console"."WriteLine() |
Member access punctuation |
| Scope | Example | Description |
|---|---|---|
punctuation.curlybrace.open |
{ |
Opening curly brace |
punctuation.curlybrace.close |
} |
Closing curly brace |
| Scope | Example | Description |
|---|---|---|
punctuation.definition.comment |
//, /*, */, ///
|
Comment delimiters |
punctuation.definition.tag |
/// "<"summary">" |
XML tag delimiters |
punctuation.definition.typeparameters.begin |
List"<"T> _list |
Opening generic type parameters |
punctuation.definition.typeparameters.end |
List<T">" _list |
Closing generic type parameters |
punctuation.definition.string.begin |
{"}Hello" |
Opening string delimiter |
punctuation.definition.string.end |
"Hello{"} |
Closing string delimiter |
punctuation.definition.char.begin |
{'}c' |
Opening character delimiter |
punctuation.definition.char.end |
'c{'} |
Closing character delimiter |
| Scope | Example | Description |
|---|---|---|
punctuation.parenthesis.open |
( |
Opening parenthesis |
punctuation.parenthesis.close |
) |
Closing parenthesis |
| Scope | Example | Description |
|---|---|---|
punctuation.separator.colon |
case null":" |
Colon |
punctuation.separator.comma |
int a"," int b |
Comma |
punctuation.separator.question-mark |
int"?" num |
Nullable type marker |
| Scope | Example | Description |
|---|---|---|
punctuation.squarebracket.open |
int"["] |
Opening square bracket |
punctuation.squarebracket.close |
int["]" |
Closing square bracket |
| Scope | Example | Description |
|---|---|---|
punctuation.terminator.statement |
; |
Statement terminator |
| Scope | Example | Description |
|---|---|---|
storage.modifier.abstract |
abstract |
Abstract modifier |
storage.modifier.async |
async |
Async modifier |
storage.modifier.const |
const |
Constant modifier |
storage.modifier.private |
private |
Private access modifier |
storage.modifier.protected |
protected |
Protected access modifier |
storage.modifier.public |
public |
Public access modifier |
storage.modifier.readonly |
readonly |
Read-only modifier |
storage.modifier.sealed |
sealed |
Sealed modifier |
storage.modifier.static |
static |
Static modifier |
storage.modifier.virtual |
virtual |
Virtual modifier |
storage.modifier.where |
where |
Generic constraint |
storage.modifier.this |
this |
Extension method modifier |
| Scope | Example | Description |
|---|---|---|
storage.type.accessor |
Property accessor | |
storage.type.accessor.get |
get |
Getter |
storage.type.accessor.set |
set |
Setter |
storage.type.accessor.init |
init |
Init accessor |
storage.type.class |
class |
Class declaration |
storage.type.enum |
enum |
Enum declaration |
storage.type.event |
event |
Event declaration |
storage.type.interface |
interface |
Interface declaration |
storage.type.namespace |
namespace |
Namespace declaration |
storage.type.record |
record |
Record declaration |
storage.type.struct |
struct |
Struct declaration |
storage.type.var |
var |
Implicitly typed variable |
| Scope | Example | Description |
|---|---|---|
string.quoted.single |
char c = {'c'} |
Character literal |
string.quoted.double |
string str = {"Hello"} |
String literal |
| Scope | Example | Description |
|---|---|---|
variable.language.this |
this |
Current object reference |
variable.language.base |
base |
Base class reference |
| Scope | Example | Description |
|---|---|---|
variable.other.value |
set => _num = "value" |
Special value variable in a setter |
variable.other.object |
"Console".WriteLine() |
Object/member reference |
variable.other.object.property |
str."Length" |
Object property reference |
variable.other.readwrite |
"num" -= 1 |
Variable references after declaration |