├── .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 | Example 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 | --------------------------------------------------------------------------------