You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
- Dark IDE theme
8
8
- Purposefully-chosen colours and shades
9
9
- Colour-blind friendly (protanopia)
10
-
- Supports JSON, [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python), [Robot Framework](https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode), [TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml), YAML and more
@@ -46,18 +46,23 @@ Keybindings on active items have the same background colour as the active item i
46
46
47
47
> -`keybindingLabel.background`
48
48
49
-
### Menus
49
+
### Menus & Widgets
50
50
51
51
Menus are found in various places within Visual Studio Code, and are also accessible via right-clicking. As they are very similar in function to the Command Palette, they can share all of its colours.
52
52
53
53
> -`menu.background`
54
54
> -`menu.selectionBackground`
55
55
56
-
## Left Sidebars
56
+
This also includes widgets, which appear in a similar fashion to menus, as boxes of text with a background colour.
57
+
58
+
> -`editorWidget.background`
59
+
> -`editorSuggestWidget.selectedBackground`
60
+
61
+
## Sidebars
57
62
58
63
### Backgrounds
59
64
60
-
The backgrounds of the left sidebars look their best when they naturally blend from the background of the editor area towards black, but don't quite reach it. The line number gutter of the editor area is also included here, as it is essentially a left sidebar.
65
+
The backgrounds of the sidebars look their best when they naturally blend from the background of the editor area towards black, but don't quite reach it. The line number gutter of the editor area is also included here, as it is essentially a left sidebar.
61
66
62
67
Before creating this theme, I used the following colours:
63
68
@@ -70,12 +75,16 @@ With the change of the editor area's colour, there is the opportunity to revisit
70
75
71
76
-*Activity Bar*: `#050a0a` (3:5 with black, any darker and it is too black, any brighter and it does not stand out from sidebar)
72
77
-*Sidebar*: `#091111` (2:1 with black, any lighter and it does not stand out from editor area)
78
+
-*Panel* (bottom bar): Same as sidebar
73
79
-*Editor Gutter*: `#0a1515` (4:1 with black, any lighter and it does not stand out from editor area)
74
80
-*Editor*: `#0d1a1a`
81
+
-*Terminal*: `#030606` (2:7 with black, any darker and it is too black, any brighter and it does not stand out from activity bar; the terminal is a special case as all sorts of colours can be displayed on it)
75
82
76
83
> -`activityBar.background`
77
84
> -`sideBar.background`
85
+
> -`panel.background`
78
86
> -`editorGutter.background`
87
+
> -`terminal.background`
79
88
80
89
### Icons
81
90
@@ -156,9 +165,10 @@ Based on this change, it is possible to make the best orange the hover colour, t
156
165
157
166
Links appear underneath buttons, and are also used to show off the accent colours. Unlike buttons, links can be a slightly brighter orange, as being purely text, they are less visible because of their shape.
158
167
159
-
Returning to the concept of mixing the best orange with white, a mix of 4:1 works best for links. Any lighter and the text takes on a washed-out quality.
168
+
Returning to the concept of mixing the best orange with pure white, a mix of 4:1 works best for links. Any lighter and the text takes on a washed-out quality. This washed-out look is more acceptable for when the link is being hovered over, using a 1:5 mix instead.
160
169
161
170
> -`textLink.foreground`
171
+
> -`textLink.activeForeground`
162
172
163
173
### Focus Border
164
174
@@ -168,8 +178,45 @@ The focus border is the line that appears around the active element, which is of
168
178
169
179
> -`focusBorder`
170
180
181
+
### Input Buttons
182
+
183
+
The sidebar can contain inputs with square buttons in them, which are surrounded by a border while selected. These have to blend in with both the focus border colour and the input background colour, as interaction with them is similar in nature.
184
+
185
+
Starting with the background colour, I settled on a 21:8 mix, `#a9340a`. Any darker or lighter and it looks too faded or distracting.
186
+
187
+
For the border, I found that the input options look better when they have no border. Instead, I had to choose between fully transparent, which reveals the full size of options, or the same colour as the input background, which causes options to shrink a little. I settled on full transparency, as it allows the selected options to retain the modern look of the rest of the theme, rather than appearing boxy and too spread apart.
188
+
189
+
> -`inputOption.activeBackground`
190
+
> -`inputOption.activeBorder`
191
+
192
+
### Search & Word Matches
193
+
194
+
Searching for text in files doesn't only highlight the search term as it appears in the sidebar, but also as it appears in the editor area. It is intended to be a transparent colour.
195
+
196
+
Search is often used as a means of finding and replacing text, which is an operation that requires extra scrutiny, so I have chosen white with the lowest alpha that is still legible on the sidebar, namely `#11`.
197
+
198
+
> -`editor.findMatchHighlightBackground`
199
+
200
+
The background of the currently selected match also tends to be white with a set alpha. Since match highlights stack from both the sidebar and the editor area, and making the selected match any brighter will only create complications when combined with other highlights (e.g. word matches), it too uses the same transparent white.
201
+
202
+
> -`editor.findMatchBackground`
203
+
204
+
Word matches are much less important than search terms, but still need to be legible. I found that an alpha of `#09` ensures the matches are still legible, while ensuring they are less important than search terms. All in all, it is still possible to read comments in the editor area even when fully highlighted, if only barely.
205
+
206
+
> -`editor.wordHighlightBackground`
207
+
171
208
### Extensions
172
209
210
+
#### Star Count
211
+
212
+
The star count icon that appears on extensions is not yellow enough in the base dark theme, however in my testing, I was unable to create a more saturated yellow that wasn't brighter than the original, which would create a distraction.
213
+
214
+
Because of this, I have instead chosen to go with a minimal design, where the star count icon has the same colour as the sidebar text, much like the download count icon, though as a 9:2 mix with the sidebar background, so the icon is as dark as possible without appearing disabled.
215
+
216
+
> -`extensionIcon.starForeground`
217
+
218
+
#### Verified Checkmark
219
+
173
220
It is possible for extensions to have verified publishers, which gives them a checkmark before their name. The colour "button blue" is synonymous with such checkmarks thanks to Twitter (though both it and X suck though), so I will continue to use it here.
174
221
175
222
Before creating this theme, I used `#1da1f2fe`. The alpha of #fe was likely a remnant of a visual bug with an old version of Visual Studio Code, so it has been discarded. As for the colour itself, it is too bright, so I have settled on a 7:1 mix with the sidebar background colour. Any darker and it looks too faded.
@@ -223,6 +270,12 @@ The tab bar background colours should be the same as the inactive tab colours, t
223
270
224
271
> -`editorGroupHeader.tabsBackground`
225
272
273
+
### Modified Settings
274
+
275
+
Modified settings show a vertical bar on their left side. While this can be similar to the accent colour, its proximity to links (which are also the accent colour mixed with white) makes it blend in too much. A mix of 9:2 is used, as it is not too dark to blend in, but not too bright to look washed out.
276
+
277
+
> -`settings.modifiedItemIndicator`
278
+
226
279
### Text Selection
227
280
228
281
Selecting text is distracting if the selection background is any colour other than white. With this in mind, a perfect transparency must be achieved, so that selecting text is not distracting while still being fully visible.
@@ -287,7 +340,7 @@ Semantic token colours are an abstraction of token colours, which may or may not
287
340
> -`variable` - 1:2 mix of `#ffff00` and `#e5e5e5`
288
341
> -`string` - Same as `editor.foreground`
289
342
> -`number` - 7:2 mix of `#00ff00` and `#486a6a`
290
-
> -`class` - 5:1 mix of `#ff3d3d` and `#90e0e0`
343
+
> -`class` - 11:8 mix of `#ff0000` and `#ffffff`
291
344
> -`keyword` - 11:16 mix of `#ff006a` and `#c7dbdb`
292
345
> -`type` - 4:1 mix of `#ff8000` and `#00f5f5`
293
346
> -`comment` - Same as `gitDecoration.ignoredResourceForeground`
@@ -307,8 +360,14 @@ Semantic token colours are an abstraction of token colours, which may or may not
307
360
> -`markup.underline.link`
308
361
> -`punctuation.definition.link`
309
362
> -`punctuation.definition.metadata`
363
+
> -**JavaScript**
364
+
> -`meta.brace.round`
310
365
> - Bold
311
-
> -`entity.name.function.python`
366
+
> -**Python**
367
+
> -`entity.name.function.python`
368
+
> -**JavaScript**
369
+
> -`meta.definition.function`
370
+
> -`meta.definition.method`
312
371
313
372
## Variables
314
373
@@ -320,23 +379,46 @@ Semantic token colours are an abstraction of token colours, which may or may not
320
379
> -**Markdown**
321
380
> -`markup.inline.raw`
322
381
> -**HTML**
382
+
> -`meta.tag.structure`
383
+
> -`meta.tag.metadata`
323
384
> -`entity.other.attribute-name`
385
+
> -**CSS**
386
+
> -`entity.name.tag.css`
387
+
> -**JavaScript**
388
+
> -`meta.object-literal.key`
389
+
> -**Properties**
390
+
> -`entity.name.section`
391
+
> -`keyword.other.definition`
324
392
> -**TOML**
325
393
> -`support.type.property-name`
394
+
> -**XML**
395
+
> -`entity.name.tag.localname`
326
396
> -**YAML**
327
-
> -`entity.name.tag`
397
+
> -`entity.name.tag.yaml`
328
398
> - Italic
329
399
> -`markup.italic`
330
400
331
401
### Constant Variables
332
402
333
403
The constant variable name colour is a 29:18 mix between variable and constant value colours.
334
404
335
-
> -`constant.other.caps`
405
+
> -**Python**
406
+
> -`constant.other.caps`
407
+
> -**JavaScript**
408
+
> -`variable.other.constant`
409
+
> -**CSS**
410
+
> -`support.constant`
336
411
337
412
## Strings
338
413
339
-
> -`string.quoted`
414
+
> -**Python**
415
+
> -`string`
416
+
> -**HTML**
417
+
> -`source.css`
418
+
> -**Ignore**
419
+
> -`source.ignore`
420
+
> -**Properties**
421
+
> -`source.ini`
340
422
341
423
## Constant Values
342
424
@@ -347,25 +429,30 @@ The constant variable name colour is a 29:18 mix between variable and constant v
0 commit comments