Skip to content

Commit 49150e5

Browse files
authored
Merge pull request #1 from jack5github/0.0.2
Release 0.0.2
2 parents 5a8786d + 72928be commit 49150e5

File tree

9 files changed

+266
-36
lines changed

9 files changed

+266
-36
lines changed

.github/workflows/publish.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@ jobs:
1313
pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
1414
registryUrl: https://marketplace.visualstudio.com
1515
id: vsmPublish
16-
# TODO: Publish to Open VSX Registry
17-
# - name: Publish to Open VSX Registry
18-
# uses: HaaLeo/publish-vscode-extension@v2
19-
# with:
20-
# pat: ${{ secrets.OPEN_VSX_REGISTRY_TOKEN }}
21-
# extensionFile: ${{ steps.vsmPublish.outputs.vsixPath }}
16+
- name: Publish to Open VSX Registry
17+
uses: HaaLeo/publish-vscode-extension@v2
18+
with:
19+
pat: ${{ secrets.OPEN_VSX_REGISTRY_TOKEN }}
20+
extensionFile: ${{ steps.vsmPublish.outputs.vsixPath }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
.vscode/settings.json
12
*.vsix

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
# Changelog
22

3+
## 0.0.2 - 2026-03-12
4+
5+
### Added
6+
7+
- Added C#, CSS, GitHub Actions (YAML), HTML, Ignore, JavaScript, Properties and XML support
8+
- Added active links colour
9+
- Added colours for panels and terminals
10+
- Added colours for search results and word matches
11+
- Added `docs/languages.md` to track supported languages and extensions
12+
- Added editor widgets colours
13+
- Added `entity.name.section.markdown` colour for Markdown
14+
- Added extension star counts colour
15+
- Added GitHub workflow for publishing extension to Open VSX Registry
16+
- Added input options colours
17+
- Added modified settings colour
18+
- Added missing `punctuation.definition.mapping`, `punctuation.definition.sequence` and `storage.type.tag` colours for YAML
19+
- Added `punctuation.definition.table` and `punctuation.eq` colours for TOML
20+
- `.vscode/settings.json` added to `.gitignore`
21+
22+
### Changed
23+
24+
- Changes to documentation in `docs/colours.md`
25+
- Class semantic token colour changed to `#ed5858`
26+
- Icon updated to use new class semantic token colour
27+
- Markdown `fenced_code.block.language` colour now uses type semantic token colour
28+
- Python `entity.name.type.class` colour now applies to `entity.name.type`
29+
- `string.quoted` colour now applies to `string`
30+
- YAML `entity.name.tag` colour now applies to `entity.name.tag.yaml`
31+
332
## 0.0.1 - 2026-03-07
433

534
Initial release

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- Dark IDE theme
88
- Purposefully-chosen colours and shades
99
- 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
10+
- Supports C#, HTML, JavaScript, JSON, Markdown, Python, Robot Framework, YAML [and more](docs/languages.md)
1111

1212
## Installation
1313

docs/colours.md

Lines changed: 134 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,23 @@ Keybindings on active items have the same background colour as the active item i
4646

4747
> - `keybindingLabel.background`
4848
49-
### Menus
49+
### Menus & Widgets
5050

5151
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.
5252

5353
> - `menu.background`
5454
> - `menu.selectionBackground`
5555
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
5762

5863
### Backgrounds
5964

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.
6166

6267
Before creating this theme, I used the following colours:
6368

@@ -70,12 +75,16 @@ With the change of the editor area's colour, there is the opportunity to revisit
7075

7176
- *Activity Bar*: `#050a0a` (3:5 with black, any darker and it is too black, any brighter and it does not stand out from sidebar)
7277
- *Sidebar*: `#091111` (2:1 with black, any lighter and it does not stand out from editor area)
78+
- *Panel* (bottom bar): Same as sidebar
7379
- *Editor Gutter*: `#0a1515` (4:1 with black, any lighter and it does not stand out from editor area)
7480
- *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)
7582

7683
> - `activityBar.background`
7784
> - `sideBar.background`
85+
> - `panel.background`
7886
> - `editorGutter.background`
87+
> - `terminal.background`
7988
8089
### Icons
8190

@@ -156,9 +165,10 @@ Based on this change, it is possible to make the best orange the hover colour, t
156165

157166
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.
158167

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.
160169

161170
> - `textLink.foreground`
171+
> - `textLink.activeForeground`
162172
163173
### Focus Border
164174

@@ -168,8 +178,45 @@ The focus border is the line that appears around the active element, which is of
168178

169179
> - `focusBorder`
170180
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+
171208
### Extensions
172209

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+
173220
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.
174221

175222
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
223270

224271
> - `editorGroupHeader.tabsBackground`
225272
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+
226279
### Text Selection
227280

228281
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
287340
> - `variable` - 1:2 mix of `#ffff00` and `#e5e5e5`
288341
> - `string` - Same as `editor.foreground`
289342
> - `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`
291344
> - `keyword` - 11:16 mix of `#ff006a` and `#c7dbdb`
292345
> - `type` - 4:1 mix of `#ff8000` and `#00f5f5`
293346
> - `comment` - Same as `gitDecoration.ignoredResourceForeground`
@@ -307,8 +360,14 @@ Semantic token colours are an abstraction of token colours, which may or may not
307360
> - `markup.underline.link`
308361
> - `punctuation.definition.link`
309362
> - `punctuation.definition.metadata`
363+
> - **JavaScript**
364+
> - `meta.brace.round`
310365
> - Bold
311-
> - `entity.name.function.python`
366+
> - **Python**
367+
> - `entity.name.function.python`
368+
> - **JavaScript**
369+
> - `meta.definition.function`
370+
> - `meta.definition.method`
312371
313372
## Variables
314373

@@ -320,23 +379,46 @@ Semantic token colours are an abstraction of token colours, which may or may not
320379
> - **Markdown**
321380
> - `markup.inline.raw`
322381
> - **HTML**
382+
> - `meta.tag.structure`
383+
> - `meta.tag.metadata`
323384
> - `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`
324392
> - **TOML**
325393
> - `support.type.property-name`
394+
> - **XML**
395+
> - `entity.name.tag.localname`
326396
> - **YAML**
327-
> - `entity.name.tag`
397+
> - `entity.name.tag.yaml`
328398
> - Italic
329399
> - `markup.italic`
330400
331401
### Constant Variables
332402

333403
The constant variable name colour is a 29:18 mix between variable and constant value colours.
334404

335-
> - `constant.other.caps`
405+
> - **Python**
406+
> - `constant.other.caps`
407+
> - **JavaScript**
408+
> - `variable.other.constant`
409+
> - **CSS**
410+
> - `support.constant`
336411
337412
## Strings
338413

339-
> - `string.quoted`
414+
> - **Python**
415+
> - `string`
416+
> - **HTML**
417+
> - `source.css`
418+
> - **Ignore**
419+
> - `source.ignore`
420+
> - **Properties**
421+
> - `source.ini`
340422
341423
## Constant Values
342424

@@ -347,25 +429,30 @@ The constant variable name colour is a 29:18 mix between variable and constant v
347429
> - **Markdown**
348430
> - `markup.italic`
349431
> - `punctuation.definition.italic`
432+
> - **JavaScript**
433+
> - `constant.character.escape`
350434
351435
## Classes
352436

353437
> - **Python**
354-
> - `entity.name.type.class`
438+
> - `entity.name.type`
355439
> - `meta.function`
356440
> - `support.type.exception`
357441
> - `variable.parameter.function.language.special.self`
358442
> - **Markdown**
359443
> - `markup.bold`
360444
> - `punctuation.definition.bold`
445+
> - **JavaScript**
446+
> - `meta.class`
447+
> - `variable.language.this`
361448
> - Bold
362449
> - **Python**
363450
> - `entity.name.type.class`
364451
> - **Markdown**
365452
> - `markup.bold`
366453
> - `heading.1`
367454
368-
## Keywords
455+
## Keywords and Control Flow
369456

370457
> - **Python**
371458
> - `keyword`
@@ -381,21 +468,54 @@ The constant variable name colour is a 29:18 mix between variable and constant v
381468
> - `meta.structure.dictionary`
382469
> - **Markdown**
383470
> - `markup.heading`
471+
> - `entity.name.section.markdown`
384472
> - `punctuation.definition.heading`
385473
> - `punctuation.definition.list`
386474
> - `punctuation.definition.quote`
387475
> - `punctuation.definition.raw`
388476
> - `punctuation.definition.markdown`
389-
> - `fenced_code.block.language`
390477
> - **HTML**
478+
> - `meta.tag.metadata.doctype`
391479
> - `punctuation.definition.tag`
480+
> - **CSS**
481+
> - `punctuation.section`
482+
> - **C#**
483+
> - `punctuation.curlybrace`
484+
> - `punctuation.squarebracket`
485+
> - **JavaScript**
486+
> - `storage.type`
487+
> - `meta.array`
488+
> - `punctuation.definition.binding-pattern`
489+
> - `punctuation.definition.template-expression`
490+
> - `punctuation.terminator`
491+
> - **Properties**
492+
> - `punctuation.definition.entity`
493+
> - **TOML**
494+
> - `punctuation.definition.table`
495+
> - `punctuation.eq`
496+
> - **XML**
497+
> - `meta.tag.xml`
392498
> - **YAML**
393499
> - `punctuation.definition.block`
500+
> - `punctuation.definition.mapping`
501+
> - `punctuation.definition.sequence`
502+
> - `storage.modifier`
503+
> - `meta.flow-mapping`
504+
> - `meta.flow-sequence`
505+
> - **GitHub Actions**
506+
> - `meta.embedded.block`
394507
395508
## Types
396509

397-
> - `support.type`
398-
> - `meta.item-access`
510+
> - **Python**
511+
> - `support.type`
512+
> - `meta.item-access`
513+
> - **C#**
514+
> - `keyword.type`
515+
> - **Markdown**
516+
> - `fenced_code.block.language`
517+
> - **YAML**
518+
> - `storage.type.tag`
399519
400520
## Comments
401521

docs/icon.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/languages.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Tested Languages
2+
3+
- **[C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)**
4+
- **CSS**
5+
- **[GitHub Actions](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions)**
6+
- **HTML**
7+
- **Ignore**
8+
- **JavaScript**
9+
- **JSON**
10+
- **[Markdown](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)**
11+
- **Properties**
12+
- **[Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)**
13+
- **[Robot Framework](https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode)**
14+
- **[TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml)**
15+
- **XML**
16+
- **YAML**

icon.png

835 Bytes
Loading

0 commit comments

Comments
 (0)