├── .eslintrc.json
├── .github
└── FUNDING.yml
├── .gitignore
├── .prettierrc.json
├── .vscode
└── launch.json
├── .vscodeignore
├── CHANGELOG.md
├── LICENSE
├── README-DEV.md
├── README.md
├── assets
├── icon.png
└── themes.png
├── bridge.json
├── eslint.config.js
├── package-lock.json
├── package.json
├── publish.bat
├── publish.sh
├── releases
├── 10.0.0.md
├── 10.1.0.md
├── 8.3.2.md
├── 9.0.0.md
├── 9.0.1.md
├── 9.1.0.md
├── 9.1.1.md
├── 9.1.2.md
├── 9.1.3.md
├── 9.1.4.md
├── 9.1.5.md
├── 9.2.0.md
└── 9.3.0.md
├── src
├── create-release-notes.ts
├── helper.ts
├── index.ts
├── scopes
│ ├── markup.ts
│ ├── prog.ts
│ ├── scopes.ts
│ ├── semanticTokens.ts
│ └── styling.ts
├── typing.ts
├── ui.ts
└── variations
│ ├── aquarelle.ts
│ ├── arc.ts
│ ├── black.ts
│ ├── classics.ts
│ ├── colorblind.ts
│ ├── exotic.ts
│ ├── feat.ts
│ ├── hc.ts
│ ├── milkshake.ts
│ ├── monokai.ts
│ ├── oled.ts
│ ├── solarized.ts
│ ├── stained.ts
│ ├── surprising.ts
│ └── vivid.ts
├── themes
├── bearded-theme-Themanopia.json
├── bearded-theme-altica.json
├── bearded-theme-aquarelle-cymbidium.json
├── bearded-theme-aquarelle-hydrangea.json
├── bearded-theme-aquarelle-lilac.json
├── bearded-theme-aquerelle-hydrangea.json
├── bearded-theme-arc-blueberry.json
├── bearded-theme-arc-eggplant.json
├── bearded-theme-arc-eolstorm.json
├── bearded-theme-arc-reversed.json
├── bearded-theme-arc.json
├── bearded-theme-black-&-amethyst-soft.json
├── bearded-theme-black-&-amethyst.json
├── bearded-theme-black-&-diamond-soft.json
├── bearded-theme-black-&-diamond.json
├── bearded-theme-black-&-emerald-soft.json
├── bearded-theme-black-&-emerald.json
├── bearded-theme-black-&-gold-soft.json
├── bearded-theme-black-&-gold.json
├── bearded-theme-black-&-ruby-soft.json
├── bearded-theme-black-&-ruby.json
├── bearded-theme-black-amethyst-soft.json
├── bearded-theme-black-amethyst.json
├── bearded-theme-black-diamond-soft.json
├── bearded-theme-black-diamond.json
├── bearded-theme-black-emerald-soft.json
├── bearded-theme-black-emerald.json
├── bearded-theme-black-gold-soft.json
├── bearded-theme-black-gold.json
├── bearded-theme-black-ruby-soft.json
├── bearded-theme-black-ruby.json
├── bearded-theme-classics-anthracite.json
├── bearded-theme-classics-light.json
├── bearded-theme-coffee-cream.json
├── bearded-theme-coffee-reversed.json
├── bearded-theme-coffee.json
├── bearded-theme-earth.json
├── bearded-theme-feat-gold-d-raynh-light.json
├── bearded-theme-feat-gold-d-raynh.json
├── bearded-theme-feat-mellejulie-light.json
├── bearded-theme-feat-mellejulie.json
├── bearded-theme-feat-webDevCody.json
├── bearded-theme-feat-will.json
├── bearded-theme-hc-brewing-storm.json
├── bearded-theme-hc-chocolate-espresso.json
├── bearded-theme-hc-ebony.json
├── bearded-theme-hc-flurry.json
├── bearded-theme-hc-midnightvoid.json
├── bearded-theme-hc-minuit.json
├── bearded-theme-hc-wonderland-wood.json
├── bearded-theme-milkshake-blueberry.json
├── bearded-theme-milkshake-mango.json
├── bearded-theme-milkshake-mint.json
├── bearded-theme-milkshake-raspberry.json
├── bearded-theme-milkshake-vanilla.json
├── bearded-theme-monokai-black.json
├── bearded-theme-monokai-metallian.json
├── bearded-theme-monokai-reversed.json
├── bearded-theme-monokai-stone.json
├── bearded-theme-monokai-terra.json
├── bearded-theme-oceanic-reversed.json
├── bearded-theme-oceanic.json
├── bearded-theme-oled.json
├── bearded-theme-solarized-dark.json
├── bearded-theme-solarized-light.json
├── bearded-theme-solarized-reversed.json
├── bearded-theme-stained-blue.json
├── bearded-theme-stained-purple.json
├── bearded-theme-surprising-blueberry.json
├── bearded-theme-surprising-eggplant.json
├── bearded-theme-surprising-watermelon.json
├── bearded-theme-vivid-black.json
├── bearded-theme-vivid-light.json
├── bearded-theme-vivid-purple.json
├── bearded-theme-void.json
└── ui-key-tester.json
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["perfectionist"],
3 | "parser": "@typescript-eslint/parser",
4 | "parserOptions": {
5 | "ecmaVersion": 2020,
6 | "sourceType": "module"
7 | },
8 | "extends": [
9 | "plugin:@typescript-eslint/recommended",
10 | "plugin:perfectionist/recommended-natural"
11 | ],
12 | "rules": {
13 | "@typescript-eslint/explicit-function-return-type": "warn"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [BeardedBear]
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.vsix
3 | .env
4 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "semi": true,
4 | "trailingComma": "all",
5 | "arrowParens": "always"
6 | }
7 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that launches the extension inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [
8 | {
9 | "name": "Extension",
10 | "type": "extensionHost",
11 | "request": "launch",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ]
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | src/**
2 | .gitignore
3 | .yarnrc
4 | yarn.lock
5 | vsc-extension-quickstart.md
6 | **/tsconfig.json
7 | **/.eslintrc.json
8 | **/*.map
9 | **/*.ts
10 | save/**
11 | node_modules
12 | assets/themes.png
13 | releases/**
14 | .vscode/**
15 | .vscode-test/**
16 | .github/
17 | .env*
18 | eslint.config.js
19 | themes/ui-key-tester.json
20 | README-DEV.md
21 | bridge.json
22 | *.sh
23 | *.bat
24 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog for Bearded Theme
2 |
3 | ## 9.3.0 - 2024-08-02
4 |
5 | - 🪄 Improve contrast in all light variations
6 | - 🪄 Improve scrollbarSlider color
7 | - 🐛 Fix highlight background color for light variations
8 | - 🐛 Fix extension description foreground
9 | - 🐛 Fix secondary buttons background color [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/191)
10 | - 🐛 Fix button contrast in light themes [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/190)
11 |
12 | ## 9.2.0 - 2024-07-23
13 |
14 | - 🎉 Add new feat variation for WebDevCody [Thanks Cody](https://github.com/webdevcody)
15 | - 🪄 Fix contrast background color for title bar
16 | - 🐛 Fix subvariable color for cpp [Thanks CodingOIer](https://github.com/BeardedBear/bearded-theme/issues/177)
17 | - 🐛 Fix highlight color for matching words
18 | - 🐛 Fix shadow for sticky scroll in tree view
19 | - 🐛 Fix compactHoverBackground color
20 | - 🐛 Fix licence info in readme [Thanks PauloDeSousa](https://github.com/BeardedBear/bearded-theme/issues/185)
21 | - 🐛 Fix color for `editor.foldPlaceholderForeground`
22 |
23 | ## 9.1.5 - 2024-03-27
24 |
25 | - Fix shadows for sticky elements [Thanks Code-DJ](https://github.com/BeardedBear/bearded-theme/issues/163)
26 |
27 | ## 9.1.4 - 2024-02-28
28 |
29 | - Fix prominent colors [Thanks nerdydaemon10](https://github.com/BeardedBear/bearded-theme/issues/158)
30 | - Fix active input option colors [Thanks Djojo77](https://github.com/BeardedBear/bearded-theme/issues/159)
31 |
32 | ## 9.1.3 - 2024-02-22
33 |
34 | - Fix icon color on hover suggest widget [Thanks rohitxdev](https://github.com/BeardedBear/bearded-theme/issues/153)
35 | - Fix line number color [Thanks khannurien](https://github.com/BeardedBear/bearded-theme/issues/154)
36 |
37 | ## 9.1.2 - 2024-02-21
38 |
39 | - Fix panelSection.border color
40 |
41 | ## 9.1.1 - 2024-02-21
42 |
43 | ### Fixes
44 |
45 | - Fix debug breakpoint color
46 | - Fix sticky scroll hover on terminal
47 | - Fix bright color for terminal
48 | - Fix shadow for sticky scroll
49 | - Fix border color for widgets
50 | - Fix overview ruler HL opacity
51 |
52 | ## 9.1.0 - 2024-02-19
53 |
54 | ### Fixes
55 |
56 | - Fix teinted hover icon color
57 |
58 | ### Enhancements
59 |
60 | - Add better support for inline chat
61 | - Add more readable colors for breadcrumb picker
62 | - Improve debug mode colors
63 |
64 | ## 9.0.1 - 2024-02-18
65 |
66 | ### Fixes
67 |
68 | - Adjust contrast of Aquarelle serie colors
69 |
70 | ## 9.0.0 - 2024-02-17
71 |
72 | ### New features
73 |
74 | - Add experimental variation for color blind users `Bearded Themanopia`
75 | - Add 3 variations of new serie `Aquarelle`
76 | - `Aquarelle Cymbidium`
77 | - `Aquarelle Hydrangea`
78 | - `Aquarelle Lilac`
79 |
80 | ### Fixes
81 |
82 | - Fix line number foreground color
83 | - Fix Milkshake Blueberry primary color
84 | - Fix Milkshake Mango primary color
85 | - Fix current text for react with babel syntax HL [Thanks oguzhanuzunay](https://github.com/BeardedBear/bearded-theme/issues/133)
86 | - Fix TODO keyword in comments [Thanks lperson](https://github.com/BeardedBear/bearded-theme/issues/135)
87 | - Fix const keyword missing for julia [Thanks SabeDoesThings](https://github.com/BeardedBear/bearded-theme/issues/136)
88 | - Fix quoted style attribute for HTML [Thanks gmurad97](https://github.com/BeardedBear/bearded-theme/issues/139)
89 | - Fix inserted comment background color in diff editor [Thanks hadirgax](https://github.com/BeardedBear/bearded-theme/issues/144)
90 | - Fix terminal bright palette [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/145)
91 |
92 | ### Enhancements
93 |
94 | - Rework inputs
95 | - Fix quick input background color
96 | - Fix input background opacity and border color
97 | - Fix input placeholder color
98 |
99 | ## 8.3.2 - 2023-07-28
100 |
101 | ### Enhancements
102 |
103 | - Improve readibility or peekview
104 |
105 | ### Fixes
106 |
107 | - Fix sticky scroll background on peekview (Thanks [aiday-mar](https://github.com/BeardedBear/bearded-theme/issues/127))
108 |
109 | ## 8.3.1 - 2023-07-26
110 |
111 | - Fix drop color on activity bar buttons (Thanks [Loskir](https://github.com/BeardedBear/bearded-theme/issues/125))
112 | - Fix drop border color on panels (Thanks [Loskir](https://github.com/BeardedBear/bearded-theme/issues/126))
113 |
114 | ### Fixes
115 |
116 | ## 8.3.0 - 2023-07-19
117 |
118 | ### New features
119 |
120 | - Add new feat variation: MelleJulie
121 |
122 | ### Enhancements
123 |
124 | - Add better syntax support for cmake files (Thanks [Nerixyz](https://github.com/BeardedBear/bearded-theme/issues/119))
125 |
126 | ### Fixes
127 |
128 | - Fix const foreground color in go (Thanks [Sup0088](https://github.com/BeardedBear/bearded-theme/issues/117))
129 | - Fix foreground color custom React components (Thanks [safarli](https://github.com/BeardedBear/bearded-theme/issues/120))
130 | - Fix foreground color for terminal cursor in insert mode (Thanks [Loskir](https://github.com/BeardedBear/bearded-theme/issues/122))
131 | - Fix unconsistent tab colors (Thanks [Loskir](https://github.com/BeardedBear/bearded-theme/issues/123))
132 | - Fix unused/unnecessary code opacity/border (Thanks [knajjars](https://github.com/BeardedBear/bearded-theme/issues/124))
133 |
134 | ## 8.2.1 - 2023-07-01
135 |
136 | ### Fixes
137 |
138 | - Fix $matches syntax highlight for powershell (Thanks [dt-flo](https://github.com/BeardedBear/bearded-theme/issues/111))
139 |
140 | ## 8.2.0 - 2023-07-01
141 |
142 | ### Enhancements
143 |
144 | - Change background color for Gold D Raynh variation
145 | - Add support for linkedEditingBackground
146 | - Improve foreground color for disabled extensions
147 |
148 | ### Fixes
149 |
150 | - Fix syntax highlight for powershell (Thanks [dt-flo](https://github.com/BeardedBear/bearded-theme/issues/111))
151 | - Fix end quote color for HTML attributes (Thanks [gmurad97](https://github.com/BeardedBear/bearded-theme/issues/114))
152 | - Fix few colors in liquid templates (Thanks [brady-sewall](https://github.com/BeardedBear/bearded-theme/issues/115))
153 |
154 | ## 8.1.1 - 2023-04-19
155 |
156 | ### Fixes
157 |
158 | - Fix keybinding labels (Thanks [plttn](https://github.com/BeardedBear/bearded-theme/issues/109))
159 |
160 | ## 8.1.0 - 2023-04-19
161 |
162 | ### New features
163 |
164 | - Add 5 new variations : Gems Soft
165 | - Add 5 new variations : Milkshake
166 | - Add 2 new Featuring variations : Gold D Raynh and Mintshake D Raynh
167 |
168 | ### Fixes
169 |
170 | - Fix border bottom on active tab hover
171 | - Fix background colors for diffs
172 | - Fix unwanted border on buttons
173 |
174 | ### Enhancements
175 |
176 | - Better support for Go
177 | - Better support for C#
178 |
179 | ## 8.0.0 - 2023-03-20
180 |
181 | ### Enhancements
182 |
183 | - Complete refactorisation for building UI colors (some variations may have some small differences from previous versions, but they are now all based on the same foundation, and creating new variations will now be much easier to do)
184 | - All focus and hover background color for menus and quickmenus are now consistents
185 | - All foreground color for menus and quickmenus are now consistents
186 | - Better order for brackets color pairing
187 |
188 | ### Fixes
189 |
190 | - Fix ruler color for light variations
191 |
192 | ## 7.6.3 - 2023-03-14
193 |
194 | ### Fixes
195 |
196 | - Fix contrast ratio for Black & Gems variants
197 |
198 | ## 7.6.2 - 2023-03-11
199 |
200 | ### Fixes
201 |
202 | - Fix welcome tiles colors
203 | - Fix focused quickmenu item color
204 | - Fix status bar error background
205 | - Fix activity bar active border color in HC variants
206 | - Fix disabled items in menus color
207 |
208 | ### Enhancements
209 |
210 | - Add more brackets pairs colors
211 | - Add status bar warning background
212 |
213 | ## 7.6.1 - 2023-03-09
214 |
215 | ### Fixes
216 |
217 | - Fix PHP inconsistencies (Thanks [protoinfo](https://github.com/BeardedBear/bearded-theme/issues/102))
218 | - Fix extension's button color for HC variants
219 | - Fix input border in problems tab
220 |
221 | ### Enhancements
222 |
223 | - Better button's readability
224 | - Better selection foreground color for HC variants
225 | - Better readability for menu items hover in HC variants
226 |
227 | ## 7.6.0 - 2023-02-23
228 |
229 | ### Fixes
230 |
231 | - Fix editor rulers color (Thanks [moxwel](https://github.com/BeardedBear/bearded-theme/issues/94))
232 | - Fix status bar border color (Thanks [danulqua](https://github.com/BeardedBear/bearded-theme/issues/97))
233 |
234 | ### New features
235 |
236 | - Add GraphQL support (Thanks [DenisLutsky](https://github.com/BeardedBear/bearded-theme/issues/91))
237 | - Add GDScript support (partially) (Thanks [mathewcst](https://github.com/BeardedBear/bearded-theme/issues/101))
238 |
239 | ## 7.5.0 - 2022-10-11
240 |
241 | ### Fixes
242 |
243 | - Fix CSS/SCSS keyframes name color
244 |
245 | ### New features
246 |
247 | - Add patch and diff support (Thanks [tyler36](https://github.com/BeardedBear/bearded-theme/issues/90))
248 |
249 | ## 7.4.0 - 2022-09-18
250 |
251 | ### Fixes
252 |
253 | - Fix codelens opacity (Thanks [jake-carpenter](https://github.com/BeardedBear/bearded-theme/issues/86))
254 |
255 | ### Enhancements
256 |
257 | - Remove border bottom on active tab
258 | - Add third background color variation for terminal
259 |
260 | ## 7.3.0 - 2022-08-25
261 |
262 | ### Enhancements
263 |
264 | - Improve Edge syntax support
265 |
266 | ## 7.2.2 - 2022-08-23
267 |
268 | ### Fixes
269 |
270 | - Fix main color for solarized variations, to be less confused with the color of the tabs containing changes
271 |
272 | ## 7.2.1 - 2022-08-23
273 |
274 | ### Fixes
275 |
276 | - Fix contrast for HC Minuit
277 |
278 | ## 7.2.0 - 2022-08-23
279 |
280 | ### Fixes
281 |
282 | - Add support for closing labels color in Dart (Thanks [PatrickWulfe](https://github.com/BeardedBear/bearded-theme/issues/85))
283 |
284 | ### New features
285 |
286 | - Add support for inlay hint
287 | - Add 2 new variation of the HC serie : `Chocolate Espresso` and `Minuit`
288 |
289 | ## 7.1.0 - 2022-08-09
290 |
291 | ### Fixes
292 |
293 | - Less intrusive ghost text suggestion for HC series
294 |
295 | ### New features
296 |
297 | - Add support for Error Lens colors
298 | - Add keybinding inputs settings for HC series
299 |
300 | ## 7.0.0 - 2022-08-08
301 |
302 | ### New features
303 |
304 | - Add new high contrast variation serie (better readibility):
305 | - HC Ebony
306 | - HC Flurry (light version)
307 | - HC Brewing Storm
308 | - HC Midnight Void
309 | - HC Wonderland Wood
310 |
311 | ### Fixes
312 |
313 | - Some of bug are fixed un Vue template tags
314 |
315 | ### Enhancements
316 |
317 | - Input and select are now visually colored with same base
318 | - Hovers of icons are a better integration
319 |
320 | ## 6.6.0 - 2022-07-06
321 |
322 | ### New features
323 |
324 | - Add support for command center panel
325 |
326 | ### Enhancements
327 |
328 | - Improve contrast for Coffee Cream
329 |
330 | ## 6.5.0 - 2022-06-10
331 |
332 | ### New features
333 |
334 | - Add sponsoring option
335 |
336 | ## 6.4.0 - 2022-06-08
337 |
338 | ### Enhancements
339 |
340 | - Improve markdown support (Thanks [mattcodez](https://github.com/BeardedBear/bearded-theme/issues/79))
341 | - Improve elixir support (Thanks [rmonteil](https://github.com/BeardedBear/bearded-theme/issues/77))
342 |
343 | ## 6.3.0 - 2022-05-07
344 |
345 | ### New features
346 |
347 | - Add 5 new variations : Arc Reversed, Monokai Reversed, Solarized Reversed, Oceanic Reversed, Coffee Reversed
348 |
349 | ## 6.2.1 - 2022-04-03
350 |
351 | ### Fixes
352 |
353 | - Fix defaultMain color for Will variation
354 | - Fix hover color for secondary buttons
355 | - Fix icon colors for notifications
356 | - Fix status bar foreground color
357 |
358 | ## 6.2.0 - 2022-04-02
359 |
360 | ### Enhancements
361 |
362 | - Improve readibility of tabs
363 | - Fix icon colors, to match with each variations
364 | - Reducing shadows
365 | - Removing useless infos in readme for coloring brackets (now directly integrated in theme)
366 | - Improve buttons readibility
367 |
368 | ## 6.1.0 - 2022-03-23
369 |
370 | ### New features
371 |
372 | - New variation : [Will](https://github.com/WilliamTraoreee)
373 |
374 | ## 6.0.1 - 2022-03-22
375 |
376 | ### Fixes
377 |
378 | - Improve foreground colors on Bearded Theme Light
379 |
380 | ## 6.0.0 - 2022-03-21
381 |
382 | ### Fixes
383 |
384 | - Remove useless italics (except comments)
385 | - Fix menus in light themes
386 |
387 | ### New features
388 |
389 | - Add 2 new variations : Coffee, and Coffee Cream
390 |
391 | ## 5.0.1 - 2021-12-23
392 |
393 | ### Fixes
394 |
395 | - Fixes for svelte
396 |
397 | ## 5.0.0 - 2021-12-10
398 |
399 | ### New features
400 |
401 | - Add native support for Bracket Highlight colors
402 | - Enable Semantic Highlighting (more flexibility for selection scopes)
403 |
404 | ### Fixes
405 |
406 | - Fix weird tag colors for Vue templates
407 | - Operators easier to read
408 | - A lot of small details
409 |
410 | ## 4.0.0 - 2021-07-01
411 |
412 | ### Enhancements
413 |
414 | - 🎉 Rework of the building system, from JS to TS
415 | - 🎉 Optimization of final vsix package size
416 |
417 | ### New features
418 |
419 | - New variation : Monokai Stone
420 | - New variation : Vivid Black
421 |
422 | ## 3.7.3 - 2021-06-26
423 |
424 | ### Fixes
425 |
426 | - Fix tripe quote comment in Python [[Issue #47]](https://github.com/BeardedBear/bearded-theme/issues/47)
427 | - Fix ruler foreground color
428 |
429 | ## 3.7.2 - 2021-06-21
430 |
431 | ### Fixes
432 |
433 | - Fix unwanted lines in diff view [[Issue #42]](https://github.com/BeardedBear/bearded-theme/issues/42)
434 | - Fix readability of warnings and errors colors
435 |
436 | ## 3.7.1 - 2021-06-18
437 |
438 | ### Fixes
439 |
440 | - Fix comment color
441 | - Fix colors
442 |
443 | ## 3.7.0 - 2021-06-17
444 |
445 | ### Enhancements
446 |
447 | - Improve tree view lisibility with foreground color change
448 |
449 | ### New features
450 |
451 | - Add support for new secondary buttons
452 | - Add new variation : Altica
453 |
454 | ## 3.6.0 - 2021-03-19
455 |
456 | ### Fixes
457 |
458 | - Fix unreadable colors in integrated terminal
459 | - Fix comments color
460 | - Fix tag color in CSS/SCSS
461 |
462 | ### New features
463 |
464 | - Add support for sash.hoverBorder
465 | - Add support for charts colors
466 | - Add support for statusBarItem.errorForeground
467 | - Add new variation : Arc Eggplant
468 | - Add new variation : Arc Blueberry
469 | - Add new variation : Monokai Light
470 |
471 | ## 3.5.2 - 2020-11-23
472 |
473 | ### Fixes
474 |
475 | - Fix punctuation readability for monokai variations
476 |
477 | ## 3.5.1 - 2020-11-18
478 |
479 | ### Fixes
480 |
481 | - Fix for Proky 💕
482 |
483 | ## 3.5.0 - 2020-11-18
484 |
485 | ### New features
486 |
487 | - New variations : Monokai Metallian and Monokai Terra
488 |
489 | ## 3.4.1 - 2020-10-13
490 |
491 | ### Fixes
492 |
493 | - Fix visibility of scrollbar
494 | - Fix Union types olor for Elm
495 | - Fix luminosity of accessors
496 |
497 | ## 3.4.0 - 2020-10-05
498 |
499 | ### New features
500 |
501 | - New surprising variation : Watermelon
502 |
503 | ### Enhancements
504 |
505 | - Improve readibility for highlights and for inputs
506 |
507 | ## 3.3.1 - 2020-10-02
508 |
509 | ### Fixes
510 |
511 | - Fix missing colors for surprising variations.
512 |
513 | ## 3.3.0 - 2020-09-28
514 |
515 | ### New features
516 |
517 | - New variations: Surprising Eggplant and Surprising Blueberry! Colors that don't seem to go together, but they do. (Other surprising variations will come)
518 |
519 | ### Fixes
520 |
521 | - Oups, i push a broken purple variation! Sorry!
522 |
523 | ## 3.2.8 - 2020-09-21
524 |
525 | ### Fixes
526 |
527 | - Fix markup color for VueJS3
528 |
529 | ## 3.2.7 - 2020-08-27
530 |
531 | ### Enhancements
532 |
533 | - Update README for adding a link to my icons pack : [Bearded Icons](https://marketplace.visualstudio.com/items?itemName=BeardedBear.beardedicons)
534 |
535 | ## 3.2.5 - 2020-08-02
536 |
537 | ### Fixes
538 |
539 | - Revert highlight border opacity
540 |
541 | ## 3.2.4 - 2020-08-02
542 |
543 | ### Enhancements
544 |
545 | - Improve lisibility for light variations
546 |
547 | ## 3.2.3 - 2020-07-22
548 |
549 | ### Fixes
550 |
551 | - Fix escape character in raw string [[Issue #21]](https://github.com/BeardedBear/bearded-theme/issues/21)
552 | - Fix CSS cursor property color
553 | - Fix TS decorator color
554 |
555 | ## 3.2.2 - 2020-07-18
556 |
557 | ### Enhancements
558 |
559 | - Ajust foreground color for comment gutter bar
560 | - Ajust input placeholder color
561 | - Unifying select border with input colors
562 | - Add variation colors for settings
563 |
564 | ## 3.2.1 - 2020-07-07
565 |
566 | ### Fixes
567 |
568 | - Oops i forgot buttons foreground !
569 |
570 | ## 3.2.0 - 2020-07-07
571 |
572 | ### New features
573 |
574 | - New variation : Oceanic
575 |
576 | ### Enhancements
577 |
578 | - New default theme : Anthracite
579 |
580 | ## 3.1.0 - 2020-07-04
581 |
582 | ### Enhancements
583 |
584 | - Change of some colours for a better visual consistency
585 |
586 | ### Fixes
587 |
588 | - Fix of some icons that were not sufficiently readable
589 |
590 | ## 3.0.5 - 2020-06-11
591 |
592 | ### Enhancements
593 |
594 | - Add visual compatibility with the new movable panels update.
595 |
596 | ## 3.0.4 - 2020-06-10
597 |
598 | ### Fixes
599 |
600 | - Fix TS syntax in decorators
601 |
602 | ## 3.0.3 - 2020-06-10
603 |
604 | ### Fixes
605 |
606 | - Fix JSX current text in tags [[Issue #19]](https://github.com/BeardedBear/bearded-theme/issues/19)
607 |
608 | ## 3.0.2 - 2020-06-02
609 |
610 | ### Fixes
611 |
612 | - Fix CSS colors [[Issue #18]](https://github.com/BeardedBear/bearded-theme/issues/18)
613 |
614 | ## 3.0.1 - 2020-05-27
615 |
616 | ### Fixes
617 |
618 | - Fix whitespace color [[Issue #17]](https://github.com/BeardedBear/bearded-theme/issues/17)
619 |
620 | ### Enhancements
621 |
622 | - Add color settings for Bracket Pair Colorizer 2 in readme
623 |
624 | ## 3.0.0 - 2020-05-24
625 |
626 | ### New features
627 |
628 | - 4 new black variations! (yes i'm totally CRAZY!)
629 | - New theme icon
630 | - New readme with illustration (yes, it's excessive)
631 | - Borders become darker
632 | - Top and bottom become darker
633 | - Find words more readable
634 | - Search and destroy grey elements to better fit with variations (scrollbars, line numbers, titlebar's foreground...)
635 |
636 | ## 2.2.1 - 2020-05-22
637 |
638 | ### Fixes
639 |
640 | - Fix interface, enum, types color for TypeScript
641 | - Fix wrong color on TS/React variable definition
642 | - Fix menu color in Black and Gold variation
643 |
644 | ## 2.2.0 - 2020-05-21
645 |
646 | ### New features
647 |
648 | - Add new variation : Black & Gold (Because the developers also have the right to like to be elegant, this variation redefines most of the colors compared to the color of gemstones. You will be able to shine when you take out your laptop during the luxurious social events.)
649 |
650 | ### Fixes
651 |
652 | - Fix html tag color in react [[Issue #14]](https://github.com/BeardedBear/bearded-theme/issues/14)
653 | - Remove the lower border of the tabs, following the previous update of the VSCode
654 | - Fix add/remove background colors for file diffs
655 |
656 | ### Enhancements
657 |
658 | - Unifying color for grey items
659 | - Better support for LUA [[Issue #15]](https://github.com/BeardedBear/bearded-theme/issues/15)
660 |
661 | ## 2.1.2 - 2020-05-07
662 |
663 | ### Fixes
664 |
665 | - Fix wrong color for js method
666 |
667 | ## 2.1.0 - 2020-05-02
668 |
669 | ### Fixes
670 |
671 | - Fix colors for c# [[Issue #12]](https://github.com/BeardedBear/bearded-theme/issues/12) [[Issue #13]](https://github.com/BeardedBear/bearded-theme/issues/13)
672 | - Fix code block color for markdown
673 | - Fix jdoc keyword color
674 | - Fix decorator punctuation color
675 | - Fix CSS vendor property color
676 |
677 | ### New features
678 |
679 | - New variation: Arc Eolstorm (from Arc, but with colors breaking eyes)
680 |
681 | ## 2.0.1 - 2020-04-20
682 |
683 | ### Fixes
684 |
685 | - Fix suffix css scope
686 |
687 | ## 2.0.0 - 2020-04-20
688 |
689 | ### New features
690 |
691 | - Better Blade support
692 |
693 | ### Enhancements
694 |
695 | - Complete theme building refactoring
696 | - Following the complete refactoring, many colours have been changed/switched for more consistency
697 |
698 | ## 1.7.2 - 2020-04-12
699 |
700 | ### Enhancements
701 |
702 | - Better PHP and Twig support
703 |
704 | ## 1.7.0 - 2020-04-03
705 |
706 | ### New features
707 |
708 | - 2 new themes : Earth and Void
709 | - Make Vivid variation VIVID AS HELL
710 |
711 | ### Enhancements
712 |
713 | - Boost all color saturation (a little bit)
714 |
715 | ## 1.6.7 - 2020-03-17
716 |
717 | ### Enhancements
718 |
719 | - Improve elm support
720 |
721 | ## 1.6.6 - 2020-02-29
722 |
723 | ### Enhancements
724 |
725 | - Improve vue and ts support
726 |
727 | ## 1.6.2 - 2019-09-15
728 |
729 | ### Enhancements
730 |
731 | - Improve python support
732 |
733 | ### Fixes
734 |
735 | - Fix python data types color [[Issue]](https://github.com/BeardedBear/bearded-theme/issues/4)
736 |
737 | ## 1.6.1 - 2019-09-12
738 |
739 | ### Fixes
740 |
741 | - Fix merge background color [[Issue]](https://github.com/BeardedBear/bearded-theme/issues/3)
742 |
743 | ## 1.6.0 - 2019-09-04
744 |
745 | ### New features
746 |
747 | - Add pug support
748 | - Add liquid support
749 |
750 | ### Enhancements
751 |
752 | - Unifying class and id color with markup languages
753 |
754 | ## 1.5.0 - 2019-08-12
755 |
756 | ### New features
757 |
758 | - Add vivid variation !
759 |
760 | ## 1.4.3 - 2019-08-08
761 |
762 | ### Enhancements
763 |
764 | - Unifying foreground color with terminal
765 | - Improve php support
766 | - Improve java support
767 | - Improve python support
768 | - Improve cs support
769 | - Change color for function keyword
770 |
771 | ### Fixes
772 |
773 | - Fix wrong id string color for VueJS
774 |
775 | ## 1.4.2 - 2019-08-03
776 |
777 | ### Enhancements
778 |
779 | - Improve contrast for primary colors
780 | - Improve ts and js support
781 |
782 | ### Fixes
783 |
784 | - Fix foreground color on terminal
785 | - Fix menu separator color
786 |
787 | ## 1.4.1 - 2019-07-31
788 |
789 | ### Fixes
790 |
791 | - Fix white text for terminal
792 | - Fix errors style
793 |
794 | ### Enhancements
795 |
796 | - Improve ts support
797 | - Remove high contrast option
798 |
799 | ## 1.4.0 - 2019-07-28
800 |
801 | ### New features
802 |
803 | - Remove Black variation (Redundant with Anthracite)
804 | - Add new variation: Arc
805 |
806 | ### Fixes
807 |
808 | - Fix selection background for input
809 | - Fix wrong at character for css media
810 |
811 | ### Enhancements
812 |
813 | - Improve xml support
814 | - Improve font color of sidebar titles
815 | - Slight desaturation of the syntax color
816 | - Unifying theme colors
817 | - Update screenshots
818 |
819 | ## 1.3.2 - 2019-07-27
820 |
821 | ### Enhancements
822 |
823 | - Improve ts support
824 | - Improve lua support
825 | - Improve elm support
826 | - Unifying syntax colors
827 |
828 | ## 1.3.1 - 2019-07-20
829 |
830 | ### Fixes
831 |
832 | - Fix foreground color on list element selection
833 | - Fix color of externals in Elm
834 | - Fix weird white HTML character in JS
835 | - Fix active line number color
836 |
837 | ### Enhancements
838 |
839 | - Improve Tsx support
840 | - Solarized themes : Better match with official solarized colors
841 | - Add color for this/self
842 | - Update screeshots with solarized themes
843 |
844 | ## 1.3.0 - 2019-07-19
845 |
846 | ### New features
847 |
848 | - Publish this changelog (never too late) 🎉
849 | - Add solarized dark variation
850 | - Add solarized light variation
851 | - Add yml support
852 | - Add xml support
853 | - Add jsx support
854 |
855 | ### Enhancements
856 |
857 | - Improve CS support
858 | - Improve Java support
859 | - Improve Vue support
860 | - Improve TypeScript
861 | - Improve Go support
862 | - Improve Python support
863 |
864 | ### Fixes
865 |
866 | - Fix opacity of scrollbar
867 |
868 | ## 1.2.7 - 2019-07-17
869 |
870 | ### Fixes
871 |
872 | - Fix light variation lisibility [[Issue]](https://github.com/BeardedBear/bearded-theme/issues/1)
873 |
874 | ## 1.2.6 - 2019-07-16
875 |
876 | ### Enhancements
877 |
878 | - Remove purple color on light theme
879 |
880 | ## 1.2.5 - 2019-07-14
881 |
882 | ### Enhancements
883 |
884 | - Improve lisibility of match color
885 |
886 | ## 1.2.4 - 2019-07-14
887 |
888 | ### Enhancements
889 |
890 | - Optimize screenshots size
891 | - Update readme
892 |
893 | ## 1.2.0 - 2019-07-14
894 |
895 | ### New features
896 |
897 | - Add an anthracite variation
898 | - Add an black variation
899 |
900 | ## 1.1.0 - 2019-07-13
901 |
902 | ### New features
903 |
904 | - Add a blue variation
905 |
906 | ## 1.0.0 - 2019-07-05
907 |
908 | ### Enhancements
909 |
910 | - Update readme
911 | - Make a build system with nodeJS
912 | - Variabilisation of colors
913 | - Change background colors
914 | - Fix light grey for terminal
915 |
916 | ### Fixes
917 |
918 | - Fix lisibility of background and borders
919 |
920 | ## 0.1.0 - 2019-06-29
921 |
922 | ### New features
923 |
924 | - Add light variation
925 |
926 | ## 0.0.15 - 2019-06-25
927 |
928 | ### Enhancements
929 |
930 | - Add new colors for syntax
931 | - Update screenshots url
932 |
933 | ## 0.0.13 - 2019-06-24
934 |
935 | ### Enhancements
936 |
937 | - Update screenshots
938 | - Update readme
939 | - Update readme with beautiful icons
940 | - Update repository url
941 |
942 | ## 0.0.12 - 2019-06-24
943 |
944 | ### Fixes
945 |
946 | - Fix selection color
947 |
948 | ### Enhancements
949 |
950 | - Add darker primary color variation
951 |
952 | ## 0.0.10 - 2019-06-24
953 |
954 | ### Fixes
955 |
956 | - Fix terminal colors
957 | - Unifying colors
958 |
959 | ### Enhancements
960 |
961 | - Update readme.
962 | - Update theme icon
963 |
964 | ## 0.0.7 - 2019-06-20
965 |
966 | ### Enhancements
967 |
968 | - Add screenshot for VueJS
969 |
970 | ### Fixes
971 |
972 | - Fix wrong links on readme
973 |
974 | ## 0.0.5 - 2019-06-20
975 |
976 | ### Enhancements
977 |
978 | - Update screenshots
979 |
980 | ## 0.0.4 - 2019-06-20
981 |
982 | ### Enhancements
983 |
984 | - Update readme
985 | - Update tags
986 | - Remove useless files
987 |
988 | ## 0.0.3 - 2019-06-20
989 |
990 | ### Enhancements
991 |
992 | - Add screenshot
993 | - Add theme description
994 | - Add theme icon
995 |
996 | - Change display name
997 |
998 | ## 0.0.2 - 2019-06-20
999 |
1000 | - Initial release.
1001 |
--------------------------------------------------------------------------------
/README-DEV.md:
--------------------------------------------------------------------------------
1 | # Bearded Theme - Developer Guide
2 |
3 | This document provides the necessary instructions for setting up, developing, and publishing the Bearded Theme VS Code extension.
4 |
5 | ## Initial Setup
6 |
7 | ```bash
8 | # Install dependencies
9 | npm install
10 | ```
11 |
12 | ## Development
13 |
14 | ### Development Mode with Auto-reload
15 |
16 | ```bash
17 | npm run dev
18 | ```
19 |
20 | This mode uses nodemon to watch for changes in source files and automatically recompile the theme.
21 |
22 | ### Building the theme
23 |
24 | ```bash
25 | npm run build
26 | ```
27 |
28 | This command generates the theme files in the `themes/` folder.
29 |
30 | ### Building the extension
31 |
32 | ```bash
33 | npm run build:ext
34 | ```
35 |
36 | This command creates a VSIX file that can be manually installed in VS Code. The file will be generated in `./releases/{version}.vsix`.
37 |
38 | ## Publication Process
39 |
40 | ### Preparing a New Version
41 |
42 | 1. Update the version in `package.json`
43 | 2. Create a release notes file in `./releases/{version}.md` with the details of the changes:
44 |
45 | ```bash
46 | npm run create:release-notes
47 | ```
48 |
49 | This file will be used for GitHub publication and should be modified with relevant information.
50 |
51 | ### Publication Tokens
52 |
53 | To publish the extension, you will need:
54 |
55 | 1. A VS Code Marketplace token (VSCE_PAT)
56 | 2. An Open VSX token (OVSX_TOKEN)
57 |
58 | You have two options for providing these tokens:
59 |
60 | #### Option 1: Environment Variables
61 |
62 | Set them as environment variables before running the publish script:
63 |
64 | ```bash
65 | export VSCE_PAT=your_vscode_marketplace_token
66 | export OVSX_TOKEN=your_open_vsx_token
67 | ./publish.sh
68 | ```
69 |
70 | #### Option 2: Manual Entry
71 |
72 | The publish script now supports entering tokens manually during the publication process. If the tokens are not found in environment variables, you will be prompted to enter them when needed.
73 |
74 | ### Manual Publication
75 |
76 | Two scripts are available to guide you through the publication process:
77 |
78 | ```bash
79 | # On Linux/Mac
80 | ./publish.sh
81 |
82 | # On Windows
83 | publish.bat
84 | ```
85 |
86 | This script:
87 |
88 | - Checks the current version
89 | - Builds the VSIX extension if necessary
90 | - Checks/creates the release notes
91 | - Publishes to VS Code Marketplace
92 | - Publishes to Open VSX
93 | - Creates a version tag on GitHub
94 |
95 | ### Individual Platform Publication
96 |
97 | If you prefer to publish to each platform separately:
98 |
99 | ```bash
100 | # VS Code Marketplace
101 | npm run publish:vscode
102 |
103 | # Open VSX
104 | npm run publish:ovsx
105 |
106 | # GitHub Release
107 | npm run release
108 | ```
109 |
110 | ### Complete Publication
111 |
112 | To build the extension and publish it to all platforms in a single command:
113 |
114 | ```bash
115 | npm run publish:all
116 | ```
117 |
118 | ## Project Structure
119 |
120 | - `src/` - TypeScript source code for theme generation
121 | - `variations/` - Theme variants
122 | - `scopes/` - Scope definitions for syntax highlighting
123 | - `themes/` - Generated theme JSON files
124 | - `releases/` - Release notes and VSIX packages
125 | - `assets/` - Images and graphical resources
126 |
127 | ## Troubleshooting
128 |
129 | If you encounter issues during publication:
130 |
131 | 1. Check that your access tokens are valid
132 | 2. Make sure the version in `package.json` is unique and doesn't already exist
133 | 3. Verify that release notes exist for the current version
134 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Bearded Theme
2 |
3 | Font used in screenshots : [JetBrains Mono](https://www.jetbrains.com/lp/mono/)
4 |
5 | Icon pack used in screenshots : [Bearded Icons](https://marketplace.visualstudio.com/items?itemName=BeardedBear.beardedicons)
6 |
7 |
8 |
9 |
10 | (Click for larger view)
11 |
12 | Something's missing ? [create Issues](https://github.com/BeardedBear/BeardedTheme/issues) so that I can make the theme as compatible as possible ! ❤️ ;)
13 |
14 | ## 🚀 Installation
15 |
16 | - Open the Extensions sidebar in VS Code
17 | - Search for `Bearded`
18 | - Click Install
19 | - Open the Command Palette with Ctrl+Shift+P or ⇧⌘P
20 | - Select Preferences: Color Theme and choose `Bearded Theme`.
21 |
22 | ## 📄 License
23 |
24 | This theme is released under the GPL-3.0 license.
25 |
26 | Designed by [BeardedBear](https://github.com/BeardedBear).
27 |
28 | ~~Follow me on [Twitter](https://twitter.com/Bearded__Bear) ! (You'll see, I never tweet)~~
29 |
30 | 🔔 I’m not on Twitter/X anymore — check out my [Bento](https://bento.me/bearded) to see where you can find me: https://bento.me/bearded
31 |
--------------------------------------------------------------------------------
/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeardedBear/bearded-theme/65734e8f2e36fb825e3c6ecaf900777bc1322f73/assets/icon.png
--------------------------------------------------------------------------------
/assets/themes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BeardedBear/bearded-theme/65734e8f2e36fb825e3c6ecaf900777bc1322f73/assets/themes.png
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import typescript from '@typescript-eslint/eslint-plugin';
2 | import typescriptParser from '@typescript-eslint/parser';
3 | import perfectionist from 'eslint-plugin-perfectionist';
4 |
5 | export default [
6 | {
7 | files: ['**/*.{js,ts}'],
8 | ignores: ['node_modules/**'],
9 | languageOptions: {
10 | parser: typescriptParser,
11 | parserOptions: {
12 | ecmaVersion: 2020,
13 | sourceType: 'module',
14 | },
15 | },
16 | plugins: {
17 | '@typescript-eslint': typescript,
18 | perfectionist,
19 | },
20 | rules: {
21 | ...typescript.configs.recommended.rules,
22 | ...perfectionist.configs['recommended-natural'].rules,
23 | '@typescript-eslint/explicit-function-return-type': 'warn',
24 | },
25 | },
26 | ];
27 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "beardedtheme",
3 | "displayName": "Bearded Theme",
4 | "description": "The theme with a long beard.",
5 | "publisher": "BeardedBear",
6 | "version": "10.1.0",
7 | "engines": {
8 | "vscode": "^1.69.0"
9 | },
10 | "type": "module",
11 | "scripts": {
12 | "build": "vite-node src/index.ts",
13 | "build:ext": "vsce package --out ./releases/%npm_package_version%.vsix",
14 | "build:env": "tsc load-env.ts --esModuleInterop",
15 | "dev": "nodemon --exec \"vite-node src/index.ts\"",
16 | "fix": "prettier --write ./src/**/*.ts && eslint src/**/*.{vue,ts} --fix",
17 | "release": "gh release create v%npm_package_version% --notes-file ./releases/%npm_package_version%.md --generate-notes",
18 | "create:release-notes": "vite-node src/create-release-notes.ts",
19 | "publish:vscode": "bash -c \"read -p 'Enter your VS Code Marketplace token: ' TOKEN && vsce publish --packagePath ./releases/%npm_package_version%.vsix -p $TOKEN\"",
20 | "publish:ovsx": "bash -c \"read -p 'Enter your OVSX token: ' TOKEN && ovsx publish ./releases/%npm_package_version%.vsix -p $TOKEN\"",
21 | "publish:all": "npm run build:ext && npm run publish:vscode && npm run publish:ovsx"
22 | },
23 | "__metadata": {
24 | "id": "dffaf5a1-2219-434b-9d87-cb586fd59260",
25 | "publisherDisplayName": "BeardedBear",
26 | "publisherId": "a369cd52-d79a-6d36-99c8-5adc9bf1d25d"
27 | },
28 | "nodemonConfig": {
29 | "ext": "ts",
30 | "exec": "ts-node src/index.ts"
31 | },
32 | "repository": {
33 | "type": "git",
34 | "url": "https://github.com/BeardedBear/bearded-theme"
35 | },
36 | "bugs": {
37 | "url": "https://github.com/BeardedBear/bearded-theme/issues",
38 | "email": "germain.poirrier@gmail.com"
39 | },
40 | "homepage": "https://github.com/BeardedBear/bearded-theme",
41 | "keywords": [
42 | "bearded",
43 | "theme",
44 | "bear",
45 | "dark",
46 | "solarized",
47 | "arc",
48 | "light",
49 | "oceanic",
50 | "monokai",
51 | "milkshake",
52 | "colorblind",
53 | "oled"
54 | ],
55 | "sponsor": {
56 | "url": "https://github.com/sponsors/BeardedBear"
57 | },
58 | "icon": "assets/icon.png",
59 | "categories": [
60 | "Themes"
61 | ],
62 | "contributes": {
63 | "themes": [
64 | {
65 | "label": "Bearded Theme Monokai Metallian",
66 | "uiTheme": "vs-dark",
67 | "path": "./themes/bearded-theme-monokai-metallian.json"
68 | },
69 | {
70 | "label": "Bearded Theme Monokai Terra",
71 | "uiTheme": "vs-dark",
72 | "path": "./themes/bearded-theme-monokai-terra.json"
73 | },
74 | {
75 | "label": "Bearded Theme Monokai Stone",
76 | "uiTheme": "vs-dark",
77 | "path": "./themes/bearded-theme-monokai-stone.json"
78 | },
79 | {
80 | "label": "Bearded Theme Monokai Black",
81 | "uiTheme": "vs-dark",
82 | "path": "./themes/bearded-theme-monokai-black.json"
83 | },
84 | {
85 | "label": "Bearded Theme Monokai Reversed",
86 | "uiTheme": "vs-dark",
87 | "path": "./themes/bearded-theme-monokai-reversed.json"
88 | },
89 | {
90 | "label": "Bearded Theme Solarized",
91 | "uiTheme": "vs-dark",
92 | "path": "./themes/bearded-theme-solarized-dark.json"
93 | },
94 | {
95 | "label": "Bearded Theme Solarized Reversed",
96 | "uiTheme": "vs-dark",
97 | "path": "./themes/bearded-theme-solarized-reversed.json"
98 | },
99 | {
100 | "label": "Bearded Theme Solarized Light",
101 | "uiTheme": "vs",
102 | "path": "./themes/bearded-theme-solarized-light.json"
103 | },
104 | {
105 | "label": "Bearded Theme Oceanic",
106 | "uiTheme": "vs-dark",
107 | "path": "./themes/bearded-theme-oceanic.json"
108 | },
109 | {
110 | "label": "Bearded Theme Oceanic Reversed",
111 | "uiTheme": "vs-dark",
112 | "path": "./themes/bearded-theme-oceanic-reversed.json"
113 | },
114 | {
115 | "label": "Bearded Theme Arc",
116 | "uiTheme": "vs-dark",
117 | "path": "./themes/bearded-theme-arc.json"
118 | },
119 | {
120 | "label": "Bearded Theme Arc Eggplant",
121 | "uiTheme": "vs-dark",
122 | "path": "./themes/bearded-theme-arc-eggplant.json"
123 | },
124 | {
125 | "label": "Bearded Theme Arc EolStorm",
126 | "uiTheme": "vs-dark",
127 | "path": "./themes/bearded-theme-arc-eolstorm.json"
128 | },
129 | {
130 | "label": "Bearded Theme Arc Blueberry",
131 | "uiTheme": "vs-dark",
132 | "path": "./themes/bearded-theme-arc-blueberry.json"
133 | },
134 | {
135 | "label": "Bearded Theme Arc Reversed",
136 | "uiTheme": "vs-dark",
137 | "path": "./themes/bearded-theme-arc-reversed.json"
138 | },
139 | {
140 | "label": "Bearded Theme Black & Amethyst",
141 | "uiTheme": "vs-dark",
142 | "path": "./themes/bearded-theme-black-&-amethyst.json"
143 | },
144 | {
145 | "label": "Bearded Theme Black & Amethyst Soft",
146 | "uiTheme": "vs-dark",
147 | "path": "./themes/bearded-theme-black-&-amethyst-soft.json"
148 | },
149 | {
150 | "label": "Bearded Theme Black & Diamond",
151 | "uiTheme": "vs-dark",
152 | "path": "./themes/bearded-theme-black-&-diamond.json"
153 | },
154 | {
155 | "label": "Bearded Theme Black & Diamond Soft",
156 | "uiTheme": "vs-dark",
157 | "path": "./themes/bearded-theme-black-&-diamond-soft.json"
158 | },
159 | {
160 | "label": "Bearded Theme Black & Emerald",
161 | "uiTheme": "vs-dark",
162 | "path": "./themes/bearded-theme-black-&-emerald.json"
163 | },
164 | {
165 | "label": "Bearded Theme Black & Emerald Soft",
166 | "uiTheme": "vs-dark",
167 | "path": "./themes/bearded-theme-black-&-emerald-soft.json"
168 | },
169 | {
170 | "label": "Bearded Theme Black & Gold",
171 | "uiTheme": "vs-dark",
172 | "path": "./themes/bearded-theme-black-&-gold.json"
173 | },
174 | {
175 | "label": "Bearded Theme Black & Gold Soft",
176 | "uiTheme": "vs-dark",
177 | "path": "./themes/bearded-theme-black-&-gold-soft.json"
178 | },
179 | {
180 | "label": "Bearded Theme Black & Ruby",
181 | "uiTheme": "vs-dark",
182 | "path": "./themes/bearded-theme-black-&-ruby.json"
183 | },
184 | {
185 | "label": "Bearded Theme Black & Ruby Soft",
186 | "uiTheme": "vs-dark",
187 | "path": "./themes/bearded-theme-black-&-ruby-soft.json"
188 | },
189 | {
190 | "label": "Bearded Theme Stained Purple",
191 | "uiTheme": "vs-dark",
192 | "path": "./themes/bearded-theme-stained-purple.json"
193 | },
194 | {
195 | "label": "Bearded Theme Stained Blue",
196 | "uiTheme": "vs-dark",
197 | "path": "./themes/bearded-theme-stained-blue.json"
198 | },
199 | {
200 | "label": "Bearded Theme Vivid Purple",
201 | "uiTheme": "vs-dark",
202 | "path": "./themes/bearded-theme-vivid-purple.json"
203 | },
204 | {
205 | "label": "Bearded Theme Vivid Black",
206 | "uiTheme": "vs-dark",
207 | "path": "./themes/bearded-theme-vivid-black.json"
208 | },
209 | {
210 | "label": "Bearded Theme Vivid Light",
211 | "uiTheme": "vs",
212 | "path": "./themes/bearded-theme-vivid-light.json"
213 | },
214 | {
215 | "label": "Bearded Theme feat. Will",
216 | "uiTheme": "vs-dark",
217 | "path": "./themes/bearded-theme-feat-will.json"
218 | },
219 | {
220 | "label": "Bearded Theme feat. Gold D Raynh",
221 | "uiTheme": "vs-dark",
222 | "path": "./themes/bearded-theme-feat-gold-d-raynh.json"
223 | },
224 | {
225 | "label": "Bearded Theme feat. Melle Julie",
226 | "uiTheme": "vs-dark",
227 | "path": "./themes/bearded-theme-feat-mellejulie.json"
228 | },
229 | {
230 | "label": "Bearded Theme feat. Melle Julie Light",
231 | "uiTheme": "vs",
232 | "path": "./themes/bearded-theme-feat-mellejulie-light.json"
233 | },
234 | {
235 | "label": "Bearded Theme feat. Mintshake D Raynh",
236 | "uiTheme": "vs",
237 | "path": "./themes/bearded-theme-feat-gold-d-raynh-light.json"
238 | },
239 | {
240 | "label": "Bearded Theme feat. WebDevCody",
241 | "uiTheme": "hc-black",
242 | "path": "./themes/bearded-theme-feat-webDevCody.json"
243 | },
244 | {
245 | "label": "Bearded Theme Earth",
246 | "uiTheme": "vs-dark",
247 | "path": "./themes/bearded-theme-earth.json"
248 | },
249 | {
250 | "label": "Bearded Theme Coffee",
251 | "uiTheme": "vs-dark",
252 | "path": "./themes/bearded-theme-coffee.json"
253 | },
254 | {
255 | "label": "Bearded Theme Coffee Reversed",
256 | "uiTheme": "vs-dark",
257 | "path": "./themes/bearded-theme-coffee-reversed.json"
258 | },
259 | {
260 | "label": "Bearded Theme Coffee Cream",
261 | "uiTheme": "vs",
262 | "path": "./themes/bearded-theme-coffee-cream.json"
263 | },
264 | {
265 | "label": "Bearded Theme Void",
266 | "uiTheme": "vs-dark",
267 | "path": "./themes/bearded-theme-void.json"
268 | },
269 | {
270 | "label": "Bearded Theme Altica",
271 | "uiTheme": "vs-dark",
272 | "path": "./themes/bearded-theme-altica.json"
273 | },
274 | {
275 | "label": "Bearded Theme Anthracite",
276 | "uiTheme": "vs-dark",
277 | "path": "./themes/bearded-theme-classics-anthracite.json"
278 | },
279 | {
280 | "label": "Bearded Theme Light",
281 | "uiTheme": "vs",
282 | "path": "./themes/bearded-theme-classics-light.json"
283 | },
284 | {
285 | "label": "Bearded Theme Surprising Eggplant",
286 | "uiTheme": "vs-dark",
287 | "path": "./themes/bearded-theme-surprising-eggplant.json"
288 | },
289 | {
290 | "label": "Bearded Theme Surprising Blueberry",
291 | "uiTheme": "vs-dark",
292 | "path": "./themes/bearded-theme-surprising-blueberry.json"
293 | },
294 | {
295 | "label": "Bearded Theme Surprising Watermelon",
296 | "uiTheme": "vs-dark",
297 | "path": "./themes/bearded-theme-surprising-watermelon.json"
298 | },
299 | {
300 | "label": "Bearded Theme HC Ebony",
301 | "uiTheme": "hc-black",
302 | "path": "./themes/bearded-theme-hc-ebony.json"
303 | },
304 | {
305 | "label": "Bearded Theme HC Midnight Void",
306 | "uiTheme": "hc-black",
307 | "path": "./themes/bearded-theme-hc-midnightvoid.json"
308 | },
309 | {
310 | "label": "Bearded Theme HC Wonderland Wood",
311 | "uiTheme": "hc-black",
312 | "path": "./themes/bearded-theme-hc-wonderland-wood.json"
313 | },
314 | {
315 | "label": "Bearded Theme HC Brewing Storm",
316 | "uiTheme": "hc-black",
317 | "path": "./themes/bearded-theme-hc-brewing-storm.json"
318 | },
319 | {
320 | "label": "Bearded Theme HC Minuit",
321 | "uiTheme": "hc-black",
322 | "path": "./themes/bearded-theme-hc-minuit.json"
323 | },
324 | {
325 | "label": "Bearded Theme HC Chocolate Espresso",
326 | "uiTheme": "hc-black",
327 | "path": "./themes/bearded-theme-hc-chocolate-espresso.json"
328 | },
329 | {
330 | "label": "Bearded Theme HC Flurry",
331 | "uiTheme": "hc-black",
332 | "path": "./themes/bearded-theme-hc-flurry.json"
333 | },
334 | {
335 | "label": "Bearded Theme Milkshake Raspberry",
336 | "uiTheme": "hc-black",
337 | "path": "./themes/bearded-theme-milkshake-raspberry.json"
338 | },
339 | {
340 | "label": "Bearded Theme Milkshake Blueberry",
341 | "uiTheme": "hc-black",
342 | "path": "./themes/bearded-theme-milkshake-blueberry.json"
343 | },
344 | {
345 | "label": "Bearded Theme Milkshake Mango",
346 | "uiTheme": "hc-black",
347 | "path": "./themes/bearded-theme-milkshake-mango.json"
348 | },
349 | {
350 | "label": "Bearded Theme Milkshake Mint",
351 | "uiTheme": "hc-black",
352 | "path": "./themes/bearded-theme-milkshake-mint.json"
353 | },
354 | {
355 | "label": "Bearded Theme Milkshake Vanilla Banana",
356 | "uiTheme": "hc-black",
357 | "path": "./themes/bearded-theme-milkshake-vanilla.json"
358 | },
359 | {
360 | "label": "Bearded Themanopia (Experimental)",
361 | "uiTheme": "hc-black",
362 | "path": "./themes/bearded-theme-themanopia.json"
363 | },
364 | {
365 | "label": "Bearded Theme Aquarelle Cymbidium",
366 | "uiTheme": "vs-dark",
367 | "path": "./themes/bearded-theme-aquarelle-cymbidium.json"
368 | },
369 | {
370 | "label": "Bearded Theme Aquarelle Hydrangea",
371 | "uiTheme": "vs-dark",
372 | "path": "./themes/bearded-theme-aquarelle-hydrangea.json"
373 | },
374 | {
375 | "label": "Bearded Theme Aquarelle Lilac",
376 | "uiTheme": "vs-dark",
377 | "path": "./themes/bearded-theme-aquarelle-lilac.json"
378 | },
379 | {
380 | "label": "Bearded Theme OLED (Experimental)",
381 | "uiTheme": "vs-dark",
382 | "path": "./themes/bearded-theme-oled.json"
383 | }
384 | ]
385 | },
386 | "dependencies": {
387 | "@types/node": "^22.14.1",
388 | "@types/vscode": "^1.85.0",
389 | "@typescript-eslint/eslint-plugin": "^8.30.0",
390 | "@typescript-eslint/parser": "^8.30.0",
391 | "@vscode/vsce": "^3.3.2",
392 | "colord": "^2.9.3",
393 | "eslint": "^9.24.0",
394 | "eslint-plugin-perfectionist": "^4.11.0",
395 | "ovsx": "^0.10.2",
396 | "prettier": "^3.1.1",
397 | "typescript": "^5.3.3",
398 | "vite-node": "^3.1.1"
399 | },
400 | "devDependencies": {
401 | "nodemon": "^3.1.9"
402 | }
403 | }
404 |
--------------------------------------------------------------------------------
/publish.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | setlocal enabledelayedexpansion
3 |
4 | REM Colors for better readability
5 | set "GREEN=[0;32m"
6 | set "BLUE=[0;34m"
7 | set "YELLOW=[1;33m"
8 | set "RED=[0;31m"
9 | set "NC=[0m"
10 |
11 | REM Get version from package.json using node
12 | for /f "tokens=*" %%a in ('node -p "require('./package.json').version"') do set VERSION=%%a
13 | set RELEASE_NOTES=./releases/%VERSION%.md
14 |
15 | echo !BLUE!^=== Bearded Theme Release Process ===!NC!
16 | echo !BLUE!Version: !GREEN!v%VERSION%!NC!
17 |
18 | REM Check if VSIX version already exists
19 | if exist "./releases/%VERSION%.vsix" (
20 | echo !YELLOW!VSIX file for v%VERSION% already exists.!NC!
21 | set /p REBUILD="Do you want to rebuild the package? (y/n) "
22 | echo.
23 | if /i "!REBUILD!"=="y" (
24 | echo !BLUE!Building VSIX package...!NC!
25 | call npm run build:ext
26 | )
27 | ) else (
28 | echo !BLUE!Building VSIX package...!NC!
29 | call npm run build:ext
30 | )
31 |
32 | REM Check if release notes file exists
33 | if not exist "%RELEASE_NOTES%" (
34 | echo !YELLOW!Release notes file not found.!NC!
35 | set /p CREATE_NOTES="Do you want to create a release notes template? (y/n) "
36 | echo.
37 | if /i "!CREATE_NOTES!"=="y" (
38 | echo !BLUE!Creating release notes file...!NC!
39 | call npm run create:release-notes
40 | echo !GREEN!✓ Release notes file created: %RELEASE_NOTES%!NC!
41 | echo !YELLOW!Please edit the release notes file before continuing.!NC!
42 | echo Press Enter when you have finished editing...
43 | pause > nul
44 | echo.
45 | )
46 | ) else (
47 | echo !GREEN!✓ Release notes file found: %RELEASE_NOTES%!NC!
48 | )
49 |
50 | REM Publish to VS Code Marketplace
51 | echo !BLUE!Publishing to VS Code Marketplace...!NC!
52 | if defined VSCE_PAT (
53 | echo !GREEN!✓ VSCE token found in environment variables!NC!
54 | call npm run publish:vscode
55 | ) else (
56 | echo !YELLOW!VSCE token not found in environment variables!NC!
57 | set /p HAS_TOKEN="Do you have a VSCE token? (y/n) "
58 | echo.
59 | if /i "!HAS_TOKEN!"=="y" (
60 | set /p VSCE_TOKEN="Enter your VS Code Marketplace token: "
61 | echo.
62 | if defined VSCE_TOKEN (
63 | set "VSCE_PAT=!VSCE_TOKEN!"
64 | call npm run publish:vscode
65 | ) else (
66 | echo !RED!Empty token, VS Code Marketplace publication cancelled.!NC!
67 | )
68 | ) else (
69 | set /p TRY_PUBLISH="Do you still want to try publishing to VS Code Marketplace? (y/n) "
70 | echo.
71 | if /i "!TRY_PUBLISH!"=="y" (
72 | call npm run publish:vscode
73 | ) else (
74 | echo !YELLOW!VS Code Marketplace publication skipped.!NC!
75 | )
76 | )
77 | )
78 |
79 | REM Publish to Open VSX
80 | echo !BLUE!Publishing to Open VSX...!NC!
81 | if defined OVSX_TOKEN (
82 | echo !GREEN!✓ Open VSX token found in environment variables!NC!
83 | call npm run publish:ovsx
84 | ) else (
85 | echo !YELLOW!Open VSX token not found in environment variables!NC!
86 | set /p HAS_OVSX_TOKEN="Do you have an Open VSX token? (y/n) "
87 | echo.
88 | if /i "!HAS_OVSX_TOKEN!"=="y" (
89 | set /p OVSX_TOKEN_VALUE="Enter your Open VSX token: "
90 | echo.
91 | if defined OVSX_TOKEN_VALUE (
92 | set "OVSX_TOKEN=!OVSX_TOKEN_VALUE!"
93 | call npm run publish:ovsx
94 | ) else (
95 | echo !RED!Empty token, Open VSX publication cancelled.!NC!
96 | )
97 | ) else (
98 | echo !YELLOW!Open VSX publication skipped.!NC!
99 | )
100 | )
101 |
102 | REM Create GitHub version tag
103 | echo !BLUE!Creating GitHub version tag...!NC!
104 | set /p CREATE_TAG="Do you want to create a GitHub tag for this version? (y/n) "
105 | echo.
106 | if /i "!CREATE_TAG!"=="y" (
107 | call npm run release
108 | echo !GREEN!✓ Tag v%VERSION% created on GitHub!NC!
109 | ) else (
110 | echo !YELLOW!GitHub tag creation skipped.!NC!
111 | )
112 |
113 | echo !GREEN!^=== Publication process completed ===!NC!
114 | endlocal
115 |
--------------------------------------------------------------------------------
/publish.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Colors for better readability
4 | GREEN='\033[0;32m'
5 | BLUE='\033[0;34m'
6 | YELLOW='\033[1;33m'
7 | RED='\033[0;31m'
8 | NC='\033[0m' # No Color
9 |
10 | # Get version from package.json
11 | VERSION=$(node -p "require('./package.json').version")
12 | RELEASE_NOTES="./releases/$VERSION.md"
13 |
14 | echo -e "${BLUE}=== Bearded Theme Release Process ===${NC}"
15 | echo -e "${BLUE}Version: ${GREEN}v$VERSION${NC}"
16 |
17 | # Check if VSIX version already exists
18 | if [ -f "./releases/$VERSION.vsix" ]; then
19 | echo -e "${YELLOW}VSIX file for v$VERSION already exists.${NC}"
20 | read -p "Do you want to rebuild the package? (y/n) " -n 1 -r
21 | echo
22 | if [[ $REPLY =~ ^[Yy]$ ]]; then
23 | echo -e "${BLUE}Building VSIX package...${NC}"
24 | npm run build:ext
25 | fi
26 | else
27 | echo -e "${BLUE}Building VSIX package...${NC}"
28 | npm run build:ext
29 | fi
30 |
31 | # Check if release notes file exists
32 | if [ ! -f "$RELEASE_NOTES" ]; then
33 | echo -e "${YELLOW}Release notes file not found.${NC}"
34 | read -p "Do you want to create a release notes template? (y/n) " -n 1 -r
35 | echo
36 | if [[ $REPLY =~ ^[Yy]$ ]]; then
37 | echo -e "${BLUE}Creating release notes file...${NC}"
38 | npm run create:release-notes
39 | echo -e "${GREEN}✓ Release notes file created: $RELEASE_NOTES${NC}"
40 | echo -e "${YELLOW}Please edit the release notes file before continuing.${NC}"
41 | read -p "Press Enter when you have finished editing..." -n 1 -r
42 | echo
43 | fi
44 | else
45 | echo -e "${GREEN}✓ Release notes file found: $RELEASE_NOTES${NC}"
46 | fi
47 |
48 | # Publish to VS Code Marketplace
49 | echo -e "${BLUE}Publishing to VS Code Marketplace...${NC}"
50 | if [ -n "$VSCE_PAT" ]; then
51 | echo -e "${GREEN}✓ VSCE token found in environment variables${NC}"
52 | npm run publish:vscode
53 | else
54 | echo -e "${YELLOW}VSCE token not found in environment variables${NC}"
55 | read -p "Do you have a VSCE token? (y/n) " -n 1 -r
56 | echo
57 | if [[ $REPLY =~ ^[Yy]$ ]]; then
58 | read -p "Enter your VS Code Marketplace token: " VSCE_TOKEN
59 | echo
60 | if [ -n "$VSCE_TOKEN" ]; then
61 | VSCE_PAT=$VSCE_TOKEN npm run publish:vscode
62 | else
63 | echo -e "${RED}Empty token, VS Code Marketplace publication cancelled.${NC}"
64 | fi
65 | else
66 | read -p "Do you still want to try publishing to VS Code Marketplace? (y/n) " -n 1 -r
67 | echo
68 | if [[ $REPLY =~ ^[Yy]$ ]]; then
69 | npm run publish:vscode
70 | else
71 | echo -e "${YELLOW}VS Code Marketplace publication skipped.${NC}"
72 | fi
73 | fi
74 | fi
75 |
76 | # Publish to Open VSX
77 | echo -e "${BLUE}Publishing to Open VSX...${NC}"
78 | if [ -n "$OVSX_TOKEN" ]; then
79 | echo -e "${GREEN}✓ Open VSX token found in environment variables${NC}"
80 | npm run publish:ovsx
81 | else
82 | echo -e "${YELLOW}Open VSX token not found in environment variables${NC}"
83 | read -p "Do you have an Open VSX token? (y/n) " -n 1 -r
84 | echo
85 | if [[ $REPLY =~ ^[Yy]$ ]]; then
86 | read -p "Enter your Open VSX token: " OVSX_TOKEN_VALUE
87 | echo
88 | if [ -n "$OVSX_TOKEN_VALUE" ]; then
89 | OVSX_TOKEN=$OVSX_TOKEN_VALUE npm run publish:ovsx
90 | else
91 | echo -e "${RED}Empty token, Open VSX publication cancelled.${NC}"
92 | fi
93 | else
94 | echo -e "${YELLOW}Open VSX publication skipped.${NC}"
95 | fi
96 | fi
97 |
98 | # Create GitHub version tag
99 | echo -e "${BLUE}Creating GitHub version tag...${NC}"
100 | read -p "Do you want to create a GitHub tag for this version? (y/n) " -n 1 -r
101 | echo
102 | if [[ $REPLY =~ ^[Yy]$ ]]; then
103 | npm run release
104 | echo -e "${GREEN}✓ Tag v$VERSION created on GitHub${NC}"
105 | else
106 | echo -e "${YELLOW}GitHub tag creation skipped.${NC}"
107 | fi
108 |
109 | echo -e "${GREEN}=== Publication process completed ===${NC}"
110 |
--------------------------------------------------------------------------------
/releases/10.0.0.md:
--------------------------------------------------------------------------------
1 | ## 10.0.0 - 2025-04-15
2 |
3 | ### Features and Improvements
4 |
5 | - Add support for multiDiffEditor
6 | - Add colors for scmgraph
7 | - Add missing theme keys
8 |
9 | ### Bug Fixes
10 |
11 | - Fix Divider color looks off #194
12 | - Fix watching mode
13 |
14 | ### Other Changes
15 |
16 | No other changes in this release.
17 |
18 |
--------------------------------------------------------------------------------
/releases/10.1.0.md:
--------------------------------------------------------------------------------
1 | ## 10.1.0 - 2025-04-21
2 |
3 | ### Features and Improvements
4 |
5 | - Add new experimental variation : OLED [#207 (Thanks @Nova38)](https://github.com/BeardedBear/bearded-theme/issues/207)
6 | - Improve contrast for light theme
7 | - Improve publish process
8 | - Add inline suggest support
9 | - Add scmGraph foreground support
10 | - Add support for multiDiffEditor
11 | - Add colors for scmgraph
12 | - Add missing theme keys
13 |
14 | ### Bug Fixes
15 |
16 | - Fix python doc string contrast [#203 (Thanks @johnReeferVermont)](https://github.com/BeardedBear/bearded-theme/issues/203)
17 | - Fix inlay hint colors [#201 (Thanks @CodingOIer)](https://github.com/BeardedBear/bearded-theme/issues/201)
18 | - Fix bash evaluation and pipe colors [#169 (Thanks @Wheels35)](https://github.com/BeardedBear/bearded-theme/issues/169)
19 | - Fix window control hover in linux [#204 (Thanks @PavelDobCZ23)](https://github.com/BeardedBear/bearded-theme/issues/204)
20 | - Fix status bar item contrast [#195 (Thanks @Loskir)](https://github.com/BeardedBear/bearded-theme/issues/195)
21 | - Fix list background hover contrast
22 | - Fix Icons in popup dialogs have unnatural colors [#165 (Thanks @Loskir)](https://github.com/BeardedBear/bearded-theme/issues/165)
23 | - Fix tab foreground color with no modifications [#205 (Thanks @lperson)](https://github.com/BeardedBear/bearded-theme/issues/205)
24 | - Fix toolbar icon background
25 | - Fix Don't distribute image assets within extension package [#196 (Thanks @stevenlele)](https://github.com/BeardedBear/bearded-theme/issues/196)
26 | - Fix links color
27 | - Fix Divider color looks off [#194 (Thanks @Loskir)](https://github.com/BeardedBear/bearded-theme/issues/194)
28 |
--------------------------------------------------------------------------------
/releases/8.3.2.md:
--------------------------------------------------------------------------------
1 | ### Enhancements
2 |
3 | - Improve readibility or peekview
4 |
5 | ### Fixes
6 |
7 | - Fix sticky scroll background on peekview (Thanks [aiday-mar](https://github.com/BeardedBear/bearded-theme/issues/127))
8 |
--------------------------------------------------------------------------------
/releases/9.0.0.md:
--------------------------------------------------------------------------------
1 | ### New features
2 |
3 | - Add experimental variation for color blind users `Bearded Themanopia`
4 | - Add 3 variations of new serie `Aquarelle`
5 | - `Aquarelle Cymbidium`
6 | - `Aquarelle Hydrangea`
7 | - `Aquarelle Lilac`
8 |
9 | ### Fixes
10 |
11 | - Fix line number foreground color
12 | - Fix Milkshake Blueberry primary color
13 | - Fix Milkshake Mango primary color
14 | - Fix current text for react with babel syntax HL [Thanks oguzhanuzunay](https://github.com/BeardedBear/bearded-theme/issues/133)
15 | - Fix TODO keyword in comments [Thanks lperson](https://github.com/BeardedBear/bearded-theme/issues/135)
16 | - Fix const keyword missing for julia [Thanks SabeDoesThings](https://github.com/BeardedBear/bearded-theme/issues/136)
17 | - Fix quoted style attribute for HTML [Thanks gmurad97](https://github.com/BeardedBear/bearded-theme/issues/139)
18 | - Fix inserted comment background color in diff editor [Thanks hadirgax](https://github.com/BeardedBear/bearded-theme/issues/144)
19 | - Fix terminal bright palette [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/145)
20 |
21 | ### Enhancements
22 |
23 | - Rework inputs
24 | - Fix quick input background color
25 | - Fix input background opacity and border color
26 | - Fix input placeholder color
27 |
--------------------------------------------------------------------------------
/releases/9.0.1.md:
--------------------------------------------------------------------------------
1 | ### Fixes
2 |
3 | - Adjust contrast of Aquarelle serie colors
4 |
--------------------------------------------------------------------------------
/releases/9.1.0.md:
--------------------------------------------------------------------------------
1 | ## 9.1.0 - 2024-02-19
2 |
3 | ### Fixes
4 |
5 | - Fix teinted hover icon color
6 |
7 | ### Enhancements
8 |
9 | - Add better support for inline chat
10 | - Add more readable colors for breadcrumb picker
11 | - Improve debug mode colors
12 |
--------------------------------------------------------------------------------
/releases/9.1.1.md:
--------------------------------------------------------------------------------
1 | ## 9.1.1 - 2024-02-21
2 |
3 | ### Fixes
4 |
5 | - Fix debug breakpoint color
6 | - Fix sticky scroll hover on terminal
7 | - Fix bright color for terminal
8 | - Fix shadow for sticky scroll
9 | - Fix border color for widgets
10 | - Fix overview ruler HL opacity
11 |
--------------------------------------------------------------------------------
/releases/9.1.2.md:
--------------------------------------------------------------------------------
1 | ## 9.1.2 - 2024-02-21
2 |
3 | - Fix panelSection.border color
4 |
--------------------------------------------------------------------------------
/releases/9.1.3.md:
--------------------------------------------------------------------------------
1 | ## 9.1.3 - 2024-02-22
2 |
3 | - Fix icon color on hover suggest widget [Thanks rohitxdev](https://github.com/BeardedBear/bearded-theme/issues/153)
4 | - Fix line number color [Thanks khannurien](https://github.com/BeardedBear/bearded-theme/issues/154)
5 |
--------------------------------------------------------------------------------
/releases/9.1.4.md:
--------------------------------------------------------------------------------
1 | ## 9.1.4 - 2024-02-28
2 |
3 | - Fix prominent colors [Thanks nerdydaemon10](https://github.com/BeardedBear/bearded-theme/issues/158)
4 | - Fix active input option colors [Thanks Djojo77](https://github.com/BeardedBear/bearded-theme/issues/159)
5 |
--------------------------------------------------------------------------------
/releases/9.1.5.md:
--------------------------------------------------------------------------------
1 | ## 9.1.5 - 2024-03-27
2 |
3 | - Fix shadows for sticky elements [Thanks Code-DJ](https://github.com/BeardedBear/bearded-theme/issues/163)
4 |
--------------------------------------------------------------------------------
/releases/9.2.0.md:
--------------------------------------------------------------------------------
1 | ## 9.2.0 - 2024-07-23
2 |
3 | - 🎉 Add new feat variation for WebDevCody [Thanks Cody](https://github.com/webdevcody)
4 | - 🪄 Fix contrast background color for title bar
5 | - 🐛 Fix subvariable color for cpp [Thanks CodingOIer](https://github.com/BeardedBear/bearded-theme/issues/177)
6 | - 🐛 Fix highlight color for matching words
7 | - 🐛 Fix shadow for sticky scroll in tree view
8 | - 🐛 Fix compactHoverBackground color
9 | - 🐛 Fix licence info in readme [Thanks PauloDeSousa](https://github.com/BeardedBear/bearded-theme/issues/185)
10 | - 🐛 Fix color for `editor.foldPlaceholderForeground`
11 |
--------------------------------------------------------------------------------
/releases/9.3.0.md:
--------------------------------------------------------------------------------
1 | ## 9.3.0 - 2024-08-02
2 |
3 | - 🪄 Improve contrast in all light variations
4 | - 🪄 Improve scrollbarSlider color
5 | - 🐛 Fix highlight background color for light variations
6 | - 🐛 Fix extension description foreground
7 | - 🐛 Fix secondary buttons background color [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/191)
8 | - 🐛 Fix button contrast in light themes [Thanks Loskir](https://github.com/BeardedBear/bearded-theme/issues/190)
9 |
--------------------------------------------------------------------------------
/src/create-release-notes.ts:
--------------------------------------------------------------------------------
1 | import { execSync } from "child_process";
2 | import * as fs from "fs";
3 | import * as path from "path";
4 |
5 | /**
6 | * Creates release notes for the current version of the package
7 | */
8 | const createReleaseNotes = (): void => {
9 | try {
10 | // Get the current package version from package.json
11 | const packagePath = path.resolve(process.cwd(), "package.json");
12 | const packageJson = JSON.parse(fs.readFileSync(packagePath, "utf8"));
13 | const version = packageJson.version;
14 |
15 | // Get the current branch
16 | const branch = execSync("git branch --show-current").toString().trim();
17 |
18 | // Create the output path
19 | const outputPath = path.resolve(process.cwd(), "releases", `${version}.md`);
20 |
21 | // Create the header with version and date
22 | const today = new Date();
23 | const dateString = today.toISOString().split("T")[0]; // YYYY-MM-DD format
24 | let content = `## ${version} - ${dateString}\n\n`;
25 |
26 | // Fetch all tags
27 | execSync("git fetch --tags");
28 |
29 | // Check if there are previous tags
30 | let hasPreviousTag = false;
31 | let lastTag = "";
32 | try {
33 | // Use a more Windows-friendly approach to check for tags
34 | const tagsOutput = execSync("git tag -l").toString().trim();
35 | hasPreviousTag = tagsOutput.length > 0;
36 |
37 | if (hasPreviousTag) {
38 | lastTag = execSync("git describe --tags --abbrev=0").toString().trim();
39 | }
40 | } catch (error) {
41 | console.error("Error checking for tags:", error);
42 | hasPreviousTag = false;
43 | }
44 |
45 | // Set to track commits that have already been processed
46 | const processedCommits = new Set();
47 |
48 | // Function to convert GitHub issue numbers in commit messages to actual GitHub links with attribution
49 | const extractIssueNumbers = (commit: string): string => {
50 | // Look for #XXX patterns in the commit message
51 | const issueMatches = commit.match(/#(\d+)/g);
52 |
53 | if (issueMatches) {
54 | // Replace each #XXX with markdown link to GitHub issue
55 | let updatedCommit = commit;
56 |
57 | issueMatches.forEach((match) => {
58 | try {
59 | // Extract the issue number without the # symbol
60 | const issueNumber = match.substring(1);
61 |
62 | // Try to get issue author using curl command
63 | let issueAuthor = "";
64 | try {
65 | // Use curl to get issue info (with a timeout to avoid hanging)
66 | const curlCommand = `curl -s -m 5 -H "User-Agent: BeardedTheme-ReleaseNotes-Script" https://api.github.com/repos/BeardedBear/bearded-theme/issues/${issueNumber}`;
67 | const issueData = JSON.parse(execSync(curlCommand).toString());
68 |
69 | if (issueData && issueData.user && issueData.user.login) {
70 | issueAuthor = ` (Thanks @${issueData.user.login})`;
71 | }
72 | } catch (error) {
73 | console.warn(
74 | `Could not fetch author for issue #${issueNumber}:`,
75 | error,
76 | );
77 | // Continue without author info if there's an error
78 | }
79 |
80 | // Create GitHub issue link with author attribution if available
81 | const issueLink = `[${match}${issueAuthor}](https://github.com/BeardedBear/bearded-theme/issues/${issueNumber})`;
82 |
83 | // Replace the #XXX with the link
84 | updatedCommit = updatedCommit.replace(match, issueLink);
85 | } catch (error) {
86 | console.error(`Error processing issue reference:`, error);
87 | // If any error occurs, just keep original reference
88 | }
89 | });
90 |
91 | return updatedCommit;
92 | }
93 |
94 | return commit;
95 | };
96 |
97 | // Function to get all commits between two points
98 | const getAllCommits = (): string[] => {
99 | try {
100 | // Get all commits first
101 | const gitCommand = hasPreviousTag
102 | ? `git log "${lastTag}"..HEAD --pretty=format:"%s" ${branch}`
103 | : `git log --pretty=format:"%s" ${branch}`;
104 |
105 | const allCommits = execSync(gitCommand).toString().trim();
106 |
107 | if (!allCommits) {
108 | return [];
109 | }
110 |
111 | return allCommits.split("\n");
112 | } catch (error) {
113 | console.error("Error getting commits:", error);
114 | return [];
115 | }
116 | };
117 |
118 | // Function to get commits by type
119 | const getCommits = (pattern: string): string[] => {
120 | try {
121 | // Split the pattern by | to handle multiple prefixes
122 | const patternPrefixes = pattern
123 | .split("\\|")
124 | .map((p) => p.replace(/^\^/, ""));
125 |
126 | // Get all commits if not already loaded
127 | const allCommits = getAllCommits();
128 |
129 | // Manually filter the commits
130 | const filteredCommits = allCommits.filter((commit) => {
131 | // Skip if this commit has already been processed
132 | if (processedCommits.has(commit)) {
133 | return false;
134 | }
135 |
136 | // Check if commit matches any of the patterns
137 | const matches = patternPrefixes.some((prefix) => {
138 | const cleanPrefix = prefix.trim();
139 | return commit.toLowerCase().startsWith(cleanPrefix.toLowerCase());
140 | });
141 |
142 | // If it matches, mark it as processed
143 | if (matches) {
144 | processedCommits.add(commit);
145 | }
146 |
147 | return matches;
148 | });
149 |
150 | // Format the filtered commits
151 | const processedLines = filteredCommits.map((line) => {
152 | // Process the line to extract issue numbers and format them correctly
153 | const processedLine = extractIssueNumbers(line);
154 |
155 | // Remove the commit type prefix (e.g., "fix: ", "feat: ")
156 | let cleanedLine = processedLine;
157 | patternPrefixes.forEach((prefix) => {
158 | const prefixRegex = new RegExp(`^${prefix}\\s*:\\s*`, "i");
159 | cleanedLine = cleanedLine.replace(prefixRegex, "");
160 | });
161 |
162 | // Capitalize the first letter of the commit message
163 | cleanedLine =
164 | cleanedLine.charAt(0).toUpperCase() + cleanedLine.slice(1);
165 |
166 | // Prepend the dash for markdown list format
167 | return `- ${cleanedLine}`;
168 | });
169 |
170 | return processedLines;
171 | } catch (error) {
172 | console.error("Error getting commits:", error);
173 | return [];
174 | }
175 | };
176 |
177 | // Get features and improvements
178 | const featuresPattern = "^feat\\|^improve\\|^enhancement\\|^add";
179 | const features = getCommits(featuresPattern);
180 | if (features.length > 0) {
181 | content += `### Features and Improvements\n\n${features.join("\n")}\n\n`;
182 | } else {
183 | content += `### Features and Improvements\n\nNo new features or improvements in this release.\n\n`;
184 | } // Get bug fixes
185 | const bugsPattern = "^fix\\|^bug";
186 | const bugfixes = getCommits(bugsPattern);
187 | if (bugfixes.length > 0) {
188 | content += `### Bug Fixes\n\n${bugfixes.join("\n")}\n\n`;
189 | } else {
190 | content += `### Bug Fixes\n\nNo bug fixes in this release.\n\n`;
191 | }
192 |
193 | // Process other changes without displaying them
194 | // This still marks them as processed, so they won't show up in other sections
195 | const otherPattern = "^chore\\|^docs\\|^refactor\\|^style\\|^test";
196 | getCommits(otherPattern); // Just process them to mark as seen, but don't add to content
197 |
198 | // Write to file
199 | fs.writeFileSync(outputPath, content);
200 | console.log(`Release notes created at: ${outputPath}`);
201 | } catch (error) {
202 | console.error("Error creating release notes:", error);
203 | process.exit(1);
204 | }
205 | };
206 |
207 | // Run the function when the script is executed
208 | createReleaseNotes();
209 |
--------------------------------------------------------------------------------
/src/helper.ts:
--------------------------------------------------------------------------------
1 | import { colord as c, extend } from "colord";
2 | import mixPlugin from "colord/plugins/mix";
3 |
4 | import { ThemeUi } from "./typing";
5 |
6 | extend([mixPlugin]);
7 |
8 | interface ThemePropsDark {
9 | base: string;
10 | fontTeinted?: boolean;
11 | primary: string;
12 | primaryAlt?: string;
13 | reversed?: boolean;
14 | }
15 |
16 | interface ThemePropsLight {
17 | base: string;
18 | desaturated?: boolean;
19 | primary: string;
20 | primaryAlt?: string;
21 | }
22 |
23 | export function isTooNeutral(hex: string, threshold = 0.3): boolean {
24 | const { s } = c(hex).toHsl();
25 | return s < threshold * 100;
26 | }
27 |
28 | export function isTooVibrant(hex: string, threshold = 0.3): boolean {
29 | const { s } = c(hex).toHsl();
30 | return s >= threshold * 100;
31 | }
32 |
33 | /**
34 | * Calculates and returns an object with color values based on the input properties.
35 | *
36 | * @param {ThemePropsDark} themeProps - The input object with color properties.
37 | * @returns {ThemeUi} - An object with color values based on the input properties.
38 | */
39 | export function makeMainColorsDark({
40 | base,
41 | fontTeinted,
42 | primary,
43 | primaryAlt,
44 | reversed,
45 | }: ThemePropsDark): ThemeUi {
46 | const darkenColor: string = c(base).darken(0.022).toHex();
47 | const sat = 0.01;
48 |
49 | return {
50 | border: c(base).darken(0.06).toHex(),
51 | // Fonts
52 | default: fontTeinted
53 | ? c(base).lighten(0.6).saturate(0.15).toHex()
54 | : c(base).lighten(0.7).desaturate(sat).toHex(),
55 | defaultalt: fontTeinted
56 | ? c(base).lighten(0.15).saturate(0.05).toHex()
57 | : c(base).lighten(0.25).desaturate(sat).toHex(),
58 | defaultMain: fontTeinted
59 | ? c(base).lighten(0.55).saturate(0.07).toHex()
60 | : c(base).lighten(0.6).desaturate(sat).toHex(),
61 | // UI
62 | primary,
63 | primaryalt: primaryAlt ? primaryAlt : c(base).lighten(0.05).toHex(),
64 | uibackground: reversed ? darkenColor : base,
65 | uibackgroundalt: reversed ? base : darkenColor,
66 | uibackgroundmid: c(base).mix(darkenColor).toHex(),
67 | };
68 | }
69 |
70 | /**
71 | * Generates color values for various elements of a UI theme based on the provided theme properties.
72 | * @param themeProps - The theme properties.
73 | * @returns An object containing color values for various elements of a UI theme.
74 | */
75 | export function makeMainColorsLight({
76 | base,
77 | desaturated,
78 | primary,
79 | primaryAlt,
80 | }: ThemePropsLight): ThemeUi {
81 | const darkenColor: string = c(base).darken(0.035).toHex();
82 | const mixedColor: string = c(base).mix(darkenColor).toHex();
83 | const borderColor: string = c(base).darken(0.15).toHex();
84 | const fontColor: string = c(primary).darken(0.1).toHex();
85 |
86 | return {
87 | border: desaturated ? c(borderColor).desaturate(0.5).toHex() : borderColor,
88 | // Fonts
89 | default: desaturated
90 | ? c(fontColor).darken(0.4).desaturate(0.3).toHex()
91 | : c(fontColor).darken(0.3).desaturate(0.3).toHex(),
92 | defaultalt: desaturated
93 | ? c(fontColor).lighten(0.3).desaturate(0.5).toHex()
94 | : c(fontColor).lighten(0.15).desaturate(0.5).toHex(),
95 | defaultMain: desaturated
96 | ? c(fontColor).darken(0.3).desaturate(0.3).toHex()
97 | : c(fontColor).darken(0.5).desaturate(0.3).toHex(),
98 | // UI
99 | primary,
100 | primaryalt: primaryAlt ? primaryAlt : c(base).lighten(0.02).toHex(),
101 | uibackground: base,
102 | uibackgroundalt: desaturated
103 | ? c(darkenColor).desaturate(0.35).toHex()
104 | : darkenColor,
105 | uibackgroundmid: desaturated
106 | ? c(mixedColor).desaturate(0.25).toHex()
107 | : mixedColor,
108 | };
109 | }
110 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { writeFile, writeFileSync } from "fs";
2 |
3 | import bridge from "../bridge.json" assert { type: "json" };
4 | import syntax from "./scopes/scopes";
5 | import semanticTokens from "./scopes/semanticTokens";
6 | import { Theme } from "./typing";
7 | import ui from "./ui";
8 | import {
9 | aquarelleCymbidium,
10 | aquarelleHydrangea,
11 | aquarelleLilac,
12 | } from "./variations/aquarelle";
13 | import {
14 | arc,
15 | arcBlueBerry,
16 | arcEggplant,
17 | arcEolstorm,
18 | arcReversed,
19 | } from "./variations/arc";
20 | import {
21 | blackAndAmethyst,
22 | blackAndAmethystSoft,
23 | blackAndDiamond,
24 | blackAndDiamondSoft,
25 | blackAndEmerald,
26 | blackAndEmeraldSoft,
27 | blackAndGold,
28 | blackAndGoldSoft,
29 | blackAndRuby,
30 | blackAndRubySoft,
31 | } from "./variations/black";
32 | import { anthracite, light } from "./variations/classics";
33 | import { colorBlind } from "./variations/colorblind";
34 | import {
35 | altica,
36 | coffee,
37 | coffeeCream,
38 | coffeeReversed,
39 | earth,
40 | voided,
41 | } from "./variations/exotic";
42 | import {
43 | goldDRaynh,
44 | goldDRaynhLight,
45 | melleJulie,
46 | melleJulieLight,
47 | webDevCody,
48 | will,
49 | } from "./variations/feat";
50 | import {
51 | ChocolateEspresso,
52 | HCBrewingStorm,
53 | HCEbony,
54 | HCFlurry,
55 | HCMidnightVoid,
56 | HCWonderlandWood,
57 | Minuit,
58 | } from "./variations/hc";
59 | import {
60 | milkshakeBlueberry,
61 | milkshakeMango,
62 | milkshakeMint,
63 | milkshakeRaspberry,
64 | milkshakeVanilla,
65 | } from "./variations/milkshake";
66 | import {
67 | monokaiBlack,
68 | monokaiMetallian,
69 | monokaiReversed,
70 | monokaiStone,
71 | monokaiTerra,
72 | } from "./variations/monokai";
73 | import { oled } from "./variations/oled";
74 | import {
75 | oceanic,
76 | oceanicReverded,
77 | solarizedDark,
78 | solarizedLight,
79 | solarizedReversed,
80 | } from "./variations/solarized";
81 | import { stainedBlue, stainedPurple } from "./variations/stained";
82 | import {
83 | surprisingBlueberry,
84 | surprisingEggplant,
85 | surprisingWatermelon,
86 | } from "./variations/surprising";
87 | import { vividBlack, vividLight, vividPurple } from "./variations/vivid";
88 |
89 | interface BridgeItem {
90 | name: string;
91 | slug: string;
92 | theme: Theme;
93 | uiTheme: string;
94 | }
95 |
96 | interface ThemeOptions {
97 | desaturateInputs?: boolean;
98 | hc?: boolean;
99 | light?: boolean;
100 | untindedSelection?: boolean;
101 | }
102 |
103 | const bfile: BridgeItem[] = JSON.parse(JSON.stringify(bridge));
104 |
105 | /**
106 | * Generates a theme template and writes it to a JSON file.
107 | * @param name - The name of the theme.
108 | * @param theme - The theme object containing color definitions.
109 | * @param options - Optional configuration for the theme generation.
110 | * @param options.desaturateInputs - Whether to desaturate input colors. Default is false.
111 | * @param options.hc - Whether to generate a high contrast theme. Default is false.
112 | * @param options.light - Whether to generate a light theme. Default is false.
113 | * @param options.untindedSelection - Whether to generate an untinted selection color. Default is false.
114 | * @returns A Promise that resolves when the theme file is written successfully.
115 | */
116 | async function makeTheme(
117 | name: string,
118 | theme: Theme,
119 | { desaturateInputs, hc, light, untindedSelection }: ThemeOptions = {
120 | desaturateInputs: false,
121 | hc: false,
122 | light: false,
123 | untindedSelection: false,
124 | },
125 | ): Promise {
126 | const themeTemplate = {
127 | $schema: "vscode://schemas/color-theme",
128 | colors: ui(theme, hc, light, untindedSelection, desaturateInputs),
129 | name: `BeardedTheme ${name.charAt(0).toUpperCase()}${name.slice(1)}`,
130 | semanticHighlighting: true,
131 | semanticTokenColors: semanticTokens(theme),
132 | tokenColors: syntax(theme, hc, light),
133 | };
134 |
135 | writeFile(
136 | `themes/bearded-theme-${name}.json`,
137 | JSON.stringify(themeTemplate),
138 | (err) => {
139 | if (err) console.log("error", err);
140 | },
141 | );
142 |
143 | // Generate bridge.json
144 | const themeName = name
145 | .split("-")
146 | .map((item) => item.charAt(0).toUpperCase() + item.slice(1))
147 | .join(" ");
148 |
149 | bfile.push({
150 | name: `Bearded Theme ${themeName}`,
151 | slug: name.split(" ").join("-").toLowerCase(),
152 | theme,
153 | uiTheme: "vs-dark",
154 | });
155 |
156 | if (bfile.length === new Set(bfile.map((item) => item.name)).size) {
157 | writeFileSync("bridge.json", JSON.stringify(bfile), {
158 | encoding: "utf8",
159 | });
160 | }
161 | }
162 |
163 | // Arc
164 | makeTheme("arc", arc);
165 | makeTheme("arc-eolstorm", arcEolstorm);
166 | makeTheme("arc-blueberry", arcBlueBerry);
167 | makeTheme("arc-eggplant", arcEggplant);
168 |
169 | // Solarized
170 | makeTheme("oceanic", oceanic);
171 | makeTheme("oceanic-reversed", oceanicReverded);
172 | makeTheme("solarized-dark", solarizedDark);
173 | makeTheme("solarized-light", solarizedLight, {
174 | desaturateInputs: true,
175 | light: true,
176 | });
177 | makeTheme("solarized-reversed", solarizedReversed);
178 |
179 | // Black
180 | makeTheme("black-&-amethyst", blackAndAmethyst);
181 | makeTheme("black-&-amethyst-soft", blackAndAmethystSoft);
182 | makeTheme("black-&-diamond", blackAndDiamond);
183 | makeTheme("black-&-diamond-soft", blackAndDiamondSoft);
184 | makeTheme("black-&-emerald", blackAndEmerald);
185 | makeTheme("black-&-emerald-soft", blackAndEmeraldSoft);
186 | makeTheme("black-&-gold", blackAndGold);
187 | makeTheme("black-&-gold-soft", blackAndGoldSoft);
188 | makeTheme("black-&-ruby", blackAndRuby);
189 | makeTheme("black-&-ruby-soft", blackAndRubySoft);
190 |
191 | // Stained
192 | makeTheme("stained-purple", stainedPurple);
193 | makeTheme("stained-blue", stainedBlue);
194 |
195 | // Vivid
196 | makeTheme("vivid-purple", vividPurple);
197 | makeTheme("vivid-black", vividBlack);
198 | makeTheme("vivid-light", vividLight, { light: true });
199 |
200 | // Monokai
201 | makeTheme("monokai-terra", monokaiTerra);
202 | makeTheme("monokai-metallian", monokaiMetallian);
203 | makeTheme("monokai-stone", monokaiStone);
204 | makeTheme("monokai-black", monokaiBlack);
205 | makeTheme("monokai-reversed", monokaiReversed);
206 |
207 | // Exotic
208 | makeTheme("earth", earth);
209 | makeTheme("coffee", coffee);
210 | makeTheme("coffee-reversed", coffeeReversed);
211 | makeTheme("coffee-cream", coffeeCream, { light: true });
212 | makeTheme("void", voided);
213 | makeTheme("altica", altica);
214 | makeTheme("arc-reversed", arcReversed);
215 |
216 | // Feat
217 | makeTheme("feat-will", will, { untindedSelection: true });
218 | makeTheme("feat-gold-d-raynh", goldDRaynh, { untindedSelection: true });
219 | makeTheme("feat-gold-d-raynh-light", goldDRaynhLight, { light: true });
220 | makeTheme("feat-mellejulie", melleJulie);
221 | makeTheme("feat-mellejulie-light", melleJulieLight, { light: true });
222 | makeTheme("feat-webDevCody", webDevCody, { hc: true, untindedSelection: true });
223 |
224 | // Classics
225 | makeTheme("classics-anthracite", anthracite);
226 | makeTheme("classics-light", light, { light: true });
227 |
228 | // Surprising
229 | makeTheme("surprising-eggplant", surprisingEggplant);
230 | makeTheme("surprising-blueberry", surprisingBlueberry);
231 | makeTheme("surprising-watermelon", surprisingWatermelon);
232 |
233 | // HC
234 | makeTheme("hc-ebony", HCEbony, { hc: true });
235 | makeTheme("hc-midnightvoid", HCMidnightVoid, { hc: true });
236 | makeTheme("hc-flurry", HCFlurry, { hc: true, light: true });
237 | makeTheme("hc-wonderland-wood", HCWonderlandWood, { hc: true });
238 | makeTheme("hc-brewing-storm", HCBrewingStorm, { hc: true });
239 | makeTheme("hc-minuit", Minuit, { hc: true });
240 | makeTheme("hc-chocolate-espresso", ChocolateEspresso, { hc: true });
241 |
242 | // Milkshake
243 | makeTheme("milkshake-raspberry", milkshakeRaspberry, {
244 | hc: true,
245 | light: true,
246 | });
247 | makeTheme("milkshake-blueberry", milkshakeBlueberry, {
248 | hc: true,
249 | light: true,
250 | });
251 | makeTheme("milkshake-mango", milkshakeMango, { hc: true, light: true });
252 | makeTheme("milkshake-mint", milkshakeMint, { hc: true, light: true });
253 | makeTheme("milkshake-vanilla", milkshakeVanilla, {
254 | hc: true,
255 | light: true,
256 | });
257 |
258 | // Colorblind
259 | makeTheme("Themanopia", colorBlind, { hc: true });
260 |
261 | // Pale
262 | makeTheme("aquarelle-cymbidium", aquarelleCymbidium);
263 | makeTheme("aquarelle-hydrangea", aquarelleHydrangea);
264 | makeTheme("aquarelle-lilac", aquarelleLilac);
265 |
266 | // OLED - Optimized for OLED screens
267 | makeTheme("oled", oled);
268 |
--------------------------------------------------------------------------------
/src/scopes/markup.ts:
--------------------------------------------------------------------------------
1 | // HTML
2 | export const variables = ["support.variable.liquid", "support.class.liquid"];
3 | export const tags = [
4 | "text.html.basic entity.name",
5 | "source.js-ignored-vscode",
6 | "entity.name.tag",
7 | // BLADE
8 | "meta.embedded.block.blade constant.other.php",
9 | "meta.embedded.block.blade keyword.operator.comparison.php",
10 | "meta.embedded.block.blade keyword.operator.arithmetic.php",
11 | "meta.tag.start.svelte keyword.control.svelte",
12 | "meta.tag.end.svelte keyword.control.svelte",
13 | ];
14 | export const tagsPunctuation = [
15 | "meta.tag.sgml.doctype.html",
16 | "punctuation.definition.tag",
17 | "meta.tag.block.any",
18 | "meta.tag.block.any.html",
19 | "meta.tag.inline.any",
20 | "source.css-ignored-vscode",
21 | "meta.tag.metadata.style.end.html",
22 | "text.html.vue invalid.illegal.character-not-allowed-here.html",
23 | "meta.tag.inline.i.start.html",
24 | "meta.tag.structure.div.start.html",
25 | "punctuation.definition.tag.end.html.vue",
26 | "invalid.illegal.character-not-allowed-here.html",
27 | ];
28 | export const attributes = [
29 | "entity.other.attribute-name",
30 | "entity.name.tag.liquid",
31 | "invalid.deprecated.entity.other.attribute-name",
32 | // BLADE
33 | "meta.embedded.block.blade storage.type.php",
34 | ];
35 |
36 | // MARKDOWN
37 | export const mdCode = [
38 | "markup.inline.raw.string.markdown",
39 | "punctuation.definition.raw.markdown",
40 | "markup.fenced_code.block.markdown",
41 | "markup.fenced_code.block.markdown punctuation",
42 | "markup.raw.block.markdown",
43 | ];
44 | export const mdCodeLanguage = ["fenced_code.block.language"];
45 | export const mdList = ["punctuation.definition.list.begin"];
46 | export const mdListPunctuation = ["punctuation.definition.list.begin"];
47 | export const mdHeading = ["entity.name.section", "markup.heading.setext"];
48 | export const mdHeadingPunctuation = ["punctuation.definition.heading"];
49 | export const mdLink = ["markup.underline.link", "markup.underline.link.image"];
50 | export const mdItalic = ["markup.italic", "punctuation.definition.italic"];
51 | export const mdBold = ["markup.bold", "punctuation.definition.bold"];
52 | export const mdStriked = [
53 | "markup.strikethrough",
54 | "punctuation.definition.strikethrough",
55 | ];
56 | export const mdQuote = [
57 | "markup.quote",
58 | "markup.quote.markdown punctuation.definition.quote.begin",
59 | ];
60 | export const mdQuotePunctuation = ["punctuation.definition.quote.begin"];
61 | export const component = [
62 | "entity.name.tag.other.html",
63 | "entity.name.tag support.class.component",
64 | "support.class.component.html",
65 | ];
66 | export const frontMatter = [
67 | "meta.embedded.block.frontmatter punctuation.definition.tag.begin",
68 | "meta.embedded.block.frontmatter punctuation.definition.tag.end",
69 | "meta.embedded.block.frontmatter string.unquoted.plain.out",
70 | ];
71 |
72 | // DIFF/PATCH
73 | export const diffAdd = [
74 | "source.diff meta.diff.header.to-file",
75 | "source.diff markup.inserted.diff",
76 | "source.diff punctuation.definition.to-file.diff",
77 | "source.diff punctuation.definition.inserted.diff",
78 | ];
79 | export const diffDel = [
80 | "source.diff punctuation.definition.from-file.diff",
81 | "source.diff meta.diff.header.from-file",
82 | "source.diff markup.deleted.diff",
83 | "source.diff punctuation.definition.deleted.diff",
84 | ];
85 | export const diffHead = ["source.diff meta.diff.header.command"];
86 | export const diffRange = [
87 | "source.diff punctuation.definition.range.diff",
88 | "source.diff meta.diff.range.unified",
89 | ];
90 |
--------------------------------------------------------------------------------
/src/scopes/prog.ts:
--------------------------------------------------------------------------------
1 | export const accessors = [
2 | "support.module.elm",
3 | "entity.other.inherited-class.python",
4 | "variable.other.object",
5 | "support.other.namespace.php",
6 | "entity.other.attribute-name.namespace.xml",
7 | "record.accessor",
8 | "entity.name.record.field.accessor",
9 | "storage.modifier.import.java",
10 | "storage.modifier.import.groovy",
11 | "meta.import.swift entity.name.type.swift",
12 | "meta.member.access.python",
13 | "variable.other.property.ts",
14 | "variable.other.property.js",
15 | "constant.language.symbol.elixir",
16 | "punctuation.tag.liquid support.class.liquid",
17 | "meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell",
18 | "meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell",
19 | "source.cpp meta.block.class.cpp meta.body.class.cpp",
20 | "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.special.constructor.cpp meta.body.function.definition.special.constructor.cpp",
21 | ];
22 |
23 | export const classes = ["entity.name.type"];
24 |
25 | export const comments = [
26 | "comment",
27 | "punctuation.definition.comment",
28 | "string.quoted.docstring.multi",
29 | "comment.block.documentation source",
30 | ];
31 |
32 | export const keyword = [
33 | "keyword.package.go",
34 | "keyword.operator.pointer.go",
35 | "keyword.control",
36 | "keyword.control.conditional",
37 | "storage.modifier",
38 | "keyword.operator.new",
39 | "keyword.operator.expression",
40 | // BLADE
41 | "keyword.begin.blade",
42 | "keyword.end.blade",
43 | "keyword.blade",
44 | // ELM
45 | "keyword.type-alias",
46 | "keyword.type",
47 | "support.class.console",
48 | "keyword.other.await",
49 | "storage.type.class.jsdoc",
50 | "punctuation.definition.block.tag.jsdoc",
51 | "keyword.other.new",
52 | "keyword.other.phpdoc",
53 | "keyword.other.use.php",
54 | "keyword.operator.logical.python",
55 | "keyword.other.import.static.groovy",
56 | "keyword.other.import.groovy",
57 | "punctuation.definition.attribute.swift",
58 | "source.svelte meta.scope.tag.main.svelte meta.tag.start.svelte variable.function.svelte",
59 | "meta.directive.on.svelte entity.name.type.svelte",
60 | "keyword.other.special-method.elixir",
61 | "keyword.edge",
62 | "entity.name.function.edge",
63 | "support.constant.edge",
64 | "keyword.other.gdscript",
65 | "keyword.other.onready.gdscript",
66 | "source.graphql meta.fragment.graphql keyword.on.graphql",
67 | "source.graphql meta.type.interface.graphql keyword.implements.graphql",
68 | "source.graphql meta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql keyword.operator.nulltype.graphql",
69 | "source.graphql meta.variables.graphql keyword.operator.nulltype.graphql",
70 | "source.graphql meta.type.interface.graphql meta.type.object.graphql keyword.operator.nulltype.graphql",
71 | "keyword.operator.class.php",
72 | "keyword.operator.spread.php",
73 | "keyword.operator.type.php",
74 | "keyword.operator.increment-decrement.php",
75 | "keyword.operator.increment-increment.php",
76 | "punctuation.support.type.property-name.begin.json",
77 | "punctuation.support.type.property-name.end.json",
78 | "keyword.operator.string.php",
79 | "keyword.operator.ternary.php",
80 | "keyword.operator.variadic.php",
81 | "keyword.operator.nullable-type.php",
82 | "keyword.other.use-as.php",
83 | "keyword.import.go",
84 | "keyword.operator.address.go",
85 | "keyword.operator.null-coalescing",
86 | "keyword.operator.arrow",
87 | "keyword.struct.go",
88 | "keyword.operator.liquid",
89 | "keyword.operator.optional.ts",
90 | "keyword.cmake",
91 | "keyword.codetag.notation",
92 | "keyword.operator.pipe.shell",
93 | ];
94 |
95 | export const constants = ["constant", "support.constant.core.php"];
96 |
97 | export const currentText = [
98 | "meta.section.struct.go variable.other.field.go",
99 | "meta.section.struct.go variable.other.declaration.go",
100 | "source",
101 | "support",
102 | "constant.character.entity.named",
103 | "meta.jsx.children",
104 | // LUA
105 | "source.lua",
106 | "text.html.derivative",
107 | "source.graphql meta.selections variable.other.alias.graphql",
108 | "source.graphql meta.type.interface.graphql meta.type.object.graphql variable.graphql",
109 | "source.graphql variable.arguments.graphql",
110 | "JSXNested",
111 | ];
112 |
113 | export const decorators = [
114 | "entity.name.function.decorator",
115 | "meta.decorator entity.name.function",
116 | "meta.decorator punctuation.decorator",
117 | "punctuation.definition.decorator",
118 | "meta.decorator variable.other.readwrite.ts",
119 | "variable.parameter.gdscript",
120 | "entity.name.variable.parameter",
121 | "variable.parameter",
122 | ];
123 |
124 | export const exportScope = [
125 | "keyword.control.export",
126 | "support.type.object.module",
127 | ];
128 |
129 | export const functions = [
130 | // "entity",
131 | "support.function",
132 | "entity.name.function",
133 | "meta.function-call",
134 | "meta.function",
135 | "meta.method.declaration",
136 | "meta.function-call support",
137 | // Typescript
138 | "variable.language.super.ts",
139 | // VUE
140 | "source.directive",
141 | // PYTHON
142 | "meta.function-call.generic",
143 | // PHP
144 | "meta.method-call.static.php",
145 | "meta.method-call.php",
146 | "meta.class storage.type",
147 | "meta.method.groovy",
148 | "meta.bracket.square.access",
149 | // Elixir
150 | "entity.name.function-call.elixir",
151 | "punctuation.output.liquid support.variable.liquid",
152 | "meta.function.echo.edge source.js keyword.operator.error-control.js",
153 | "entity.name.type.variant.gdscript",
154 | "entity.name.function.powershell",
155 | ];
156 |
157 | export const importScope = [
158 | "keyword.control.import",
159 | "meta.module.name.elm support",
160 | "meta.import.elm support",
161 | // CSS
162 | "keyword.control.at-rule",
163 | "punctuation.definition.keyword",
164 | // PUG
165 | "variable.control.import.include",
166 | "keyword.other.import.java",
167 | ];
168 |
169 | export const dataProperty = [
170 | "keyword.other.definition.ini",
171 | "support.type.property-name",
172 | "entity.name.tag.yaml",
173 | ];
174 |
175 | export const objectProperty = [
176 | "meta.object-literal.key",
177 | "variable.object.property",
178 | ];
179 |
180 | export const operators = [
181 | "keyword.operator.comparison",
182 | "storage.type.function.arrow",
183 | // LUA
184 | "keyword.operator.lua",
185 | "keyword.operator.assignment",
186 | "keyword.operator.relational",
187 | "keyword.operator.increment",
188 | "keyword.operator.decrement",
189 | "keyword.operator.logical",
190 | "keyword.operator.arithmetic",
191 | "keyword.operator.math",
192 | ];
193 |
194 | export const punctuation = [
195 | "punctuation",
196 | "attribute_value",
197 | "meta.brace",
198 | "punctuation.definition.parameters",
199 | "punctuation.definition.template-expression",
200 | "keyword.operator",
201 | "keyword.other",
202 | // "keyword.operator.arrow",
203 | "punctuation.terminator",
204 | "punctuation.separator",
205 | "punctuation.definition.generic.begin",
206 | "punctuation.definition.generic.end",
207 | // ELM
208 | "meta.function.type-declaration",
209 | "keyword.other.colon.elm",
210 | "meta.record.field.elm keyword.other.elm",
211 | "keyword.other.period.elm",
212 | // XML
213 | "meta.tag.xml",
214 | "meta.tag.preprocessor.xml",
215 | // JAVASCRIPT
216 | "punctuation.definition.block",
217 | "punctuation.accessor",
218 | // PUG
219 | "constant.name.attribute.tag.pug",
220 | "string.interpolated.pug",
221 | // TWIG
222 | "keyword.other.whitespace.liquid",
223 | "meta.tag.template.block.twig",
224 | "meta.tag.template.value.twig",
225 | "begin.bracket",
226 | "end.bracket",
227 | "text.html.twig meta.tag.inline.any",
228 | "text.html.twig meta.tag.block.any",
229 | // BLADE
230 | "support.function.construct.begin.blade",
231 | "support.function.construct.end.blade source.php",
232 | "support.function.construct.end.blade",
233 | "meta.function.echo.blade source.php",
234 | "punctuation.definition.list.begin.python",
235 | "punctuation.definition.list.end.python",
236 | // VUE
237 | "text.html.vue-html meta.tag.block.any",
238 | "keyword.operator.assignment.tsx",
239 | "meta.definition.method.signature.java",
240 | "meta.class.body.groovy",
241 | "meta.definition.method.groovy meta.method.body.java meta.declaration.assertion.groovy",
242 | "punctuation.definition.list.begin.erlang",
243 | "meta.expression.parenthesized",
244 | "meta.definition.function.swift meta.parameter-clause.swift",
245 | "source.swift meta.function-call.swift",
246 | "punctuation.section.embedded.end.swift source.swift",
247 | "source.lua",
248 | "meta.function.lua",
249 | "punctuation.definition.keyword.svelte",
250 | "source.svelte meta.scope.tag.SpeakerPicture.svelte meta.tag.start.svelte entity.other.attribute-name.svelte",
251 | "expression.embbeded.vue punctuation.definition.tag.begin.html.vue",
252 | "expression.embbeded.vue punctuation.definition.tag.end.html.vue",
253 | "source.graphql meta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql meta.brace.square.graphql",
254 | // Liquid
255 | "punctuation.output.liquid",
256 | "text.html.liquid meta.tag.liquid punctuation.definition.tag.end.liquid",
257 | "JSXAttrs keyword.operator.assignment.jsx",
258 | "meta.tag.attributes.js keyword.operator.assignment.js",
259 | ];
260 |
261 | export const self = [
262 | "entity.name.package.go",
263 | "variable.language.this",
264 | "variable.language.special.self",
265 | "variable.parameter.function.language.special.self",
266 | "variable.language.this.php punctuation.definition.variable.php",
267 | "meta.class.body.php storage.type.php",
268 | "variable.parameter.function.swift entity.name.function.swift",
269 | "variable.other.jsdoc",
270 | "support.variable.drive.powershell",
271 | "entity.other.attribute.lua",
272 | ];
273 |
274 | export const storages = [
275 | "storage",
276 | // "storage.type",
277 | "meta.var.expr storage.type",
278 | "storage.type.function",
279 | "keyword.function",
280 | "storage.type.class",
281 | "storage.type.property",
282 | "keyword.other",
283 | // LUA
284 | "keyword.local.lua",
285 | "entity.name.class",
286 | "meta.function.lua keyword.control.lua",
287 | // TS
288 | "storage.type.enum",
289 | "storage.type.interface",
290 | "storage.type.type",
291 | "entity.name.type.class.java",
292 | "support.class.php",
293 | "entity.other.inherited-class.php",
294 | "entity.name.type.class.groovy",
295 | "storage.type.rust",
296 | "entity.name.type.class.swift",
297 | "source.svelte meta.script.svelte source.ts entity.name.label.ts",
298 | "meta.directive.on.svelte keyword.control.svelte",
299 | "storage.type.const.gdscript",
300 | "storage.type.var.gdscript",
301 | "source.graphql declaration.meta.type keyword",
302 | "source.graphql meta.type.interface.graphql keyword.type.graphql",
303 | "source.graphql keyword.schema.graphql",
304 | "source.graphql keyword.operation.graphql",
305 | "source.graphql meta.enum.graphql keyword.enum.graphql",
306 | "source.graphql meta.fragment.graphql keyword.fragment.graphql",
307 | "storage.type.trait.php",
308 | "keyword.type.go",
309 | "keyword.var.go",
310 | "storage.type.powershell",
311 | "keyword.const.go",
312 | "keyword.storage.modifier",
313 | ];
314 |
315 | export const strings = [
316 | "string",
317 | "string.template",
318 | "string.quoted.single",
319 | "punctuation.definition.string",
320 | "punctuation.definition.string.template",
321 | "punctuation.definition.string.begin",
322 | "punctuation.definition.string.end.html source.js-ignored-vscode",
323 | "punctuation.definition.string.end.html source.js",
324 | "punctuation.definition.string.end.html.vue",
325 | "punctuation.definition.string.end.html source.ts",
326 | "punctuation.definition.string.end.html source.tsx",
327 | "punctuation.definition.string.end.html source.js.jsx",
328 | "punctuation.definition.string.end",
329 | "string.other.link",
330 | "constant.character.escape.regexp",
331 | // CSS
332 | "variable.parameter.url",
333 | "constant.other.symbol.quoted.single.erlang",
334 | "constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.begin.erlang",
335 | "constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.end.erlang",
336 | "meta.import.ts punctuation.definition.variable.svelte",
337 | "punctuation.definition.string.end.html source.css-ignored-vscode",
338 | "text.html.edge punctuation.definition.variable.js",
339 | "string.unquoted.plain.out.yaml",
340 | "string.quoted.single.python punctuation.definition.string.begin.python",
341 | "string.quoted.single.python punctuation.definition.string.end.python",
342 | "punctuation.definition.string.end.html source.css",
343 | "string.quoted.double.html source.css",
344 | "punctuation.definition.subshell.single.shell",
345 | "punctuation.section.parenthese.shell",
346 | ];
347 |
348 | export const stringsAlt = [
349 | "string.quoted.docstring.multi.python",
350 | "string.quoted.double.block.python punctuation.definition.string.end.python",
351 | "string.quoted.double.block.python punctuation.definition.string.begin.python",
352 | "string.quoted.double.block.python",
353 | "punctuation.definition.string.begin.python",
354 | "punctuation.definition.string.end.python",
355 | ];
356 |
357 | export const types = [
358 | "entity.name.type",
359 | "support.type",
360 | "support.class",
361 | "storage.type",
362 | "entity.other.inherited-class",
363 | "keyword.type",
364 | "storage.type.java",
365 | "storage.type.primitive.java",
366 | "storage.type.generic.java",
367 | "keyword.other.type",
368 | "punctuation.section.embedded.begin.php",
369 | "punctuation.section.embedded.end.php source.php",
370 | "punctuation.section.embedded.end.php",
371 | "storage.type.object.array.java",
372 | "storage.type.primitive.groovy",
373 | "storage.type.groovy",
374 | "meta.definition.type.body.swift meta.function-call.swift",
375 | "meta.definition.type.class.swift meta.inheritance-clause.swift",
376 | "variable.other.constant.elixir",
377 | "source.graphql declaration.meta.type support",
378 | "source.graphql meta.selections",
379 | "source.graphql meta.enum.graphql meta.type.object.graphql constant.character.enum.graphql",
380 | "source.graphql meta.fragment.graphql entity.name.fragment.graphql",
381 | "entity.name.type.class.php",
382 | "support.class.php",
383 | "entity.other.inherited-class.php",
384 | "entity.other.alias.php",
385 | "meta.group.simple.subexpression.powershell meta.scriptblock.powershell storage.type.powershell",
386 | ];
387 |
388 | export const variables = [
389 | "variable",
390 | "variable.language",
391 | "entity.name.type.class.js",
392 | "entity.name.variable",
393 | "support.variable.magic",
394 | "meta.method.body",
395 | "entity.name.variable",
396 | "punctuation.definition.variable",
397 | "meta.class variable.object.property",
398 | "variable.other.constant entity.name.function",
399 | "entity.name.variable.tuple-element.cs punctuation.separator.colon.cs",
400 | "meta.definition.variable.name.groovy",
401 | "meta.body.struct.cpp",
402 | "parameter.variable.function.elixir",
403 | "meta.directive.edge source.js",
404 | "meta.function.echo.edge source.js",
405 | "text.html.edge meta.function.echo.edge meta.function-call.js",
406 | "source.css variable.parameter.keyframe-list.css",
407 | "source.css meta.property-value.css",
408 | "source.css.scss meta.at-rule.keyframes.scss entity.name.function.scss",
409 | "source.css.scss meta.property-value.scss",
410 | "entity.name.variable.tuple-element",
411 | "meta.group.simple.subexpression.powershell support.variable.automatic.powershell",
412 | "support.variable.automatic.powershell",
413 | "storage.source.cmake",
414 | "entity.source.cmake",
415 | ];
416 |
417 | export const typeConstructor = ["source.elm constant.type-constructor"];
418 | export const type = ["source.elm storage.type"];
419 |
--------------------------------------------------------------------------------
/src/scopes/scopes.ts:
--------------------------------------------------------------------------------
1 | import { colord as c } from "colord";
2 |
3 | import { FontStyle, Scope, Theme } from "../typing";
4 | import * as markup from "./markup";
5 | import * as prog from "./prog";
6 | import * as styling from "./styling";
7 |
8 | export default function syntax(
9 | theme: Theme,
10 | hc?: boolean,
11 | light?: boolean,
12 | ): Scope[] {
13 | return Object.assign([
14 | createScope(prog.accessors, theme.colors.orange),
15 | createScope(prog.classes, theme.colors.greenAlt),
16 | createScope(
17 | prog.comments,
18 | light ? c(theme.ui.defaultalt).alpha(0.7).toHex() : theme.ui.defaultalt,
19 | "italic",
20 | ),
21 | createScope(prog.constants, theme.colors.red),
22 | createScope(prog.currentText, theme.ui.defaultMain),
23 | createScope(prog.decorators, theme.colors.pink),
24 | createScope(prog.exportScope, theme.colors.yellow),
25 | createScope(prog.functions, theme.colors.blue),
26 | createScope(prog.importScope, theme.colors.yellow),
27 | createScope(prog.keyword, theme.colors.yellow),
28 | createScope(prog.objectProperty, theme.ui.default),
29 | createScope(prog.dataProperty, theme.colors.yellow),
30 | createScope(prog.operators, theme.colors.yellow),
31 | createScope(
32 | prog.punctuation,
33 | hc ? theme.ui.default : c(theme.ui.default).alpha(0.4).toHex(),
34 | ),
35 | createScope(prog.self, theme.colors.orange),
36 | createScope(prog.storages, theme.colors.turquoize),
37 | createScope(prog.strings, theme.colors.green),
38 | createScope(
39 | prog.stringsAlt,
40 | light
41 | ? c(theme.colors.greenAlt)
42 | .desaturate(0.1)
43 | .alpha(0.8)
44 | .darken(0.1)
45 | .toHex()
46 | : c(theme.colors.greenAlt).desaturate(0.1).alpha(0.8).toHex(),
47 | ),
48 | createScope(prog.types, theme.colors.purple),
49 | createScope(prog.variables, theme.colors.salmon),
50 |
51 | // ELM
52 | createScope(prog.typeConstructor, theme.colors.salmon),
53 | createScope(prog.type, theme.colors.purple),
54 |
55 | // MARKUP
56 | createScope(markup.component, theme.colors.purple),
57 | createScope(markup.diffAdd, theme.colors.green),
58 | createScope(markup.diffDel, theme.colors.red),
59 | createScope(markup.diffHead, theme.colors.blue),
60 | createScope(markup.diffRange, theme.colors.orange),
61 |
62 | // HTML
63 | createScope(markup.variables, theme.colors.salmon),
64 | createScope(markup.tags, theme.colors.blue),
65 | createScope(
66 | markup.tagsPunctuation,
67 | c(theme.colors.blue).alpha(0.7).toHex(),
68 | ),
69 | createScope(markup.attributes, theme.colors.yellow),
70 | // MARKDOWN
71 | createScope(markup.mdCode, theme.colors.purple),
72 | createScope(markup.mdCodeLanguage, theme.colors.purple),
73 | createScope(markup.mdList, theme.colors.blue),
74 | createScope(markup.mdListPunctuation, theme.colors.blue),
75 | createScope(markup.mdHeading, theme.colors.yellow),
76 | createScope(markup.mdHeadingPunctuation, theme.colors.yellow),
77 | createScope(markup.mdLink, theme.colors.blue),
78 | createScope(markup.mdBold, theme.colors.salmon, "bold"),
79 | createScope(markup.mdStriked, theme.colors.red),
80 | createScope(markup.mdItalic, theme.colors.orange, "italic"),
81 | createScope(markup.mdQuote, theme.colors.pink),
82 | createScope(markup.mdQuotePunctuation, theme.colors.blue),
83 | createScope(markup.frontMatter, theme.ui.defaultalt, "italic"),
84 |
85 | // STYLING
86 | createScope(styling.pseudoClasses, theme.colors.pink),
87 | createScope(styling.pseudoElements, theme.colors.pink),
88 | createScope(styling.classes, theme.colors.turquoize),
89 | createScope(styling.suffix, theme.colors.turquoize),
90 | createScope(styling.property, theme.ui.default),
91 | createScope(styling.ids, theme.colors.purple),
92 | createScope(styling.and, theme.colors.orange),
93 | createScope(styling.units, theme.colors.orange),
94 | createScope(styling.value, theme.colors.orange),
95 | createScope(styling.nums, theme.colors.orange),
96 | createScope(styling.tag, theme.colors.blue),
97 | ]);
98 | }
99 |
100 | function createScope(
101 | scope: string[],
102 | foreground: string,
103 | fontStyle?: FontStyle,
104 | ): Scope {
105 | return {
106 | scope,
107 | settings: {
108 | fontStyle,
109 | foreground,
110 | },
111 | };
112 | }
113 |
--------------------------------------------------------------------------------
/src/scopes/semanticTokens.ts:
--------------------------------------------------------------------------------
1 | // https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#semantic-coloring-in-color-themes
2 | import { Theme } from "../typing";
3 |
4 | interface SemanticToken {
5 | bold?: boolean;
6 | foreground: string;
7 | italic?: boolean;
8 | underline?: boolean;
9 | }
10 |
11 | export default function semanticTokens(
12 | theme: Theme,
13 | ): Record {
14 | return {
15 | "class.declaration": { foreground: theme.colors.purple },
16 | "class.decorator": { foreground: theme.colors.pink },
17 | enumMember: { foreground: theme.colors.purple },
18 | "meta.decorator": { foreground: theme.colors.pink },
19 | namespace: { foreground: theme.colors.blue },
20 | parameter: { foreground: theme.colors.pink },
21 | property: { foreground: theme.colors.orange },
22 | "property.declaration": { foreground: theme.ui.default },
23 | variable: { foreground: theme.colors.salmon },
24 | "variable.defaultLibrary": { foreground: theme.colors.turquoize },
25 | };
26 | }
27 |
--------------------------------------------------------------------------------
/src/scopes/styling.ts:
--------------------------------------------------------------------------------
1 | export const units = ["keyword.other.unit"];
2 | export const pseudoClasses = ["entity.other.attribute-name.pseudo-class"];
3 | export const pseudoElements = ["entity.other.attribute-name.pseudo-element"];
4 | export const classes = [
5 | "entity.other.attribute-name.class",
6 | "entity.other.attribute-name.class punctuation.definition.entity",
7 | ];
8 | export const suffix = [
9 | "entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity",
10 | ];
11 | export const ids = [
12 | "source.css.scss entity.other.attribute-name.id ",
13 | "source.css entity.other.attribute-name.id ",
14 | "entity.other.attribute-name.id punctuation.definition.entity",
15 | ];
16 | export const and = ["entity.name.tag.reference", "meta.property-list"];
17 | export const property = [
18 | "support.type.property-name.css",
19 | "support.type.vendored.property-name",
20 | "meta.property-list entity.name.tag.css",
21 | "meta.property-list.scss meta.property-list.scss entity.name.tag.css",
22 | "meta.property-list meta.property-name",
23 | "source.css.scss meta.property-list.scss entity.name.tag.css",
24 | ];
25 | export const value = [
26 | "support.constant.property-value",
27 | "support.constant.font-name",
28 | "meta.property-value.css",
29 | "meta.attribute.style.html",
30 | ];
31 |
32 | export const nums = ["constant.numeric"];
33 | export const tag = [
34 | "entity.name.tag.css",
35 | "meta.property-list.scss entity.name.tag.css",
36 | ];
37 |
--------------------------------------------------------------------------------
/src/variations/aquarelle.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const colors: ThemeColors = {
5 | blue: "#afd9ec",
6 | green: "#c3e5a1",
7 | greenAlt: "#d1e796",
8 | orange: "#f0bba2",
9 | pink: "#edc1ea",
10 | purple: "#bcb1f1",
11 | red: "#eca099",
12 | salmon: "#f3aabc",
13 | turquoize: "#a9edd9",
14 | yellow: "#f3e1ac",
15 | };
16 |
17 | const levels: ThemeLevels = {
18 | danger: "#e87a70",
19 | info: "#73bee9",
20 | success: "#aada77",
21 | warning: "#eea064",
22 | };
23 |
24 | export const aquarelleCymbidium: Theme = {
25 | colors,
26 | levels,
27 | ui: makeMainColorsDark({ base: "#2c252a", primary: "#da6e6c" }),
28 | };
29 |
30 | export const aquarelleHydrangea: Theme = {
31 | colors,
32 | levels,
33 | ui: makeMainColorsDark({ base: "#22273c", primary: "#6394f1" }),
34 | };
35 |
36 | export const aquarelleLilac: Theme = {
37 | colors,
38 | levels,
39 | ui: makeMainColorsDark({ base: "#252433", primary: "#9587ff" }),
40 | };
41 |
--------------------------------------------------------------------------------
/src/variations/arc.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const arcColors: ThemeColors = {
5 | blue: "#69C3FF",
6 | green: "#3CEC85",
7 | greenAlt: "#A4EF58",
8 | orange: "#FF955C",
9 | pink: "#F38CEC",
10 | purple: "#B78AFF",
11 | red: "#E35535",
12 | salmon: "#FF738A",
13 | turquoize: "#22ECDB",
14 | yellow: "#EACD61",
15 | };
16 |
17 | const arcLevels: ThemeLevels = {
18 | danger: arcColors.red,
19 | info: arcColors.blue,
20 | success: arcColors.green,
21 | warning: arcColors.orange,
22 | };
23 |
24 | export const arc: Theme = {
25 | colors: arcColors,
26 | levels: arcLevels,
27 | ui: makeMainColorsDark({ base: "#1c2433", primary: "#8196b5" }),
28 | };
29 |
30 | export const arcEolstorm: Theme = {
31 | colors: arcColors,
32 | levels: arcLevels,
33 | ui: makeMainColorsDark({ base: "#222A38", primary: "#9DACC3" }),
34 | };
35 |
36 | export const arcBlueBerry: Theme = {
37 | colors: arcColors,
38 | levels: arcLevels,
39 | ui: makeMainColorsDark({ base: "#111422", primary: "#8eb0e6" }),
40 | };
41 |
42 | export const arcEggplant: Theme = {
43 | colors: arcColors,
44 | levels: arcLevels,
45 | ui: makeMainColorsDark({ base: "#181421", primary: "#9698d8" }),
46 | };
47 |
48 | export const arcReversed: Theme = {
49 | colors: arcColors,
50 | levels: arcLevels,
51 | ui: makeMainColorsDark({
52 | base: "#161c28",
53 | primary: "#8196b5",
54 | reversed: true,
55 | }),
56 | };
57 |
--------------------------------------------------------------------------------
/src/variations/black.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const base = "#111418";
5 | const blackColors: ThemeColors = {
6 | blue: "#11B7D4",
7 | green: "#00a884",
8 | greenAlt: "#3585bb",
9 | orange: "#d4770c",
10 | pink: "#d46ec0",
11 | purple: "#a85ff1",
12 | red: "#E35535",
13 | salmon: "#c62f52",
14 | turquoize: "#38c7bd",
15 | yellow: "#c7910c",
16 | };
17 |
18 | const blackLevels: ThemeLevels = {
19 | danger: blackColors.red,
20 | info: blackColors.blue,
21 | success: blackColors.green,
22 | warning: blackColors.orange,
23 | };
24 |
25 | // Gold
26 | export const blackAndGold: Theme = {
27 | colors: blackColors,
28 | levels: blackLevels,
29 | ui: makeMainColorsDark({ base, primary: blackColors.yellow }),
30 | };
31 |
32 | export const blackAndGoldSoft: Theme = {
33 | colors: blackColors,
34 | levels: blackLevels,
35 | ui: makeMainColorsDark({ base: "#221f1d", primary: blackColors.yellow }),
36 | };
37 |
38 | // Ruby
39 | export const blackAndRuby: Theme = {
40 | colors: blackColors,
41 | levels: blackLevels,
42 | ui: makeMainColorsDark({ base, primary: blackColors.salmon }),
43 | };
44 |
45 | export const blackAndRubySoft: Theme = {
46 | colors: blackColors,
47 | levels: blackLevels,
48 | ui: makeMainColorsDark({ base: "#281a21", primary: blackColors.salmon }),
49 | };
50 |
51 | // Emerald
52 | export const blackAndEmerald: Theme = {
53 | colors: blackColors,
54 | levels: blackLevels,
55 | ui: makeMainColorsDark({ base, primary: blackColors.turquoize }),
56 | };
57 |
58 | export const blackAndEmeraldSoft: Theme = {
59 | colors: blackColors,
60 | levels: blackLevels,
61 | ui: makeMainColorsDark({ base: "#162226", primary: blackColors.turquoize }),
62 | };
63 |
64 | // Diamond
65 | export const blackAndDiamond: Theme = {
66 | colors: blackColors,
67 | levels: blackLevels,
68 | ui: makeMainColorsDark({ base, primary: blackColors.blue }),
69 | };
70 |
71 | export const blackAndDiamondSoft: Theme = {
72 | colors: blackColors,
73 | levels: blackLevels,
74 | ui: makeMainColorsDark({ base: "#161d26", primary: blackColors.blue }),
75 | };
76 |
77 | // Amethyst
78 | export const blackAndAmethyst: Theme = {
79 | colors: blackColors,
80 | levels: blackLevels,
81 | ui: makeMainColorsDark({ base, primary: blackColors.purple }),
82 | };
83 |
84 | export const blackAndAmethystSoft: Theme = {
85 | colors: blackColors,
86 | levels: blackLevels,
87 | ui: makeMainColorsDark({ base: "#171626", primary: blackColors.purple }),
88 | };
89 |
--------------------------------------------------------------------------------
/src/variations/classics.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark, makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const classicsColors: ThemeColors = {
5 | blue: "#3398DB",
6 | green: "#37ae6f",
7 | greenAlt: "#7E9E2D",
8 | orange: "#D26D32",
9 | pink: "#CC71BC",
10 | purple: "#935cd1",
11 | red: "#C13838",
12 | salmon: "#de456b",
13 | turquoize: "#24B5A8",
14 | yellow: "#c9a022",
15 | };
16 |
17 | const levels: ThemeLevels = {
18 | danger: classicsColors.red,
19 | info: classicsColors.blue,
20 | success: classicsColors.green,
21 | warning: classicsColors.yellow,
22 | };
23 |
24 | export const anthracite: Theme = {
25 | colors: classicsColors,
26 | levels,
27 | ui: makeMainColorsDark({ base: "#181a1f", primary: "#a2abb6" }),
28 | };
29 |
30 | export const light: Theme = {
31 | colors: {
32 | blue: "#0073d1",
33 | green: "#189433",
34 | greenAlt: "#5e8516",
35 | orange: "#d06200",
36 | pink: "#e022b4",
37 | purple: "#8737e6",
38 | red: "#d03333",
39 | salmon: "#e8386a",
40 | turquoize: "#009999",
41 | yellow: "#bb9600",
42 | },
43 | levels: {
44 | danger: "#ac2121",
45 | info: "#0468bf",
46 | success: "#14852a",
47 | warning: "#bc7400",
48 | },
49 | ui: makeMainColorsLight({
50 | base: "#f3f4f5",
51 | primary: "#22a5c9",
52 | }),
53 | };
54 |
--------------------------------------------------------------------------------
/src/variations/colorblind.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors } from "../typing";
3 |
4 | const ui = makeMainColorsDark({ base: "#1b1e28", primary: "#9887eb" });
5 |
6 | // https://davidmathlogic.com/colorblind/#%23FF5B82-%2338FFA1-%23FFAF86-%2332A7FF-%23F5DEC1-%23C9FFAE-%23FF97BF-%2300F0FD-%235F77DC-%234AE0D1
7 | const colorsColorBlind: ThemeColors = {
8 | blue: "#32A7FF",
9 | green: "#38FFA1",
10 | greenAlt: "#C9FFAE",
11 | orange: "#FFAF86",
12 | pink: "#FF97BF",
13 | purple: "#5F77DC",
14 | red: "#FF5B82",
15 | salmon: "#00F0FD",
16 | turquoize: "#4AE0D1",
17 | yellow: "#F5DEC1",
18 | };
19 |
20 | export const colorBlind: Theme = {
21 | colors: colorsColorBlind,
22 | levels: {
23 | danger: colorsColorBlind.red,
24 | info: colorsColorBlind.blue,
25 | success: colorsColorBlind.green,
26 | warning: colorsColorBlind.orange,
27 | },
28 | ui,
29 | };
30 |
--------------------------------------------------------------------------------
/src/variations/exotic.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark, makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeLevels } from "../typing";
3 |
4 | const levels: ThemeLevels = {
5 | danger: "#C13838",
6 | info: "#04c4d9",
7 | success: "#14b871",
8 | warning: "#cc8c39",
9 | };
10 |
11 | export const earth: Theme = {
12 | colors: {
13 | blue: "#BA9D6F",
14 | green: "#639E29",
15 | greenAlt: "#7E9E2D",
16 | orange: "#D1711D",
17 | pink: "#A8547A",
18 | purple: "#BAB13B",
19 | red: "#C13838",
20 | salmon: "#D65151",
21 | turquoize: "#4EAAA4",
22 | yellow: "#C48519",
23 | },
24 | levels,
25 | ui: makeMainColorsDark({
26 | base: "#221b1b",
27 | fontTeinted: true,
28 | primary: "#d35386",
29 | primaryAlt: "#40222e",
30 | }),
31 | };
32 |
33 | export const coffee: Theme = {
34 | colors: {
35 | blue: "#6EDDD6",
36 | green: "#9DCC57",
37 | greenAlt: "#7E9E2D",
38 | orange: "#ffa777",
39 | pink: "#E480AD",
40 | purple: "#9991F1",
41 | red: "#f24343",
42 | salmon: "#f77a6a",
43 | turquoize: "#3ceaa8",
44 | yellow: "#f7d979",
45 | },
46 | levels: {
47 | danger: "#f24343",
48 | info: "#6EDDD6",
49 | success: "#94D652",
50 | warning: "#ffa777",
51 | },
52 | ui: makeMainColorsDark({
53 | base: "#292423",
54 | fontTeinted: true,
55 | primary: "#F09177",
56 | primaryAlt: "#51403b",
57 | }),
58 | };
59 |
60 | export const coffeeReversed: Theme = {
61 | colors: {
62 | blue: "#6EDDD6",
63 | green: "#9DCC57",
64 | greenAlt: "#7E9E2D",
65 | orange: "#ffa777",
66 | pink: "#E480AD",
67 | purple: "#9991F1",
68 | red: "#f24343",
69 | salmon: "#f77a6a",
70 | turquoize: "#3ceaa8",
71 | yellow: "#f7d979",
72 | },
73 | levels: {
74 | danger: "#f24343",
75 | info: "#6EDDD6",
76 | success: "#94D652",
77 | warning: "#ffa777",
78 | },
79 | ui: makeMainColorsDark({
80 | base: "#201c1b",
81 | fontTeinted: true,
82 | primary: "#F09177",
83 | primaryAlt: "#51403b",
84 | reversed: true,
85 | }),
86 | };
87 |
88 | export const coffeeCream: Theme = {
89 | colors: {
90 | blue: "#008ea4",
91 | green: "#4d9900",
92 | greenAlt: "#6f8e20",
93 | orange: "#ce6700",
94 | pink: "#CE4985",
95 | purple: "#7056c4",
96 | red: "#dc2e2e",
97 | salmon: "#D8573E",
98 | turquoize: "#009b74",
99 | yellow: "#ad8200",
100 | },
101 | levels: {
102 | danger: "#FF3A3A",
103 | info: "#009DB5",
104 | success: "#51A200",
105 | warning: "#ce6700",
106 | },
107 | ui: makeMainColorsLight({
108 | base: "#EAE4E1",
109 | primary: "#D3694C",
110 | }),
111 | };
112 |
113 | export const voided: Theme = {
114 | colors: {
115 | blue: "#7A63ED",
116 | green: "#6DBBFF",
117 | greenAlt: "#2C729E",
118 | orange: "#3D8DE2",
119 | pink: "#A8547A",
120 | purple: "#2BD3E2",
121 | red: "#C13838",
122 | salmon: "#D65170",
123 | turquoize: "#89C4FF",
124 | yellow: "#585785",
125 | },
126 | levels,
127 | ui: makeMainColorsDark({ base: "#171322", primary: "#7A63ED" }),
128 | };
129 |
130 | export const altica: Theme = {
131 | colors: {
132 | blue: "#10bdc9",
133 | green: "#6bc793",
134 | greenAlt: "#2C729E",
135 | orange: "#0187a6",
136 | pink: "#A8547A",
137 | purple: "#9c8acf",
138 | red: "#C13838",
139 | salmon: "#d6724d",
140 | turquoize: "#0187a6",
141 | yellow: "#d6ac63",
142 | },
143 | levels,
144 | ui: {
145 | border: "#0a1217",
146 | default: "#c2ced1",
147 | defaultalt: "#45565c",
148 | defaultMain: "#9FADB1",
149 | primary: "#0187a6",
150 | primaryalt: "#15262e",
151 | uibackground: "#0f1c21",
152 | uibackgroundalt: "#0e171c",
153 | uibackgroundmid: "#0f1a1f",
154 | },
155 | };
156 |
--------------------------------------------------------------------------------
/src/variations/feat.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark, makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeColors } from "../typing";
3 |
4 | export const will: Theme = {
5 | colors: {
6 | blue: "#8ad0ff",
7 | green: "#5fee9b",
8 | greenAlt: "#A4EF58",
9 | orange: "#ffae82",
10 | pink: "#fda7f7",
11 | purple: "#c39eff",
12 | red: "#f7775a",
13 | salmon: "#ff8ea0",
14 | turquoize: "#44f8e9",
15 | yellow: "#fce38a",
16 | },
17 | levels: {
18 | danger: "#f7775a",
19 | info: "#8ad0ff",
20 | success: "#5fee9b",
21 | warning: "#ffae82",
22 | },
23 | ui: {
24 | border: "#000000",
25 | default: "#bdb6d3",
26 | defaultalt: "#585775",
27 | defaultMain: "#bfb9da",
28 | primary: "#b498f5",
29 | primaryalt: "#231e36",
30 | uibackground: "#14111f",
31 | uibackgroundalt: "#0d0a14",
32 | uibackgroundmid: "#100e1a",
33 | },
34 | };
35 |
36 | const colorsGoldDRaynh: ThemeColors = {
37 | blue: "#3eb2ff",
38 | green: "#21ff7d",
39 | greenAlt: "#A4EF58",
40 | orange: "#ff823f",
41 | pink: "#e4ac73",
42 | purple: "#a167ff",
43 | red: "#f7775a",
44 | salmon: "#ff3d3d",
45 | turquoize: "#44f8e9",
46 | yellow: "#ffd000",
47 | };
48 |
49 | export const goldDRaynh: Theme = {
50 | colors: colorsGoldDRaynh,
51 | levels: {
52 | danger: colorsGoldDRaynh.red,
53 | info: colorsGoldDRaynh.blue,
54 | success: colorsGoldDRaynh.green,
55 | warning: colorsGoldDRaynh.orange,
56 | },
57 | ui: makeMainColorsDark({ base: "#0f1628", primary: "#e39000" }),
58 | };
59 |
60 | const colorsGoldDRaynhLight: ThemeColors = {
61 | blue: "#037ed1",
62 | green: "#03810d",
63 | greenAlt: "#75b138",
64 | orange: "#c0571f",
65 | pink: "#002e74",
66 | purple: "#7537d7",
67 | red: "#f7775a",
68 | salmon: "#1da90d",
69 | turquoize: "#009c8f",
70 | yellow: "#d0a00f",
71 | };
72 | export const goldDRaynhLight: Theme = {
73 | colors: colorsGoldDRaynhLight,
74 | levels: {
75 | danger: colorsGoldDRaynhLight.red,
76 | info: colorsGoldDRaynhLight.blue,
77 | success: colorsGoldDRaynhLight.green,
78 | warning: colorsGoldDRaynhLight.orange,
79 | },
80 | ui: makeMainColorsLight({
81 | base: "#f5f5f5",
82 | primary: "#2397e5",
83 | }),
84 | };
85 |
86 | const melleJulieColors: ThemeColors = {
87 | blue: "#63c0ff",
88 | green: "#71e893",
89 | greenAlt: "#a4c947",
90 | orange: "#edb492",
91 | pink: "#c3a1e5",
92 | purple: "#968ffb",
93 | red: "#e55454",
94 | salmon: "#9dcace",
95 | turquoize: "#50dbd4",
96 | yellow: "#ecd282",
97 | };
98 |
99 | export const melleJulie: Theme = {
100 | colors: melleJulieColors,
101 | levels: {
102 | danger: melleJulieColors.red,
103 | info: melleJulieColors.blue,
104 | success: melleJulieColors.green,
105 | warning: melleJulieColors.orange,
106 | },
107 | ui: makeMainColorsDark({ base: "#1c1f24", primary: "#63edef" }),
108 | };
109 |
110 | const melleJulieColorsLight: ThemeColors = {
111 | blue: "#1f89cf",
112 | green: "#2aa54d",
113 | greenAlt: "#81a622",
114 | orange: "#c97a2a",
115 | pink: "#ae6cbe",
116 | purple: "#7c68ef",
117 | red: "#d24545",
118 | salmon: "#39a9b4",
119 | turquoize: "#23716d",
120 | yellow: "#b48806",
121 | };
122 |
123 | export const melleJulieLight: Theme = {
124 | colors: melleJulieColorsLight,
125 | levels: {
126 | danger: melleJulieColorsLight.red,
127 | info: melleJulieColorsLight.blue,
128 | success: melleJulieColorsLight.green,
129 | warning: melleJulieColorsLight.orange,
130 | },
131 | ui: makeMainColorsLight({ base: "#edeeee", primary: "#218d8f" }),
132 | };
133 | export const webDevCody: Theme = {
134 | colors: {
135 | blue: "#82f0ff",
136 | green: "#f75f94",
137 | greenAlt: "#60e66f",
138 | orange: "#f75f94",
139 | pink: "#f75f94",
140 | purple: "#f75f94",
141 | red: "#ec5342",
142 | salmon: "#eeeeee",
143 | turquoize: "#f1d868",
144 | yellow: "#f1d868",
145 | },
146 | levels: {
147 | danger: "#e61e3f",
148 | info: "#f1d868",
149 | success: "#60e66f",
150 | warning: "#e3946a",
151 | },
152 | ui: makeMainColorsDark({
153 | base: "#00171a",
154 | primary: "#e95d74",
155 | primaryAlt: "#104c52",
156 | }),
157 | };
158 |
--------------------------------------------------------------------------------
/src/variations/hc.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const colors: ThemeColors = {
5 | blue: "#7fd7f5",
6 | green: "#AFEA7B",
7 | greenAlt: "#A4EF58",
8 | orange: "#ffaa7d",
9 | pink: "#e4a3df",
10 | purple: "#bc98ff",
11 | red: "#fd604f",
12 | salmon: "#EC7886",
13 | turquoize: "#22D3B1",
14 | yellow: "#F5DF76",
15 | };
16 |
17 | const arcLevels: ThemeLevels = {
18 | danger: colors.red,
19 | info: colors.blue,
20 | success: colors.green,
21 | warning: colors.orange,
22 | };
23 |
24 | export const HCEbony: Theme = {
25 | colors,
26 | levels: arcLevels,
27 | ui: makeMainColorsDark({ base: "#181820", primary: "#dbdeea" }),
28 | };
29 |
30 | export const HCMidnightVoid: Theme = {
31 | colors,
32 | levels: arcLevels,
33 | ui: makeMainColorsDark({ base: "#151f27", primary: "#dbefff" }),
34 | };
35 |
36 | export const HCWonderlandWood: Theme = {
37 | colors: {
38 | blue: "#92b4ff",
39 | green: "#91d6a7",
40 | greenAlt: "#A4EF58",
41 | orange: "#e4a792",
42 | pink: "#de98ae",
43 | purple: "#9a94e9",
44 | red: "#ff7e70",
45 | salmon: "#ed98cb",
46 | turquoize: "#7ddcbf",
47 | yellow: "#fbe7c3",
48 | },
49 | levels: {
50 | danger: "#ff7e70",
51 | info: "#92b4ff",
52 | success: "#91d6a7",
53 | warning: "#e4a792",
54 | },
55 | ui: makeMainColorsDark({
56 | base: "#1F1D36",
57 | primary: "#fbe7c3",
58 | primaryAlt: "#52426a",
59 | }),
60 | };
61 | export const HCBrewingStorm: Theme = {
62 | colors: {
63 | blue: "#82c4ff",
64 | green: "#9dffbd",
65 | greenAlt: "#A4EF58",
66 | orange: "#ffaf94",
67 | pink: "#f1c6ee",
68 | purple: "#b8b3ff",
69 | red: "#ff7e70",
70 | salmon: "#f994bf",
71 | turquoize: "#22D3B1",
72 | yellow: "#fff0a6",
73 | },
74 | levels: {
75 | danger: "#ff5e4c",
76 | info: "#3391e3",
77 | success: "#84ffad",
78 | warning: "#ff9d7c",
79 | },
80 | ui: makeMainColorsDark({
81 | base: "#0c2a42",
82 | primary: "#9dffd9",
83 | primaryAlt: "#2a5a5c",
84 | }),
85 | };
86 |
87 | export const HCFlurry: Theme = {
88 | colors: {
89 | blue: "#0aa3d6",
90 | green: "#41ad4e",
91 | greenAlt: "#589f11",
92 | orange: "#e3946a",
93 | pink: "#f08ad9",
94 | purple: "#b377e3",
95 | red: "#ee5f50",
96 | salmon: "#ed7b89",
97 | turquoize: "#00b696",
98 | yellow: "#e39c03",
99 | },
100 | levels: {
101 | danger: "#ee5f50",
102 | info: "#0aa3d6",
103 | success: "#41ad4e",
104 | warning: "#e3946a",
105 | },
106 | ui: {
107 | border: "#c2c8ce",
108 | default: "#272d34",
109 | defaultalt: "#898989",
110 | defaultMain: "#3f4750",
111 | primary: "#444c54",
112 | primaryalt: "#f9fbfe",
113 | uibackground: "#f5f8fc",
114 | uibackgroundalt: "#EAECEE",
115 | uibackgroundmid: "#f0f2f5",
116 | },
117 | };
118 |
119 | export const Minuit: Theme = {
120 | colors: {
121 | blue: "#4fc1e8",
122 | green: "#69d2ab",
123 | greenAlt: "#77b03e",
124 | orange: "#eea67f",
125 | pink: "#d995c9",
126 | purple: "#ad92ff",
127 | red: "#fb7a6c",
128 | salmon: "#e38d97",
129 | turquoize: "#17d7b4",
130 | yellow: "#dbc2a3",
131 | },
132 | levels: {
133 | danger: "#fb7a6c",
134 | info: "#4fc1e8",
135 | success: "#74be7d",
136 | warning: "#eea67f",
137 | },
138 | ui: makeMainColorsDark({
139 | base: "#1C1827",
140 | primary: "#ecc48c",
141 | primaryAlt: "#635345",
142 | }),
143 | };
144 | export const ChocolateEspresso: Theme = {
145 | colors: {
146 | blue: "#17d7d7",
147 | green: "#69d293",
148 | greenAlt: "#77b03e",
149 | orange: "#f69662",
150 | pink: "#d995c9",
151 | purple: "#ad92ff",
152 | red: "#fb7a6c",
153 | salmon: "#f08390",
154 | turquoize: "#17d7c4",
155 | yellow: "#edbc7f",
156 | },
157 | levels: {
158 | danger: "#fb7a6c",
159 | info: "#4fc1e8",
160 | success: "#74be7d",
161 | warning: "#eea67f",
162 | },
163 | ui: makeMainColorsDark({
164 | base: "#2e2424",
165 | fontTeinted: true,
166 | primary: "#f69c95",
167 | primaryAlt: "#5d423d",
168 | }),
169 | };
170 |
--------------------------------------------------------------------------------
/src/variations/milkshake.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const colors: ThemeColors = {
5 | blue: "#0076c5",
6 | green: "#008b17",
7 | greenAlt: "#668b07",
8 | orange: "#b96000",
9 | pink: "#c121a4",
10 | purple: "#7522d3",
11 | red: "#d12525",
12 | salmon: "#da2a5f",
13 | turquoize: "#008f8f",
14 | yellow: "#c08403",
15 | };
16 |
17 | const levels: ThemeLevels = {
18 | danger: colors.red,
19 | info: colors.blue,
20 | success: colors.green,
21 | warning: colors.yellow,
22 | };
23 |
24 | export const milkshakeRaspberry: Theme = {
25 | colors,
26 | levels,
27 | ui: makeMainColorsLight({
28 | base: "#f1e8eb",
29 | primary: "#d1174f",
30 | primaryAlt: "#f6eff1",
31 | }),
32 | };
33 |
34 | export const milkshakeBlueberry: Theme = {
35 | colors,
36 | levels,
37 | ui: makeMainColorsLight({
38 | base: "#dad9eb",
39 | primary: "#422eb0",
40 | }),
41 | };
42 |
43 | export const milkshakeMango: Theme = {
44 | colors,
45 | levels,
46 | ui: makeMainColorsLight({
47 | base: "#f3eae3",
48 | primary: "#bd4f27",
49 | }),
50 | };
51 |
52 | export const milkshakeMint: Theme = {
53 | colors,
54 | levels,
55 | ui: makeMainColorsLight({
56 | base: "#edf3ee",
57 | primary: "#2a9b7d",
58 | }),
59 | };
60 |
61 | export const milkshakeVanilla: Theme = {
62 | colors,
63 | levels,
64 | ui: makeMainColorsLight({
65 | base: "#ece7da",
66 | primary: "#937416",
67 | }),
68 | };
69 |
--------------------------------------------------------------------------------
/src/variations/monokai.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const colors: ThemeColors = {
5 | blue: "#78dce8",
6 | green: "#a9dc76",
7 | greenAlt: "#b7d175",
8 | orange: "#fc9867",
9 | pink: "#e991e3",
10 | purple: "#ab9df2",
11 | red: "#fc6a67",
12 | salmon: "#ff6188",
13 | turquoize: "#78e8c6",
14 | yellow: "#ffd866",
15 | };
16 |
17 | const levels: ThemeLevels = {
18 | danger: colors.red,
19 | info: colors.blue,
20 | success: colors.green,
21 | warning: colors.yellow,
22 | };
23 |
24 | export const monokaiTerra: Theme = {
25 | colors,
26 | levels,
27 | ui: makeMainColorsDark({ base: "#262329", primary: "#b0a2a6" }),
28 | };
29 |
30 | export const monokaiMetallian: Theme = {
31 | colors,
32 | levels,
33 | ui: makeMainColorsDark({ base: "#1e212b", primary: "#98a2b5" }),
34 | };
35 |
36 | export const monokaiStone: Theme = {
37 | colors,
38 | levels,
39 | ui: makeMainColorsDark({ base: "#2A2D33", primary: "#9AA2A6" }),
40 | };
41 |
42 | export const monokaiBlack: Theme = {
43 | colors,
44 | levels,
45 | ui: makeMainColorsDark({ base: "#141414", primary: "#8f8f8f" }),
46 | };
47 |
48 | export const monokaiReversed: Theme = {
49 | colors,
50 | levels,
51 | ui: makeMainColorsDark({
52 | base: "#171921",
53 | primary: "#98a2b5",
54 | reversed: true,
55 | }),
56 | };
57 |
--------------------------------------------------------------------------------
/src/variations/oled.ts:
--------------------------------------------------------------------------------
1 | import { colord as c } from "colord";
2 |
3 | import { makeMainColorsDark } from "../helper";
4 | import { Theme, ThemeColors, ThemeLevels, ThemeUi } from "../typing";
5 |
6 | const pureBlack = "#000000";
7 |
8 | const oledColors: ThemeColors = {
9 | blue: "#63BBE5",
10 | green: "#5CD4C3",
11 | greenAlt: "#6EA7E8",
12 | orange: "#E79E69",
13 | pink: "#E48CC5",
14 | purple: "#B69EDE",
15 | red: "#E87474",
16 | salmon: "#DE8199",
17 | turquoize: "#6AD3CD",
18 | yellow: "#E0CF77",
19 | };
20 |
21 | const oledLevels: ThemeLevels = {
22 | danger: oledColors.red,
23 | info: oledColors.blue,
24 | success: oledColors.green,
25 | warning: oledColors.orange,
26 | };
27 |
28 | /**
29 | * Creates a UI theme optimized for OLED screens with custom border colors
30 | * @param primary The primary accent color for the theme
31 | * @param borderBrightness The brightness level for borders (0-1)
32 | * @returns ThemeUi configuration with optimized OLED colors
33 | */
34 | function makeOLEDThemeUI(
35 | primary: string,
36 | borderBrightness: number = 0.1,
37 | ): ThemeUi {
38 | const standardUI = makeMainColorsDark({ base: pureBlack, primary });
39 |
40 | return {
41 | ...standardUI,
42 | border: c(pureBlack).lighten(borderBrightness).toHex(),
43 | defaultalt: c("#2b2b2b").lighten(borderBrightness).toHex(),
44 | primaryalt: "#151515",
45 | };
46 | }
47 |
48 | export const oled: Theme = {
49 | colors: oledColors,
50 | levels: oledLevels,
51 | ui: makeOLEDThemeUI("#688eff", 0.15),
52 | };
53 |
--------------------------------------------------------------------------------
/src/variations/solarized.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark, makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const solarizedColors: ThemeColors = {
5 | blue: "#4db0f7",
6 | green: "#a5b82e",
7 | greenAlt: "#97e24c",
8 | orange: "#e8913b",
9 | pink: "#df96d9",
10 | purple: "#858bf7",
11 | red: "#f45645",
12 | salmon: "#f154a0",
13 | turquoize: "#26bbae",
14 | yellow: "#e2ae10",
15 | };
16 |
17 | const solarizedLevels: ThemeLevels = {
18 | danger: solarizedColors.red,
19 | info: solarizedColors.blue,
20 | success: solarizedColors.green,
21 | warning: solarizedColors.yellow,
22 | };
23 |
24 | export const solarizedDark: Theme = {
25 | colors: solarizedColors,
26 | levels: solarizedLevels,
27 | ui: makeMainColorsDark({ base: "#132c34", primary: "#47cfc4" }),
28 | };
29 |
30 | export const solarizedReversed: Theme = {
31 | colors: solarizedColors,
32 | levels: solarizedLevels,
33 | ui: makeMainColorsDark({
34 | base: "#102128",
35 | primary: "#47cfc4",
36 | reversed: true,
37 | }),
38 | };
39 |
40 | export const solarizedLight: Theme = {
41 | colors: {
42 | blue: "#2c97e3",
43 | green: "#819501",
44 | greenAlt: "#56a506",
45 | orange: "#ca6f13",
46 | pink: "#c64fbc",
47 | purple: "#666bd6",
48 | red: "#eb4937",
49 | salmon: "#e74492",
50 | turquoize: "#1aaca0",
51 | yellow: "#cf9c01",
52 | },
53 | levels: solarizedLevels,
54 | ui: makeMainColorsLight({
55 | base: "#fdf6e3",
56 | desaturated: true,
57 | primary: "#2aa198",
58 | }),
59 | };
60 |
61 | // Oceanic
62 |
63 | const oceanicColors: ThemeColors = {
64 | blue: "#5fb2df",
65 | green: "#97c892",
66 | greenAlt: "#A4EF58",
67 | orange: "#DC8255",
68 | pink: "#d194cd",
69 | purple: "#978dd6",
70 | red: "#B4552D",
71 | salmon: "#ee5d75",
72 | turquoize: "#59c6c8",
73 | yellow: "#f6cc73",
74 | };
75 |
76 | export const oceanic: Theme = {
77 | colors: oceanicColors,
78 | levels: {
79 | danger: oceanicColors.salmon,
80 | info: oceanicColors.blue,
81 | success: oceanicColors.green,
82 | warning: oceanicColors.orange,
83 | },
84 | ui: makeMainColorsDark({
85 | base: "#1a2b34",
86 | primary: "#97c892",
87 | primaryAlt: "#284450",
88 | }),
89 | };
90 | export const oceanicReverded: Theme = {
91 | colors: oceanicColors,
92 | levels: {
93 | danger: oceanicColors.salmon,
94 | info: oceanicColors.blue,
95 | success: oceanicColors.green,
96 | warning: oceanicColors.orange,
97 | },
98 | ui: makeMainColorsDark({
99 | base: "#152229",
100 | primary: "#97c892",
101 | reversed: true,
102 | }),
103 | };
104 |
--------------------------------------------------------------------------------
/src/variations/stained.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors } from "../typing";
3 |
4 | const colors: ThemeColors = {
5 | blue: "#3398DB",
6 | green: "#37ae6f",
7 | greenAlt: "#7E9E2D",
8 | orange: "#D26D32",
9 | pink: "#CC71BC",
10 | purple: "#935cd1",
11 | red: "#C13838",
12 | salmon: "#de456b",
13 | turquoize: "#24B5A8",
14 | yellow: "#c9a022",
15 | };
16 |
17 | const levelColors = {
18 | danger: colors.red,
19 | info: colors.blue,
20 | success: colors.green,
21 | warning: colors.yellow,
22 | };
23 |
24 | export const stainedPurple: Theme = {
25 | colors,
26 | levels: levelColors,
27 | ui: makeMainColorsDark({ base: "#20192b", primary: "#a948ef" }),
28 | };
29 |
30 | export const stainedBlue: Theme = {
31 | colors,
32 | levels: levelColors,
33 | ui: makeMainColorsDark({ base: "#121726", primary: "#3A7FFF" }),
34 | };
35 |
--------------------------------------------------------------------------------
/src/variations/surprising.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const surprisingColors = (primary: string): ThemeColors => {
5 | return {
6 | blue: "#00B3BD",
7 | green: "#a9dc76",
8 | greenAlt: "#b7d175",
9 | orange: "#5288BA",
10 | pink: "#c47cbf",
11 | purple: "#CC9B52",
12 | red: "#C13838",
13 | salmon: "#B85C40",
14 | turquoize: primary,
15 | yellow: primary,
16 | };
17 | };
18 |
19 | const surprisingLevels: ThemeLevels = {
20 | danger: "#E35535",
21 | info: "#00B3BD",
22 | success: "#a9dc76",
23 | warning: "#d1a456",
24 | };
25 |
26 | const primarySurprisingEggplant = "#d24e4e";
27 | export const surprisingEggplant: Theme = {
28 | colors: surprisingColors(primarySurprisingEggplant),
29 | levels: surprisingLevels,
30 | ui: makeMainColorsDark({
31 | base: "#1d1426",
32 | primary: primarySurprisingEggplant,
33 | primaryAlt: "#441f30",
34 | }),
35 | };
36 |
37 | const primarySurprisingBlueberry = "#c93e71";
38 | export const surprisingBlueberry: Theme = {
39 | colors: surprisingColors(primarySurprisingBlueberry),
40 | levels: surprisingLevels,
41 | ui: makeMainColorsDark({
42 | base: "#101a29",
43 | primary: primarySurprisingBlueberry,
44 | primaryAlt: "#441f30",
45 | }),
46 | };
47 |
48 | const primarySurprisingWatermelon = "#da6c62";
49 | export const surprisingWatermelon: Theme = {
50 | colors: surprisingColors(primarySurprisingWatermelon),
51 | levels: surprisingLevels,
52 | ui: makeMainColorsDark({
53 | base: "#142326",
54 | primary: primarySurprisingWatermelon,
55 | primaryAlt: "#5f3333",
56 | }),
57 | };
58 |
--------------------------------------------------------------------------------
/src/variations/vivid.ts:
--------------------------------------------------------------------------------
1 | import { makeMainColorsDark, makeMainColorsLight } from "../helper";
2 | import { Theme, ThemeColors, ThemeLevels } from "../typing";
3 |
4 | const vividColors: ThemeColors = {
5 | blue: "#28A9FF",
6 | green: "#42DD76",
7 | greenAlt: "#b7d175",
8 | orange: "#FF7135",
9 | pink: "#E66DFF",
10 | purple: "#A95EFF",
11 | red: "#D62C2C",
12 | salmon: "#FF478D",
13 | turquoize: "#14E5D4",
14 | yellow: "#FFB638",
15 | };
16 |
17 | const vividLevels: ThemeLevels = {
18 | danger: vividColors.red,
19 | info: vividColors.blue,
20 | success: vividColors.green,
21 | warning: vividColors.yellow,
22 | };
23 |
24 | export const vividPurple: Theme = {
25 | colors: vividColors,
26 | levels: vividLevels,
27 | ui: makeMainColorsDark({
28 | base: "#171131",
29 | primary: "#A680FF",
30 | }),
31 | };
32 |
33 | export const vividBlack: Theme = {
34 | colors: vividColors,
35 | levels: vividLevels,
36 | ui: makeMainColorsDark({
37 | base: "#141417",
38 | primary: "#AAAAAA",
39 | }),
40 | };
41 |
42 | export const vividLight: Theme = {
43 | colors: {
44 | blue: "#0099ff",
45 | green: "#00ac39",
46 | greenAlt: "#6f9b00",
47 | orange: "#df6800",
48 | pink: "#E66DFF",
49 | purple: "#9c45ff",
50 | red: "#D62C2C",
51 | salmon: "#ff0062",
52 | turquoize: "#00b8a9",
53 | yellow: "#d48700",
54 | },
55 | levels: vividLevels,
56 | ui: makeMainColorsLight({
57 | base: "#f4f4f4",
58 | primary: "#7e7e7e",
59 | }),
60 | };
61 |
--------------------------------------------------------------------------------
/themes/bearded-theme-black-gold.json:
--------------------------------------------------------------------------------
1 | {"$schema":"vscode://schemas/color-theme","name":"BeardedTheme Black-gold","colors":{"contrastBorder":"#00000000","activityBar.background":"#0c0f11","activityBar.border":"#040506","activityBar.foreground":"#c7910c","activityBar.inactiveForeground":"#8a9eb7b3","activityBar.activeBorder":"#c7910c","activityBar.activeBackground":"#c7910c26","activityBarBadge.background":"#c7910c","activityBarBadge.foreground":"#0c0f11","activityBar.dropBorder":"#8a9eb733","welcomePage.tileBackground":"#a8adb310","welcomePage.tileBorder":"#a8adb320","welcomePage.tileHoverBackground":"#a8adb320","welcomePage.progress.background":"#1c2027","welcomePage.progress.foreground":"#c7910c","badge.background":"#c7910c","breadcrumb.background":"#111418","breadcrumbPicker.background":"#111418","button.background":"#c7910c75","button.foreground":"#c3c6cb","button.border":"#c7910c75","button.hoverBackground":"#c7910c90","extensionButton.foreground":"#c3c6cb","extensionButton.background":"#c7910c60","extensionButton.hoverBackground":"#c7910c90","extensionButton.prominentBackground":"#c7910c9d","extensionButton.prominentForeground":"#c3c6cb","extensionButton.prominentHoverBackground":"#c7910c","button.secondaryBackground":"#c7910c20","button.secondaryForeground":"#c3c6cb","button.secondaryHoverBackground":"#c7910c35","charts.foreground":"#c3c6cb","charts.lines":"#c3c6cb","charts.red":"#E35535","charts.blue":"#11B7D4","charts.yellow":"#c7910c","charts.orange":"#d4770c","charts.green":"#00a884","charts.purple":"#d46ec0","contrastActiveBorder":"#00000000","errorForeground":"#E35535","errorLens.hintForeground":"#11B7D499","errorLens.infoForeground":"#11B7D499","errorLens.errorForeground":"#E3553599","errorLens.warningForeground":"#d4770c99","focusBorder":"#3b4654","foreground":"#a8adb3AA","icon.foreground":"#a8adb3AA","selection.background":"#c7910c60","widget.shadow":"#04050630","profileBadge.background":"#c7910c","profileBadge.foreground":"#111418","commandCenter.border":"#040506","commandCenter.background":"#111418","commandCenter.activeBackground":"#1c202760","commandCenter.activeForeground":"#a8adb390","commandCenter.foreground":"#8a9eb7","checkbox.foreground":"#c3c6cb","debugExceptionWidget.background":"#1c2027","debugExceptionWidget.border":"#040506","debugToolBar.background":"#1c2027","toolbar.hoverBackground":"#8a9eb760","descriptionForeground":"#c3c6cb4d","disabledForeground":"#c3c6cb4d","diffEditor.border":"#040506","diffEditor.insertedTextBackground":"#00a88420","diffEditor.removedTextBackground":"#E3553525","diffEditor.diagonalFill":"#04050680","diffEditor.insertedTextBorder":"#00000000","diffEditor.removedTextBorder":"#00000000","diffEditorGutter.insertedLineBackground":"#00000000","diffEditorGutter.removedLineBackground":"#00000000","diffEditor.insertedLineBackground":"#00a88420","diffEditor.removedLineBackground":"#E3553525","diffEditorOverview.insertedForeground":"#00a88425","diffEditorOverview.removedForeground":"#E3553530","editorInlayHint.background":"#a8adb320","editorInlayHint.foreground":"#a8adb390","editorInlayHint.typeBackground":"#a85ff130","editorInlayHint.typeForeground":"#a85ff1aa","editorGhostText.border":"#00000000","editorGhostText.foreground":"#c3c6cb70","editorCursor.background":"#c7910c","editorBracketHighlight.foreground1":"#c7910c","editorBracketHighlight.foreground2":"#d46ec0","editorBracketHighlight.foreground3":"#11B7D4","editorBracketHighlight.foreground4":"#a85ff1","editorBracketHighlight.foreground5":"#38c7bd","editorBracketHighlight.foreground6":"#c62f52","editorBracketHighlight.unexpectedBracket.foreground":"#E35535","editor.foldBackground":"#0c0f11","editor.background":"#111418","editor.foreground":"#c3c6cb","editor.findMatchBackground":"#c7910c30","editor.findMatchBorder":"#c7910c60","editor.findMatchHighlightBackground":"#c7910c33","editor.findMatchHighlightBorder":"#c7910c4d","editor.hoverHighlightBackground":"#c7910c40","editor.lineHighlightBackground":"#c7910c0d","editor.lineHighlightBorder":"#c7910c20","editor.rangeHighlightBackground":"#c7910c33","editor.selectionBackground":"#c7910c40","editor.selectionForeground":"#c3c6cb","editor.inactiveSelectionBackground":"#c7910c40","editor.selectionHighlightBorder":"#c7910c40","editor.selectionHighlightBackground":"#c7910c15","editor.wordHighlightStrongBackground":"#c7910c40","editor.wordHighlightBorder":"#c7910c4d","editor.wordHighlightBackground":"#c7910c20","editorBracketMatch.background":"#c7910c40","editorBracketMatch.border":"#c7910c60","editorCodeLens.foreground":"#a8adb380","editorCursor.foreground":"#c7910c","editorGroup.border":"#040506","editorGroup.dropBackground":"#c7910c15","editorHoverWidget.background":"#1c2027","editorHoverWidget.border":"#040506","editorIndentGuide.background1":"#8a9eb733","editorIndentGuide.activeBackground1":"#8a9eb7cc","editorLink.activeForeground":"#c3c6cb","editorWarning.border":"#00000000","editorInfo.border":"#00000000","editorGutter.commentRangeForeground":"#1c2027","sash.hoverBorder":"#c7910c50","editorRuler.foreground":"#8a9eb733","editor.linkedEditingBackground":"#00c3e533","editorWarning.foreground":"#c7910c","editorWhitespace.foreground":"#8a9eb760","editorWidget.background":"#1c2027","editorWidget.resizeBorder":"#c7910c50","editorGutter.background":"#111418","editorGutter.addedBackground":"#00a884cc","editorGutter.deletedBackground":"#E35535cc","editorGutter.modifiedBackground":"#11B7D4cc","editorLineNumber.foreground":"#32383f","editorLineNumber.activeForeground":"#85929e","editorStickyScrollHover.background":"#1e232a","dropdown.foreground":"#c3c6cb","dropdown.background":"#15191e","dropdown.listBackground":"#15191e","dropdown.border":"#282d34","input.foreground":"#c3c6cb","input.background":"#15191e","input.border":"#282d34","input.placeholderForeground":"#555f6d","inputValidation.errorBackground":"#1c2027","inputValidation.errorBorder":"#c7910c","inputValidation.infoBackground":"#1c2027","inputValidation.infoBorder":"#c7910c","inputValidation.warningBackground":"#1c2027","inputValidation.warningBorder":"#c7910c","list.dropBackground":"#c7910c15","list.focusBackground":"#c7910c40","list.focusForeground":"#a8adb3","list.errorForeground":"#E35535","list.warningForeground":"#d4770c","list.highlightForeground":"#c7910c","list.activeSelectionForeground":"#c3c6cb","list.activeSelectionBackground":"#31384573","list.inactiveSelectionBackground":"#31384540","list.inactiveSelectionForeground":"#c3c6cb","list.hoverBackground":"#272c3633","list.hoverForeground":"#d1d3d7","quickInput.background":"#171b21","quickInputList.focusIconForeground":"#8a9eb7","quickInputTitle.background":"#0c0f11","quickInputList.focusForeground":"#ecedef","quickInput.foreground":"#c3c6cbb3","quickInputList.focusBackground":"#47516273","gitDecoration.modifiedResourceForeground":"#11B7D4","gitDecoration.deletedResourceForeground":"#E35535","gitDecoration.untrackedResourceForeground":"#00a884","gitDecoration.ignoredResourceForeground":"#8a9eb7","gitDecoration.conflictingResourceForeground":"#c7910c","menu.border":"#040506","menu.background":"#1c2027","menu.foreground":"#9b9fa7","menu.separatorBackground":"#04050665","menu.selectionForeground":"#ecedef","menubar.selectionBackground":"#1c2027","menubar.selectionForeground":"#a8adb3","merge.border":"#040506","merge.commonContentBackground":"#c7910c30","merge.commonHeaderBackground":"#c7910c80","merge.currentContentBackground":"#00a88430","merge.currentHeaderBackground":"#00a88480","merge.incomingContentBackground":"#11B7D430","merge.incomingHeaderBackground":"#11B7D480","editorOverviewRuler.border":"#040506","editorOverviewRuler.commonContentForeground":"#c7910c","editorOverviewRuler.currentContentForeground":"#E35535","editorOverviewRuler.incomingContentForeground":"#00a884","minimap.background":"#111418","minimap.errorHighlight":"#E35535","minimap.findMatchHighlight":"#c7910c","minimap.selectionHighlight":"#c7910c","minimap.selectionOccurrenceHighlight":"#c7910c","minimap.warningHighlight":"#d4770c","minimapGutter.addedBackground":"#00a884","minimapGutter.deletedBackground":"#E35535","minimapGutter.modifiedBackground":"#11B7D4","notificationCenterHeader.foreground":"#c3c6cb","notificationCenterHeader.background":"#1c2027","notifications.foreground":"#a8adb3","notifications.background":"#1c2027","notifications.border":"#040506","notificationLink.foreground":"#c7910c","notificationsErrorIcon.foreground":"#E35535","notificationsWarningIcon.foreground":"#d4770c","notificationsInfoIcon.foreground":"#11B7D4","panel.background":"#0f1215","panel.border":"#040506","panel.dropBorder":"#8a9eb780","panelSection.border":"#040506","panelTitle.activeBorder":"#c7910c","panelTitle.activeForeground":"#c7910c","panelTitle.inactiveForeground":"#8a9eb7","panelSectionHeader.background":"#151a1e","panelSectionHeader.foreground":"#c3c6cb","panelSectionHeader.border":"#040506","panelInput.border":"#262d36","peekViewEditor.background":"#191e24","peekViewEditorGutter.background":"#191e24","peekViewEditor.matchHighlightBackground":"#1c202740","peekViewResult.background":"#161a1f","peekViewResult.fileForeground":"#c3c6cb","peekViewResult.lineForeground":"#a8adb3","peekViewResult.matchHighlightBackground":"#c7910c80","peekViewEditor.matchHighlightBorder":"#00000000","peekViewResult.selectionBackground":"#c7910c33","peekViewResult.selectionForeground":"#c3c6cb","peekViewTitle.background":"#1c2027","peekView.border":"#040506","peekViewTitleDescription.foreground":"#c3c6cb","peekViewTitleLabel.foreground":"#c3c6cb","peekViewEditorStickyScroll.background":"#191e24","editorMarkerNavigation.background":"#0c0f11","editorMarkerNavigationError.background":"#E3553590","editorMarkerNavigationWarning.background":"#d4770c90","editorMarkerNavigationInfo.background":"#11B7D490","editorError.border":"#00000000","editorError.foreground":"#E35535","pickerGroup.border":"#040506","pickerGroup.foreground":"#c3c6cb","progressBar.background":"#c7910c","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#c7910c40","scrollbarSlider.background":"#c7910c20","scrollbarSlider.hoverBackground":"#c7910c30","settings.modifiedItemIndicator":"#c7910c","settings.headerForeground":"#c7910c","keybindingLabel.background":"#1c2027","keybindingLabel.foreground":"#80858f","keybindingLabel.border":"#4f535a","keybindingLabel.bottomBorder":"#4f535a","sideBar.background":"#0c0f11","sideBar.border":"#040506","sideBar.foreground":"#a8adb3CC","sideBarSectionHeader.background":"#0c0f11","sideBarSectionHeader.foreground":"#c3c6cb","sideBarSectionHeader.border":"#040506","sideBarTitle.foreground":"#8a9eb7","tree.indentGuidesStroke":"#8a9eb770","statusBar.background":"#0c0f11","statusBar.border":"#040506","statusBar.foreground":"#a8adb380","statusBar.debuggingBackground":"#000000","statusBar.debuggingForeground":"#b88d5b","statusBar.noFolderBackground":"#0c0f11","statusBar.noFolderBorder":"#040506","statusBarItem.hoverBackground":"#a8adb31a","statusBar.noFolderForeground":"#a8adb3cc","statusBarItem.activeBackground":"#1c2027","statusBarItem.errorBackground":"#e35535","statusBarItem.errorHoverBackground":"#e6684b","statusBarItem.errorForeground":"#160703","statusBarItem.warningBackground":"#d4770c","statusBarItem.warningHoverBackground":"#ec850d","statusBarItem.warningForeground":"#000000","statusBarItem.prominentBackground":"#c7910c","statusBarItem.prominentHoverBackground":"#dfa30d","statusBarItem.prominentForeground":"#000000","statusBarItem.offlineBackground":"#d46ec0","statusBarItem.offlineHoverBackground":"#da82c9","statusBarItem.offlineForeground":"#340f2d","statusBarItem.remoteBackground":"#38c7bd","statusBarItem.remoteHoverBackground":"#4ccdc4","statusBarItem.remoteForeground":"#000000","editorSuggestWidget.background":"#111418","editorSuggestWidget.border":"#040506","editorSuggestWidget.foreground":"#a8adb3","editorSuggestWidget.highlightForeground":"#c7910c","editorSuggestWidget.selectedBackground":"#c7910c4d","editorGroupHeader.noTabsBackground":"#111418","editorGroupHeader.tabsBackground":"#0c0f11","editorGroupHeader.tabsBorder":"#040506","editorGroupHeader.border":"#00000000","tab.activeBackground":"#111418","tab.activeForeground":"#c7910c","tab.activeBorderTop":"#c7910c","tab.activeBorder":"#111418","tab.border":"#040506","tab.hoverBackground":"#111418","tab.inactiveBackground":"#0c0f11","tab.inactiveForeground":"#8a9eb7","tab.unfocusedHoverBackground":"#111418","tab.unfocusedActiveForeground":"#c7910c","tab.unfocusedInactiveForeground":"#8a9eb7","tab.unfocusedActiveBorder":"#111418","tab.lastPinnedBorder":"#040506","terminal.ansiBlack":"#111418","terminal.ansiRed":"#E35535","terminal.ansiGreen":"#00a884","terminal.ansiYellow":"#c7910c","terminal.ansiBlue":"#11B7D4","terminal.ansiMagenta":"#d46ec0","terminal.ansiCyan":"#38c7bd","terminal.ansiWhite":"#c3c6cb","terminal.ansiBrightBlack":"#11B7D4","terminal.ansiBrightRed":"#E35535","terminal.ansiBrightGreen":"#00a884","terminal.ansiBrightYellow":"#c7910c","terminal.ansiBrightBlue":"#11B7D4","terminal.ansiBrightMagenta":"#d46ec0","terminal.ansiBrightCyan":"#38c7bd","terminal.ansiBrightWhite":"#c3c6cb","terminal.background":"#0f1215","terminal.foreground":"#c3c6cb","terminalCursor.background":"#111418","terminalCursor.foreground":"#c7910c","terminal.selectionForeground":"#c3c6cb","textBlockQuote.background":"#11B7D434","textBlockQuote.border":"#11B7D4b9","textCodeBlock.background":"#11B7D434","textLink.activeForeground":"#11B7D4","textLink.foreground":"#11B7D4","textPreformat.foreground":"#c7910c","textSeparator.foreground":"#c7910c","walkThrough.embeddedEditorBackground":"#111418","titleBar.activeBackground":"#0c0f11","titleBar.activeForeground":"#8a9eb7","titleBar.inactiveBackground":"#040506","titleBar.inactiveForeground":"#8a9eb7","titleBar.border":"#040506","editorUnnecessaryCode.border":"#00000000","editorUnnecessaryCode.opacity":"#000000aa"},"tokenColors":[{"scope":["support.module.elm","entity.other.inherited-class.python","variable.other.object","support.other.namespace.php","entity.other.attribute-name.namespace.xml","record.accessor","entity.name.record.field.accessor","storage.modifier.import.java","storage.modifier.import.groovy","meta.import.swift entity.name.type.swift","meta.member.access.python","variable.other.property.ts","variable.other.property.js","constant.language.symbol.elixir","punctuation.tag.liquid support.class.liquid","meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell","meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell"],"settings":{"foreground":"#d4770c"}},{"scope":["entity.name.type"],"settings":{"foreground":"#3585bb"}},{"scope":["comment","punctuation.definition.comment","string.quoted.docstring.multi","comment.block.documentation source"],"settings":{"foreground":"#8a9eb7","fontStyle":"italic"}},{"scope":["constant","support.constant.core.php"],"settings":{"foreground":"#E35535"}},{"scope":["meta.section.struct.go variable.other.field.go","meta.section.struct.go variable.other.declaration.go","source","support","constant.character.entity.named","meta.jsx.children","source.lua","text.html.derivative","source.graphql meta.selections variable.other.alias.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql variable.graphql","source.graphql variable.arguments.graphql"],"settings":{"foreground":"#a8adb3"}},{"scope":["entity.name.function.decorator","meta.decorator entity.name.function","meta.decorator punctuation.decorator","punctuation.definition.decorator","meta.decorator variable.other.readwrite.ts","variable.parameter.gdscript","entity.name.variable.parameter","variable.parameter"],"settings":{"foreground":"#d46ec0"}},{"scope":["keyword.control.export","support.type.object.module"],"settings":{"foreground":"#c7910c"}},{"scope":["support.function","entity.name.function","meta.function-call","meta.function","meta.method.declaration","meta.function-call support","variable.language.super.ts","source.directive","meta.function-call.generic","meta.method-call.static.php","meta.method-call.php","meta.class storage.type","meta.method.groovy","meta.bracket.square.access","entity.name.function-call.elixir","punctuation.output.liquid support.variable.liquid","meta.function.echo.edge source.js keyword.operator.error-control.js","entity.name.type.variant.gdscript","entity.name.function.powershell"],"settings":{"foreground":"#11B7D4"}},{"scope":["keyword.control.import","meta.module.name.elm support","meta.import.elm support","keyword.control.at-rule","punctuation.definition.keyword","variable.control.import.include","keyword.other.import.java"],"settings":{"foreground":"#c7910c"}},{"scope":["keyword.package.go","keyword.operator.pointer.go","keyword.control","keyword.control.conditional","storage.modifier","keyword.operator.new","keyword.operator.expression","keyword.begin.blade","keyword.end.blade","keyword.blade","keyword.type-alias","keyword.type","support.class.console","keyword.other.await","storage.type.class.jsdoc","punctuation.definition.block.tag.jsdoc","keyword.other.new","keyword.other.phpdoc","keyword.other.use.php","keyword.operator.logical.python","keyword.other.import.static.groovy","keyword.other.import.groovy","punctuation.definition.attribute.swift","source.svelte meta.scope.tag.main.svelte meta.tag.start.svelte variable.function.svelte","meta.directive.on.svelte entity.name.type.svelte","keyword.other.special-method.elixir","keyword.edge","entity.name.function.edge","support.constant.edge","keyword.other.gdscript","keyword.other.onready.gdscript","source.graphql meta.fragment.graphql keyword.on.graphql","source.graphql meta.type.interface.graphql keyword.implements.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql keyword.operator.nulltype.graphql","source.graphql meta.variables.graphql keyword.operator.nulltype.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql keyword.operator.nulltype.graphql","keyword.operator.class.php","keyword.operator.spread.php","keyword.operator.type.php","keyword.operator.increment-decrement.php","keyword.operator.increment-increment.php","punctuation.support.type.property-name.begin.json","punctuation.support.type.property-name.end.json","keyword.operator.string.php","keyword.operator.ternary.php","keyword.operator.variadic.php","keyword.operator.nullable-type.php","keyword.other.use-as.php","keyword.import.go","keyword.operator.address.go","keyword.operator.null-coalescing","keyword.operator.arrow","keyword.struct.go","keyword.operator.liquid","keyword.operator.optional.ts","keyword.cmake"],"settings":{"foreground":"#c7910c"}},{"scope":["meta.object-literal.key","variable.object.property"],"settings":{"foreground":"#c3c6cb"}},{"scope":["keyword.other.definition.ini","support.type.property-name","entity.name.tag.yaml"],"settings":{"foreground":"#c7910c"}},{"scope":["keyword.operator.comparison","storage.type.function.arrow","keyword.operator.lua","keyword.operator.assignment","keyword.operator.relational","keyword.operator.increment","keyword.operator.decrement","keyword.operator.logical","keyword.operator.arithmetic","keyword.operator.math"],"settings":{"foreground":"#c7910c"}},{"scope":["punctuation","attribute_value","meta.brace","punctuation.definition.parameters","punctuation.definition.template-expression","keyword.operator","keyword.other","punctuation.terminator","punctuation.separator","punctuation.definition.generic.begin","punctuation.definition.generic.end","meta.function.type-declaration","keyword.other.colon.elm","meta.record.field.elm keyword.other.elm","keyword.other.period.elm","meta.tag.xml","meta.tag.preprocessor.xml","punctuation.definition.block","punctuation.accessor","constant.name.attribute.tag.pug","string.interpolated.pug","keyword.other.whitespace.liquid","meta.tag.template.block.twig","meta.tag.template.value.twig","begin.bracket","end.bracket","text.html.twig meta.tag.inline.any","text.html.twig meta.tag.block.any","support.function.construct.begin.blade","support.function.construct.end.blade source.php","support.function.construct.end.blade","meta.function.echo.blade source.php","punctuation.definition.list.begin.python","punctuation.definition.list.end.python","text.html.vue-html meta.tag.block.any","keyword.operator.assignment.tsx","meta.definition.method.signature.java","meta.class.body.groovy","meta.definition.method.groovy meta.method.body.java meta.declaration.assertion.groovy","punctuation.definition.list.begin.erlang","meta.expression.parenthesized","meta.definition.function.swift meta.parameter-clause.swift","source.swift meta.function-call.swift","punctuation.section.embedded.end.swift source.swift","source.lua","meta.function.lua","punctuation.definition.keyword.svelte","source.svelte meta.scope.tag.SpeakerPicture.svelte meta.tag.start.svelte entity.other.attribute-name.svelte","expression.embbeded.vue punctuation.definition.tag.begin.html.vue","expression.embbeded.vue punctuation.definition.tag.end.html.vue","source.graphql\tmeta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql meta.brace.square.graphql","punctuation.output.liquid","text.html.liquid meta.tag.liquid punctuation.definition.tag.end.liquid"],"settings":{"foreground":"#c3c6cb60"}},{"scope":["entity.name.package.go","variable.language.this","variable.language.special.self","variable.parameter.function.language.special.self","variable.language.this.php punctuation.definition.variable.php","meta.class.body.php storage.type.php","variable.parameter.function.swift entity.name.function.swift","variable.other.jsdoc","support.variable.drive.powershell"],"settings":{"foreground":"#d4770c"}},{"scope":["storage","meta.var.expr storage.type","storage.type.function","keyword.function","storage.type.class","storage.type.property","keyword.other","keyword.local.lua","entity.name.class","meta.function.lua keyword.control.lua","storage.type.enum","storage.type.interface","storage.type.type","entity.name.type.class.java","support.class.php","entity.other.inherited-class.php","entity.name.type.class.groovy","storage.type.rust","entity.name.type.class.swift","source.svelte meta.script.svelte source.ts entity.name.label.ts","meta.directive.on.svelte keyword.control.svelte","storage.type.const.gdscript","storage.type.var.gdscript","source.graphql declaration.meta.type keyword","source.graphql meta.type.interface.graphql keyword.type.graphql","source.graphql keyword.schema.graphql","source.graphql keyword.operation.graphql","source.graphql meta.enum.graphql keyword.enum.graphql","source.graphql meta.fragment.graphql keyword.fragment.graphql","storage.type.trait.php","keyword.type.go","keyword.var.go","storage.type.powershell","keyword.const.go"],"settings":{"foreground":"#38c7bd"}},{"scope":["string","string.template","string.quoted.single","punctuation.definition.string","punctuation.definition.string.template","punctuation.definition.string.begin","punctuation.definition.string.end.html source.js-ignored-vscode","punctuation.definition.string.end.html source.js","punctuation.definition.string.end.html.vue","punctuation.definition.string.end.html source.ts","punctuation.definition.string.end.html source.tsx","punctuation.definition.string.end.html source.js.jsx","punctuation.definition.string.end","string.other.link","constant.character.escape.regexp","variable.parameter.url","constant.other.symbol.quoted.single.erlang","constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.begin.erlang","constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.end.erlang","meta.import.ts punctuation.definition.variable.svelte","punctuation.definition.string.end.html source.css-ignored-vscode","text.html.edge punctuation.definition.variable.js","string.unquoted.plain.out.yaml","string.quoted.single.python punctuation.definition.string.begin.python","string.quoted.single.python punctuation.definition.string.end.python"],"settings":{"foreground":"#00a884"}},{"scope":["string.quoted.docstring.multi.python","string.quoted.double.block.python punctuation.definition.string.end.python","string.quoted.double.block.python punctuation.definition.string.begin.python","string.quoted.double.block.python","punctuation.definition.string.begin.python","punctuation.definition.string.end.python"],"settings":{"foreground":"#00a88460"}},{"scope":["entity.name.type","support.type","support.class","storage.type","entity.other.inherited-class","keyword.type","storage.type.java","storage.type.primitive.java","storage.type.generic.java","keyword.other.type","punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php source.php","punctuation.section.embedded.end.php","storage.type.object.array.java","storage.type.primitive.groovy","storage.type.groovy","meta.definition.type.body.swift meta.function-call.swift","meta.definition.type.class.swift meta.inheritance-clause.swift","variable.other.constant.elixir","source.graphql declaration.meta.type support","source.graphql meta.selections","source.graphql meta.enum.graphql meta.type.object.graphql constant.character.enum.graphql","source.graphql meta.fragment.graphql entity.name.fragment.graphql","entity.name.type.class.php","support.class.php","entity.other.inherited-class.php","entity.other.alias.php","meta.group.simple.subexpression.powershell meta.scriptblock.powershell storage.type.powershell"],"settings":{"foreground":"#a85ff1"}},{"scope":["variable","variable.language","entity.name.type.class.js","entity.name.variable","support.variable.magic","meta.method.body","entity.name.variable","punctuation.definition.variable","meta.class variable.object.property","variable.other.constant entity.name.function","entity.name.variable.tuple-element.cs punctuation.separator.colon.cs","meta.definition.variable.name.groovy","meta.body.struct.cpp","parameter.variable.function.elixir","meta.directive.edge source.js","meta.function.echo.edge source.js","text.html.edge meta.function.echo.edge meta.function-call.js","source.css variable.parameter.keyframe-list.css","source.css meta.property-value.css","source.css.scss meta.at-rule.keyframes.scss entity.name.function.scss","source.css.scss meta.property-value.scss","entity.name.variable.tuple-element","meta.group.simple.subexpression.powershell support.variable.automatic.powershell","support.variable.automatic.powershell","storage.source.cmake","entity.source.cmake"],"settings":{"foreground":"#c62f52"}},{"scope":["source.elm constant.type-constructor"],"settings":{"foreground":"#c62f52"}},{"scope":["source.elm storage.type"],"settings":{"foreground":"#a85ff1"}},{"scope":["entity.name.tag.other.html","entity.name.tag support.class.component","support.class.component.html"],"settings":{"foreground":"#a85ff1"}},{"scope":["source.diff meta.diff.header.to-file","source.diff markup.inserted.diff","source.diff punctuation.definition.to-file.diff","source.diff punctuation.definition.inserted.diff"],"settings":{"foreground":"#00a884"}},{"scope":["source.diff punctuation.definition.from-file.diff","source.diff meta.diff.header.from-file","source.diff markup.deleted.diff","source.diff punctuation.definition.deleted.diff"],"settings":{"foreground":"#E35535"}},{"scope":["source.diff meta.diff.header.command"],"settings":{"foreground":"#11B7D4"}},{"scope":["source.diff punctuation.definition.range.diff","source.diff meta.diff.range.unified"],"settings":{"foreground":"#d4770c"}},{"scope":["support.variable.liquid","support.class.liquid"],"settings":{"foreground":"#c62f52"}},{"scope":["text.html.basic entity.name","source.js-ignored-vscode","entity.name.tag","meta.embedded.block.blade constant.other.php","meta.embedded.block.blade keyword.operator.comparison.php","meta.embedded.block.blade keyword.operator.arithmetic.php","meta.tag.start.svelte keyword.control.svelte","meta.tag.end.svelte keyword.control.svelte"],"settings":{"foreground":"#11B7D4"}},{"scope":["meta.tag.sgml.doctype.html","punctuation.definition.tag","meta.tag.block.any","meta.tag.block.any.html","meta.tag.inline.any","source.css-ignored-vscode","meta.tag.metadata.style.end.html","text.html.vue invalid.illegal.character-not-allowed-here.html","meta.tag.inline.i.start.html","meta.tag.structure.div.start.html","punctuation.definition.tag.end.html.vue","invalid.illegal.character-not-allowed-here.html"],"settings":{"foreground":"#11B7D4aa"}},{"scope":["entity.other.attribute-name","entity.name.tag.liquid","invalid.deprecated.entity.other.attribute-name","meta.embedded.block.blade storage.type.php"],"settings":{"foreground":"#c7910c"}},{"scope":["markup.inline.raw.string.markdown","punctuation.definition.raw.markdown","markup.fenced_code.block.markdown","markup.fenced_code.block.markdown punctuation","markup.raw.block.markdown"],"settings":{"foreground":"#a85ff1"}},{"scope":["fenced_code.block.language"],"settings":{"foreground":"#a85ff1"}},{"scope":["punctuation.definition.list.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["punctuation.definition.list.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["entity.name.section","markup.heading.setext"],"settings":{"foreground":"#c7910c"}},{"scope":["punctuation.definition.heading"],"settings":{"foreground":"#c7910c"}},{"scope":["markup.underline.link","markup.underline.link.image"],"settings":{"foreground":"#11B7D4"}},{"scope":["markup.bold","punctuation.definition.bold"],"settings":{"foreground":"#c62f52","fontStyle":"bold"}},{"scope":["markup.strikethrough","punctuation.definition.strikethrough"],"settings":{"foreground":"#E35535"}},{"scope":["markup.italic","punctuation.definition.italic"],"settings":{"foreground":"#d4770c","fontStyle":"italic"}},{"scope":["markup.quote","markup.quote.markdown punctuation.definition.quote.begin"],"settings":{"foreground":"#d46ec0"}},{"scope":["punctuation.definition.quote.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["meta.embedded.block.frontmatter punctuation.definition.tag.begin","meta.embedded.block.frontmatter punctuation.definition.tag.end","meta.embedded.block.frontmatter string.unquoted.plain.out"],"settings":{"foreground":"#8a9eb7","fontStyle":"italic"}},{"scope":["entity.other.attribute-name.pseudo-class"],"settings":{"foreground":"#d46ec0"}},{"scope":["entity.other.attribute-name.pseudo-element"],"settings":{"foreground":"#d46ec0"}},{"scope":["entity.other.attribute-name.class","entity.other.attribute-name.class punctuation.definition.entity"],"settings":{"foreground":"#38c7bd"}},{"scope":["entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity"],"settings":{"foreground":"#38c7bd"}},{"scope":["support.type.property-name.css","support.type.vendored.property-name","meta.property-list entity.name.tag.css","meta.property-list.scss meta.property-list.scss entity.name.tag.css","meta.property-list meta.property-name","source.css.scss meta.property-list.scss entity.name.tag.css"],"settings":{"foreground":"#c3c6cb"}},{"scope":["source.css.scss entity.other.attribute-name.id ","source.css entity.other.attribute-name.id ","entity.other.attribute-name.id punctuation.definition.entity"],"settings":{"foreground":"#a85ff1"}},{"scope":["entity.name.tag.reference","meta.property-list"],"settings":{"foreground":"#d4770c"}},{"scope":["keyword.other.unit"],"settings":{"foreground":"#d4770c"}},{"scope":["support.constant.property-value","support.constant.font-name","meta.property-value.css","meta.attribute.style.html"],"settings":{"foreground":"#d4770c"}},{"scope":["constant.numeric"],"settings":{"foreground":"#d4770c"}},{"scope":["entity.name.tag.css","meta.property-list.scss entity.name.tag.css"],"settings":{"foreground":"#11B7D4"}}],"semanticHighlighting":true,"semanticTokenColors":{"property.declaration":{"foreground":"#c3c6cb"},"property":{"foreground":"#d4770c"},"variable":{"foreground":"#c62f52"},"variable.defaultLibrary":{"foreground":"#38c7bd"},"class.declaration":{"foreground":"#a85ff1"},"namespace":{"foreground":"#11B7D4"},"parameter":{"foreground":"#d46ec0"},"class.decorator":{"foreground":"#d46ec0"},"meta.decorator":{"foreground":"#d46ec0"},"enumMember":{"foreground":"#a85ff1"}}}
--------------------------------------------------------------------------------
/themes/bearded-theme-black-ruby.json:
--------------------------------------------------------------------------------
1 | {"$schema":"vscode://schemas/color-theme","name":"BeardedTheme Black-ruby","colors":{"contrastBorder":"#00000000","activityBar.background":"#0c0f11","activityBar.border":"#040506","activityBar.foreground":"#c62f52","activityBar.inactiveForeground":"#8a9eb7b3","activityBar.activeBorder":"#c62f52","activityBar.activeBackground":"#c62f5226","activityBarBadge.background":"#c62f52","activityBarBadge.foreground":"#0c0f11","activityBar.dropBorder":"#8a9eb733","welcomePage.tileBackground":"#a8adb310","welcomePage.tileBorder":"#a8adb320","welcomePage.tileHoverBackground":"#a8adb320","welcomePage.progress.background":"#1c2027","welcomePage.progress.foreground":"#c62f52","badge.background":"#c62f52","breadcrumb.background":"#111418","breadcrumbPicker.background":"#111418","button.background":"#c62f5275","button.foreground":"#c3c6cb","button.border":"#c62f5275","button.hoverBackground":"#c62f5290","extensionButton.foreground":"#c3c6cb","extensionButton.background":"#c62f5260","extensionButton.hoverBackground":"#c62f5290","extensionButton.prominentBackground":"#c62f529d","extensionButton.prominentForeground":"#c3c6cb","extensionButton.prominentHoverBackground":"#c62f52","button.secondaryBackground":"#c62f5220","button.secondaryForeground":"#c3c6cb","button.secondaryHoverBackground":"#c62f5235","charts.foreground":"#c3c6cb","charts.lines":"#c3c6cb","charts.red":"#E35535","charts.blue":"#11B7D4","charts.yellow":"#c7910c","charts.orange":"#d4770c","charts.green":"#00a884","charts.purple":"#d46ec0","contrastActiveBorder":"#00000000","errorForeground":"#E35535","errorLens.hintForeground":"#11B7D499","errorLens.infoForeground":"#11B7D499","errorLens.errorForeground":"#E3553599","errorLens.warningForeground":"#d4770c99","focusBorder":"#3b4654","foreground":"#a8adb3AA","icon.foreground":"#a8adb3AA","selection.background":"#c62f5260","widget.shadow":"#04050630","profileBadge.background":"#c62f52","profileBadge.foreground":"#111418","commandCenter.border":"#040506","commandCenter.background":"#111418","commandCenter.activeBackground":"#1c202760","commandCenter.activeForeground":"#a8adb390","commandCenter.foreground":"#8a9eb7","checkbox.foreground":"#c3c6cb","debugExceptionWidget.background":"#1c2027","debugExceptionWidget.border":"#040506","debugToolBar.background":"#1c2027","toolbar.hoverBackground":"#8a9eb760","descriptionForeground":"#c3c6cb4d","disabledForeground":"#c3c6cb4d","diffEditor.border":"#040506","diffEditor.insertedTextBackground":"#00a88420","diffEditor.removedTextBackground":"#E3553525","diffEditor.diagonalFill":"#04050680","diffEditor.insertedTextBorder":"#00000000","diffEditor.removedTextBorder":"#00000000","diffEditorGutter.insertedLineBackground":"#00000000","diffEditorGutter.removedLineBackground":"#00000000","diffEditor.insertedLineBackground":"#00a88420","diffEditor.removedLineBackground":"#E3553525","diffEditorOverview.insertedForeground":"#00a88425","diffEditorOverview.removedForeground":"#E3553530","editorInlayHint.background":"#a8adb320","editorInlayHint.foreground":"#a8adb390","editorInlayHint.typeBackground":"#a85ff130","editorInlayHint.typeForeground":"#a85ff1aa","editorGhostText.border":"#00000000","editorGhostText.foreground":"#c3c6cb70","editorCursor.background":"#c62f52","editorBracketHighlight.foreground1":"#c7910c","editorBracketHighlight.foreground2":"#d46ec0","editorBracketHighlight.foreground3":"#11B7D4","editorBracketHighlight.foreground4":"#a85ff1","editorBracketHighlight.foreground5":"#38c7bd","editorBracketHighlight.foreground6":"#c62f52","editorBracketHighlight.unexpectedBracket.foreground":"#E35535","editor.foldBackground":"#0c0f11","editor.background":"#111418","editor.foreground":"#c3c6cb","editor.findMatchBackground":"#c62f5230","editor.findMatchBorder":"#c62f5260","editor.findMatchHighlightBackground":"#c62f5233","editor.findMatchHighlightBorder":"#c62f524d","editor.hoverHighlightBackground":"#c62f5240","editor.lineHighlightBackground":"#c62f520d","editor.lineHighlightBorder":"#c62f5220","editor.rangeHighlightBackground":"#c62f5233","editor.selectionBackground":"#c62f5240","editor.selectionForeground":"#c3c6cb","editor.inactiveSelectionBackground":"#c62f5240","editor.selectionHighlightBorder":"#c62f5240","editor.selectionHighlightBackground":"#c62f5215","editor.wordHighlightStrongBackground":"#c62f5240","editor.wordHighlightBorder":"#c62f524d","editor.wordHighlightBackground":"#c62f5220","editorBracketMatch.background":"#c62f5240","editorBracketMatch.border":"#c62f5260","editorCodeLens.foreground":"#a8adb380","editorCursor.foreground":"#c7910c","editorGroup.border":"#040506","editorGroup.dropBackground":"#c62f5215","editorHoverWidget.background":"#1c2027","editorHoverWidget.border":"#040506","editorIndentGuide.background1":"#8a9eb733","editorIndentGuide.activeBackground1":"#8a9eb7cc","editorLink.activeForeground":"#c3c6cb","editorWarning.border":"#00000000","editorInfo.border":"#00000000","editorGutter.commentRangeForeground":"#1c2027","sash.hoverBorder":"#c62f5250","editorRuler.foreground":"#8a9eb733","editor.linkedEditingBackground":"#00c3e533","editorWarning.foreground":"#c7910c","editorWhitespace.foreground":"#8a9eb760","editorWidget.background":"#1c2027","editorWidget.resizeBorder":"#c62f5250","editorGutter.background":"#111418","editorGutter.addedBackground":"#00a884cc","editorGutter.deletedBackground":"#E35535cc","editorGutter.modifiedBackground":"#11B7D4cc","editorLineNumber.foreground":"#32383f","editorLineNumber.activeForeground":"#85929e","editorStickyScrollHover.background":"#1e232a","dropdown.foreground":"#c3c6cb","dropdown.background":"#15191e","dropdown.listBackground":"#15191e","dropdown.border":"#282d34","input.foreground":"#c3c6cb","input.background":"#15191e","input.border":"#282d34","input.placeholderForeground":"#555f6d","inputValidation.errorBackground":"#1c2027","inputValidation.errorBorder":"#c7910c","inputValidation.infoBackground":"#1c2027","inputValidation.infoBorder":"#c62f52","inputValidation.warningBackground":"#1c2027","inputValidation.warningBorder":"#c7910c","list.dropBackground":"#c62f5215","list.focusBackground":"#c62f5240","list.focusForeground":"#a8adb3","list.errorForeground":"#E35535","list.warningForeground":"#d4770c","list.highlightForeground":"#c7910c","list.activeSelectionForeground":"#c3c6cb","list.activeSelectionBackground":"#31384573","list.inactiveSelectionBackground":"#31384540","list.inactiveSelectionForeground":"#c3c6cb","list.hoverBackground":"#272c3633","list.hoverForeground":"#d1d3d7","quickInput.background":"#171b21","quickInputList.focusIconForeground":"#8a9eb7","quickInputTitle.background":"#0c0f11","quickInputList.focusForeground":"#ecedef","quickInput.foreground":"#c3c6cbb3","quickInputList.focusBackground":"#47516273","gitDecoration.modifiedResourceForeground":"#11B7D4","gitDecoration.deletedResourceForeground":"#E35535","gitDecoration.untrackedResourceForeground":"#00a884","gitDecoration.ignoredResourceForeground":"#8a9eb7","gitDecoration.conflictingResourceForeground":"#c62f52","menu.border":"#040506","menu.background":"#1c2027","menu.foreground":"#9b9fa7","menu.separatorBackground":"#04050665","menu.selectionForeground":"#ecedef","menubar.selectionBackground":"#1c2027","menubar.selectionForeground":"#a8adb3","merge.border":"#040506","merge.commonContentBackground":"#c7910c30","merge.commonHeaderBackground":"#c7910c80","merge.currentContentBackground":"#00a88430","merge.currentHeaderBackground":"#00a88480","merge.incomingContentBackground":"#11B7D430","merge.incomingHeaderBackground":"#11B7D480","editorOverviewRuler.border":"#040506","editorOverviewRuler.commonContentForeground":"#c7910c","editorOverviewRuler.currentContentForeground":"#E35535","editorOverviewRuler.incomingContentForeground":"#00a884","minimap.background":"#111418","minimap.errorHighlight":"#E35535","minimap.findMatchHighlight":"#c62f52","minimap.selectionHighlight":"#c62f52","minimap.selectionOccurrenceHighlight":"#c62f52","minimap.warningHighlight":"#d4770c","minimapGutter.addedBackground":"#00a884","minimapGutter.deletedBackground":"#E35535","minimapGutter.modifiedBackground":"#11B7D4","notificationCenterHeader.foreground":"#c3c6cb","notificationCenterHeader.background":"#1c2027","notifications.foreground":"#a8adb3","notifications.background":"#1c2027","notifications.border":"#040506","notificationLink.foreground":"#c7910c","notificationsErrorIcon.foreground":"#E35535","notificationsWarningIcon.foreground":"#d4770c","notificationsInfoIcon.foreground":"#11B7D4","panel.background":"#0f1215","panel.border":"#040506","panel.dropBorder":"#8a9eb780","panelSection.border":"#040506","panelTitle.activeBorder":"#c62f52","panelTitle.activeForeground":"#c62f52","panelTitle.inactiveForeground":"#8a9eb7","panelSectionHeader.background":"#151a1e","panelSectionHeader.foreground":"#c3c6cb","panelSectionHeader.border":"#040506","panelInput.border":"#262d36","peekViewEditor.background":"#191e24","peekViewEditorGutter.background":"#191e24","peekViewEditor.matchHighlightBackground":"#1c202740","peekViewResult.background":"#161a1f","peekViewResult.fileForeground":"#c3c6cb","peekViewResult.lineForeground":"#a8adb3","peekViewResult.matchHighlightBackground":"#c62f5280","peekViewEditor.matchHighlightBorder":"#00000000","peekViewResult.selectionBackground":"#c62f5233","peekViewResult.selectionForeground":"#c3c6cb","peekViewTitle.background":"#1c2027","peekView.border":"#040506","peekViewTitleDescription.foreground":"#c3c6cb","peekViewTitleLabel.foreground":"#c3c6cb","peekViewEditorStickyScroll.background":"#191e24","editorMarkerNavigation.background":"#0c0f11","editorMarkerNavigationError.background":"#E3553590","editorMarkerNavigationWarning.background":"#d4770c90","editorMarkerNavigationInfo.background":"#11B7D490","editorError.border":"#00000000","editorError.foreground":"#E35535","pickerGroup.border":"#040506","pickerGroup.foreground":"#c3c6cb","progressBar.background":"#c7910c","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#c62f5240","scrollbarSlider.background":"#c62f5220","scrollbarSlider.hoverBackground":"#c62f5230","settings.modifiedItemIndicator":"#c62f52","settings.headerForeground":"#c62f52","keybindingLabel.background":"#1c2027","keybindingLabel.foreground":"#80858f","keybindingLabel.border":"#4f535a","keybindingLabel.bottomBorder":"#4f535a","sideBar.background":"#0c0f11","sideBar.border":"#040506","sideBar.foreground":"#a8adb3CC","sideBarSectionHeader.background":"#0c0f11","sideBarSectionHeader.foreground":"#c3c6cb","sideBarSectionHeader.border":"#040506","sideBarTitle.foreground":"#8a9eb7","tree.indentGuidesStroke":"#8a9eb770","statusBar.background":"#0c0f11","statusBar.border":"#040506","statusBar.foreground":"#a8adb380","statusBar.debuggingBackground":"#000000","statusBar.debuggingForeground":"#b88d5b","statusBar.noFolderBackground":"#0c0f11","statusBar.noFolderBorder":"#040506","statusBarItem.hoverBackground":"#a8adb31a","statusBar.noFolderForeground":"#a8adb3cc","statusBarItem.activeBackground":"#1c2027","statusBarItem.errorBackground":"#e35535","statusBarItem.errorHoverBackground":"#e6684b","statusBarItem.errorForeground":"#160703","statusBarItem.warningBackground":"#d4770c","statusBarItem.warningHoverBackground":"#ec850d","statusBarItem.warningForeground":"#000000","statusBarItem.prominentBackground":"#c62f52","statusBarItem.prominentHoverBackground":"#d13d60","statusBarItem.prominentForeground":"#000000","statusBarItem.offlineBackground":"#d46ec0","statusBarItem.offlineHoverBackground":"#da82c9","statusBarItem.offlineForeground":"#340f2d","statusBarItem.remoteBackground":"#38c7bd","statusBarItem.remoteHoverBackground":"#4ccdc4","statusBarItem.remoteForeground":"#000000","editorSuggestWidget.background":"#111418","editorSuggestWidget.border":"#040506","editorSuggestWidget.foreground":"#a8adb3","editorSuggestWidget.highlightForeground":"#c7910c","editorSuggestWidget.selectedBackground":"#c62f524d","editorGroupHeader.noTabsBackground":"#111418","editorGroupHeader.tabsBackground":"#0c0f11","editorGroupHeader.tabsBorder":"#040506","editorGroupHeader.border":"#00000000","tab.activeBackground":"#111418","tab.activeForeground":"#c62f52","tab.activeBorderTop":"#c62f52","tab.activeBorder":"#111418","tab.border":"#040506","tab.hoverBackground":"#111418","tab.inactiveBackground":"#0c0f11","tab.inactiveForeground":"#8a9eb7","tab.unfocusedHoverBackground":"#111418","tab.unfocusedActiveForeground":"#c62f52","tab.unfocusedInactiveForeground":"#8a9eb7","tab.unfocusedActiveBorder":"#111418","tab.lastPinnedBorder":"#040506","terminal.ansiBlack":"#111418","terminal.ansiRed":"#E35535","terminal.ansiGreen":"#00a884","terminal.ansiYellow":"#c7910c","terminal.ansiBlue":"#11B7D4","terminal.ansiMagenta":"#d46ec0","terminal.ansiCyan":"#38c7bd","terminal.ansiWhite":"#c3c6cb","terminal.ansiBrightBlack":"#11B7D4","terminal.ansiBrightRed":"#E35535","terminal.ansiBrightGreen":"#00a884","terminal.ansiBrightYellow":"#c7910c","terminal.ansiBrightBlue":"#11B7D4","terminal.ansiBrightMagenta":"#d46ec0","terminal.ansiBrightCyan":"#38c7bd","terminal.ansiBrightWhite":"#c3c6cb","terminal.background":"#0f1215","terminal.foreground":"#c3c6cb","terminalCursor.background":"#111418","terminalCursor.foreground":"#c7910c","terminal.selectionForeground":"#c3c6cb","textBlockQuote.background":"#11B7D434","textBlockQuote.border":"#11B7D4b9","textCodeBlock.background":"#11B7D434","textLink.activeForeground":"#11B7D4","textLink.foreground":"#11B7D4","textPreformat.foreground":"#c7910c","textSeparator.foreground":"#c62f52","walkThrough.embeddedEditorBackground":"#111418","titleBar.activeBackground":"#0c0f11","titleBar.activeForeground":"#8a9eb7","titleBar.inactiveBackground":"#040506","titleBar.inactiveForeground":"#8a9eb7","titleBar.border":"#040506","editorUnnecessaryCode.border":"#00000000","editorUnnecessaryCode.opacity":"#000000aa"},"tokenColors":[{"scope":["support.module.elm","entity.other.inherited-class.python","variable.other.object","support.other.namespace.php","entity.other.attribute-name.namespace.xml","record.accessor","entity.name.record.field.accessor","storage.modifier.import.java","storage.modifier.import.groovy","meta.import.swift entity.name.type.swift","meta.member.access.python","variable.other.property.ts","variable.other.property.js","constant.language.symbol.elixir","punctuation.tag.liquid support.class.liquid","meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell","meta.scriptblock.powershell meta.group.simple.subexpression.powershell meta.group.simple.subexpression.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell"],"settings":{"foreground":"#d4770c"}},{"scope":["entity.name.type"],"settings":{"foreground":"#3585bb"}},{"scope":["comment","punctuation.definition.comment","string.quoted.docstring.multi","comment.block.documentation source"],"settings":{"foreground":"#8a9eb7","fontStyle":"italic"}},{"scope":["constant","support.constant.core.php"],"settings":{"foreground":"#E35535"}},{"scope":["meta.section.struct.go variable.other.field.go","meta.section.struct.go variable.other.declaration.go","source","support","constant.character.entity.named","meta.jsx.children","source.lua","text.html.derivative","source.graphql meta.selections variable.other.alias.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql variable.graphql","source.graphql variable.arguments.graphql"],"settings":{"foreground":"#a8adb3"}},{"scope":["entity.name.function.decorator","meta.decorator entity.name.function","meta.decorator punctuation.decorator","punctuation.definition.decorator","meta.decorator variable.other.readwrite.ts","variable.parameter.gdscript","entity.name.variable.parameter","variable.parameter"],"settings":{"foreground":"#d46ec0"}},{"scope":["keyword.control.export","support.type.object.module"],"settings":{"foreground":"#c7910c"}},{"scope":["support.function","entity.name.function","meta.function-call","meta.function","meta.method.declaration","meta.function-call support","variable.language.super.ts","source.directive","meta.function-call.generic","meta.method-call.static.php","meta.method-call.php","meta.class storage.type","meta.method.groovy","meta.bracket.square.access","entity.name.function-call.elixir","punctuation.output.liquid support.variable.liquid","meta.function.echo.edge source.js keyword.operator.error-control.js","entity.name.type.variant.gdscript","entity.name.function.powershell"],"settings":{"foreground":"#11B7D4"}},{"scope":["keyword.control.import","meta.module.name.elm support","meta.import.elm support","keyword.control.at-rule","punctuation.definition.keyword","variable.control.import.include","keyword.other.import.java"],"settings":{"foreground":"#c7910c"}},{"scope":["keyword.package.go","keyword.operator.pointer.go","keyword.control","keyword.control.conditional","storage.modifier","keyword.operator.new","keyword.operator.expression","keyword.begin.blade","keyword.end.blade","keyword.blade","keyword.type-alias","keyword.type","support.class.console","keyword.other.await","storage.type.class.jsdoc","punctuation.definition.block.tag.jsdoc","keyword.other.new","keyword.other.phpdoc","keyword.other.use.php","keyword.operator.logical.python","keyword.other.import.static.groovy","keyword.other.import.groovy","punctuation.definition.attribute.swift","source.svelte meta.scope.tag.main.svelte meta.tag.start.svelte variable.function.svelte","meta.directive.on.svelte entity.name.type.svelte","keyword.other.special-method.elixir","keyword.edge","entity.name.function.edge","support.constant.edge","keyword.other.gdscript","keyword.other.onready.gdscript","source.graphql meta.fragment.graphql keyword.on.graphql","source.graphql meta.type.interface.graphql keyword.implements.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql keyword.operator.nulltype.graphql","source.graphql meta.variables.graphql keyword.operator.nulltype.graphql","source.graphql meta.type.interface.graphql meta.type.object.graphql keyword.operator.nulltype.graphql","keyword.operator.class.php","keyword.operator.spread.php","keyword.operator.type.php","keyword.operator.increment-decrement.php","keyword.operator.increment-increment.php","punctuation.support.type.property-name.begin.json","punctuation.support.type.property-name.end.json","keyword.operator.string.php","keyword.operator.ternary.php","keyword.operator.variadic.php","keyword.operator.nullable-type.php","keyword.other.use-as.php","keyword.import.go","keyword.operator.address.go","keyword.operator.null-coalescing","keyword.operator.arrow","keyword.struct.go","keyword.operator.liquid","keyword.operator.optional.ts","keyword.cmake"],"settings":{"foreground":"#c7910c"}},{"scope":["meta.object-literal.key","variable.object.property"],"settings":{"foreground":"#c3c6cb"}},{"scope":["keyword.other.definition.ini","support.type.property-name","entity.name.tag.yaml"],"settings":{"foreground":"#c7910c"}},{"scope":["keyword.operator.comparison","storage.type.function.arrow","keyword.operator.lua","keyword.operator.assignment","keyword.operator.relational","keyword.operator.increment","keyword.operator.decrement","keyword.operator.logical","keyword.operator.arithmetic","keyword.operator.math"],"settings":{"foreground":"#c7910c"}},{"scope":["punctuation","attribute_value","meta.brace","punctuation.definition.parameters","punctuation.definition.template-expression","keyword.operator","keyword.other","punctuation.terminator","punctuation.separator","punctuation.definition.generic.begin","punctuation.definition.generic.end","meta.function.type-declaration","keyword.other.colon.elm","meta.record.field.elm keyword.other.elm","keyword.other.period.elm","meta.tag.xml","meta.tag.preprocessor.xml","punctuation.definition.block","punctuation.accessor","constant.name.attribute.tag.pug","string.interpolated.pug","keyword.other.whitespace.liquid","meta.tag.template.block.twig","meta.tag.template.value.twig","begin.bracket","end.bracket","text.html.twig meta.tag.inline.any","text.html.twig meta.tag.block.any","support.function.construct.begin.blade","support.function.construct.end.blade source.php","support.function.construct.end.blade","meta.function.echo.blade source.php","punctuation.definition.list.begin.python","punctuation.definition.list.end.python","text.html.vue-html meta.tag.block.any","keyword.operator.assignment.tsx","meta.definition.method.signature.java","meta.class.body.groovy","meta.definition.method.groovy meta.method.body.java meta.declaration.assertion.groovy","punctuation.definition.list.begin.erlang","meta.expression.parenthesized","meta.definition.function.swift meta.parameter-clause.swift","source.swift meta.function-call.swift","punctuation.section.embedded.end.swift source.swift","source.lua","meta.function.lua","punctuation.definition.keyword.svelte","source.svelte meta.scope.tag.SpeakerPicture.svelte meta.tag.start.svelte entity.other.attribute-name.svelte","expression.embbeded.vue punctuation.definition.tag.begin.html.vue","expression.embbeded.vue punctuation.definition.tag.end.html.vue","source.graphql\tmeta.type.interface.graphql meta.type.object.graphql meta.type.list.graphql meta.brace.square.graphql","punctuation.output.liquid","text.html.liquid meta.tag.liquid punctuation.definition.tag.end.liquid"],"settings":{"foreground":"#c3c6cb60"}},{"scope":["entity.name.package.go","variable.language.this","variable.language.special.self","variable.parameter.function.language.special.self","variable.language.this.php punctuation.definition.variable.php","meta.class.body.php storage.type.php","variable.parameter.function.swift entity.name.function.swift","variable.other.jsdoc","support.variable.drive.powershell"],"settings":{"foreground":"#d4770c"}},{"scope":["storage","meta.var.expr storage.type","storage.type.function","keyword.function","storage.type.class","storage.type.property","keyword.other","keyword.local.lua","entity.name.class","meta.function.lua keyword.control.lua","storage.type.enum","storage.type.interface","storage.type.type","entity.name.type.class.java","support.class.php","entity.other.inherited-class.php","entity.name.type.class.groovy","storage.type.rust","entity.name.type.class.swift","source.svelte meta.script.svelte source.ts entity.name.label.ts","meta.directive.on.svelte keyword.control.svelte","storage.type.const.gdscript","storage.type.var.gdscript","source.graphql declaration.meta.type keyword","source.graphql meta.type.interface.graphql keyword.type.graphql","source.graphql keyword.schema.graphql","source.graphql keyword.operation.graphql","source.graphql meta.enum.graphql keyword.enum.graphql","source.graphql meta.fragment.graphql keyword.fragment.graphql","storage.type.trait.php","keyword.type.go","keyword.var.go","storage.type.powershell","keyword.const.go"],"settings":{"foreground":"#38c7bd"}},{"scope":["string","string.template","string.quoted.single","punctuation.definition.string","punctuation.definition.string.template","punctuation.definition.string.begin","punctuation.definition.string.end.html source.js-ignored-vscode","punctuation.definition.string.end.html source.js","punctuation.definition.string.end.html.vue","punctuation.definition.string.end.html source.ts","punctuation.definition.string.end.html source.tsx","punctuation.definition.string.end.html source.js.jsx","punctuation.definition.string.end","string.other.link","constant.character.escape.regexp","variable.parameter.url","constant.other.symbol.quoted.single.erlang","constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.begin.erlang","constant.other.symbol.quoted.single.erlang punctuation.definition.symbol.end.erlang","meta.import.ts punctuation.definition.variable.svelte","punctuation.definition.string.end.html source.css-ignored-vscode","text.html.edge punctuation.definition.variable.js","string.unquoted.plain.out.yaml","string.quoted.single.python punctuation.definition.string.begin.python","string.quoted.single.python punctuation.definition.string.end.python"],"settings":{"foreground":"#00a884"}},{"scope":["string.quoted.docstring.multi.python","string.quoted.double.block.python punctuation.definition.string.end.python","string.quoted.double.block.python punctuation.definition.string.begin.python","string.quoted.double.block.python","punctuation.definition.string.begin.python","punctuation.definition.string.end.python"],"settings":{"foreground":"#00a88460"}},{"scope":["entity.name.type","support.type","support.class","storage.type","entity.other.inherited-class","keyword.type","storage.type.java","storage.type.primitive.java","storage.type.generic.java","keyword.other.type","punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php source.php","punctuation.section.embedded.end.php","storage.type.object.array.java","storage.type.primitive.groovy","storage.type.groovy","meta.definition.type.body.swift meta.function-call.swift","meta.definition.type.class.swift meta.inheritance-clause.swift","variable.other.constant.elixir","source.graphql declaration.meta.type support","source.graphql meta.selections","source.graphql meta.enum.graphql meta.type.object.graphql constant.character.enum.graphql","source.graphql meta.fragment.graphql entity.name.fragment.graphql","entity.name.type.class.php","support.class.php","entity.other.inherited-class.php","entity.other.alias.php","meta.group.simple.subexpression.powershell meta.scriptblock.powershell storage.type.powershell"],"settings":{"foreground":"#a85ff1"}},{"scope":["variable","variable.language","entity.name.type.class.js","entity.name.variable","support.variable.magic","meta.method.body","entity.name.variable","punctuation.definition.variable","meta.class variable.object.property","variable.other.constant entity.name.function","entity.name.variable.tuple-element.cs punctuation.separator.colon.cs","meta.definition.variable.name.groovy","meta.body.struct.cpp","parameter.variable.function.elixir","meta.directive.edge source.js","meta.function.echo.edge source.js","text.html.edge meta.function.echo.edge meta.function-call.js","source.css variable.parameter.keyframe-list.css","source.css meta.property-value.css","source.css.scss meta.at-rule.keyframes.scss entity.name.function.scss","source.css.scss meta.property-value.scss","entity.name.variable.tuple-element","meta.group.simple.subexpression.powershell support.variable.automatic.powershell","support.variable.automatic.powershell","storage.source.cmake","entity.source.cmake"],"settings":{"foreground":"#c62f52"}},{"scope":["source.elm constant.type-constructor"],"settings":{"foreground":"#c62f52"}},{"scope":["source.elm storage.type"],"settings":{"foreground":"#a85ff1"}},{"scope":["entity.name.tag.other.html","entity.name.tag support.class.component","support.class.component.html"],"settings":{"foreground":"#a85ff1"}},{"scope":["source.diff meta.diff.header.to-file","source.diff markup.inserted.diff","source.diff punctuation.definition.to-file.diff","source.diff punctuation.definition.inserted.diff"],"settings":{"foreground":"#00a884"}},{"scope":["source.diff punctuation.definition.from-file.diff","source.diff meta.diff.header.from-file","source.diff markup.deleted.diff","source.diff punctuation.definition.deleted.diff"],"settings":{"foreground":"#E35535"}},{"scope":["source.diff meta.diff.header.command"],"settings":{"foreground":"#11B7D4"}},{"scope":["source.diff punctuation.definition.range.diff","source.diff meta.diff.range.unified"],"settings":{"foreground":"#d4770c"}},{"scope":["support.variable.liquid","support.class.liquid"],"settings":{"foreground":"#c62f52"}},{"scope":["text.html.basic entity.name","source.js-ignored-vscode","entity.name.tag","meta.embedded.block.blade constant.other.php","meta.embedded.block.blade keyword.operator.comparison.php","meta.embedded.block.blade keyword.operator.arithmetic.php","meta.tag.start.svelte keyword.control.svelte","meta.tag.end.svelte keyword.control.svelte"],"settings":{"foreground":"#11B7D4"}},{"scope":["meta.tag.sgml.doctype.html","punctuation.definition.tag","meta.tag.block.any","meta.tag.block.any.html","meta.tag.inline.any","source.css-ignored-vscode","meta.tag.metadata.style.end.html","text.html.vue invalid.illegal.character-not-allowed-here.html","meta.tag.inline.i.start.html","meta.tag.structure.div.start.html","punctuation.definition.tag.end.html.vue","invalid.illegal.character-not-allowed-here.html"],"settings":{"foreground":"#11B7D4aa"}},{"scope":["entity.other.attribute-name","entity.name.tag.liquid","invalid.deprecated.entity.other.attribute-name","meta.embedded.block.blade storage.type.php"],"settings":{"foreground":"#c7910c"}},{"scope":["markup.inline.raw.string.markdown","punctuation.definition.raw.markdown","markup.fenced_code.block.markdown","markup.fenced_code.block.markdown punctuation","markup.raw.block.markdown"],"settings":{"foreground":"#a85ff1"}},{"scope":["fenced_code.block.language"],"settings":{"foreground":"#a85ff1"}},{"scope":["punctuation.definition.list.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["punctuation.definition.list.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["entity.name.section","markup.heading.setext"],"settings":{"foreground":"#c7910c"}},{"scope":["punctuation.definition.heading"],"settings":{"foreground":"#c7910c"}},{"scope":["markup.underline.link","markup.underline.link.image"],"settings":{"foreground":"#11B7D4"}},{"scope":["markup.bold","punctuation.definition.bold"],"settings":{"foreground":"#c62f52","fontStyle":"bold"}},{"scope":["markup.strikethrough","punctuation.definition.strikethrough"],"settings":{"foreground":"#E35535"}},{"scope":["markup.italic","punctuation.definition.italic"],"settings":{"foreground":"#d4770c","fontStyle":"italic"}},{"scope":["markup.quote","markup.quote.markdown punctuation.definition.quote.begin"],"settings":{"foreground":"#d46ec0"}},{"scope":["punctuation.definition.quote.begin"],"settings":{"foreground":"#11B7D4"}},{"scope":["meta.embedded.block.frontmatter punctuation.definition.tag.begin","meta.embedded.block.frontmatter punctuation.definition.tag.end","meta.embedded.block.frontmatter string.unquoted.plain.out"],"settings":{"foreground":"#8a9eb7","fontStyle":"italic"}},{"scope":["entity.other.attribute-name.pseudo-class"],"settings":{"foreground":"#d46ec0"}},{"scope":["entity.other.attribute-name.pseudo-element"],"settings":{"foreground":"#d46ec0"}},{"scope":["entity.other.attribute-name.class","entity.other.attribute-name.class punctuation.definition.entity"],"settings":{"foreground":"#38c7bd"}},{"scope":["entity.other.attribute-name.parent-selector-suffix punctuation.definition.entity"],"settings":{"foreground":"#38c7bd"}},{"scope":["support.type.property-name.css","support.type.vendored.property-name","meta.property-list entity.name.tag.css","meta.property-list.scss meta.property-list.scss entity.name.tag.css","meta.property-list meta.property-name","source.css.scss meta.property-list.scss entity.name.tag.css"],"settings":{"foreground":"#c3c6cb"}},{"scope":["source.css.scss entity.other.attribute-name.id ","source.css entity.other.attribute-name.id ","entity.other.attribute-name.id punctuation.definition.entity"],"settings":{"foreground":"#a85ff1"}},{"scope":["entity.name.tag.reference","meta.property-list"],"settings":{"foreground":"#d4770c"}},{"scope":["keyword.other.unit"],"settings":{"foreground":"#d4770c"}},{"scope":["support.constant.property-value","support.constant.font-name","meta.property-value.css","meta.attribute.style.html"],"settings":{"foreground":"#d4770c"}},{"scope":["constant.numeric"],"settings":{"foreground":"#d4770c"}},{"scope":["entity.name.tag.css","meta.property-list.scss entity.name.tag.css"],"settings":{"foreground":"#11B7D4"}}],"semanticHighlighting":true,"semanticTokenColors":{"property.declaration":{"foreground":"#c3c6cb"},"property":{"foreground":"#d4770c"},"variable":{"foreground":"#c62f52"},"variable.defaultLibrary":{"foreground":"#38c7bd"},"class.declaration":{"foreground":"#a85ff1"},"namespace":{"foreground":"#11B7D4"},"parameter":{"foreground":"#d46ec0"},"class.decorator":{"foreground":"#d46ec0"},"meta.decorator":{"foreground":"#d46ec0"},"enumMember":{"foreground":"#a85ff1"}}}
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "module": "esnext",
5 | "esModuleInterop": true,
6 | "forceConsistentCasingInFileNames": true,
7 | "strict": true,
8 | "skipLibCheck": true,
9 | "moduleResolution": "node",
10 | "resolveJsonModule": true
11 | }
12 | }
13 |
--------------------------------------------------------------------------------