init of custom darcula theme

This commit is contained in:
JISAUAY 2025-06-19 16:02:46 -05:00
commit d8fc2bafdb
14 changed files with 1429 additions and 0 deletions

0
.gitignore vendored Normal file
View File

View File

@ -0,0 +1,57 @@
## v1.2.0
- Update UI styles (workbench, editor, ...)
## v1.1.3
- Add python logical operator rule (#10)
## v1.1.1
- Fix const variable coloring (#11)
## v1.1.0
- Migrate to vscode theme json format
- Update UI styles
## v1.0.13
- Fix broken scss rules
## v1.0.12
- Fix broken `new Class()` colorization
- Fix broken return type parameters colorization
- Fix broken string template syntax colorization
## v1.0.11
- Fix broken rules since VSCode v1.9
## v1.0.10
- Add missing support for .tsx files
## v1.0.9
- Revert background color to the default (fixes #3)
- Change the line highlight color according to the background color change
## v1.0.8
- Add icon for vscode extension
- Add triple-slash directive colorization
- Add regex capture group colorization
- Fix wrong operator colorization on file scoped code
- Change XML/HTML string color to match other string
- Change line highlight color & background color to match the original theme (fixes #2)
## v1.0.7
- Improve CSS/SCSS colorization
## v1.0.6
- Improve JSX/TSX colorization
- Improve regex class colorization
## v1.0.5
- Change JSX/TSX tag color to match the original theme
- Fix wrong operator colors inside function block
- Fix string quote color in template string syntax ``` `${'string'}` ```
## v1.0.4
- Fix wrong highlight color for types inside arrow function block
## v1.0.3
- Fix wrong highlight color for block scoped variables.
- Add YAML syntax highligting.

View File

@ -0,0 +1,61 @@
## v1.2.1
- Add php variable rule (#15)
- Add dart class rule (#20)
## v1.2.0
- Update UI styles (workbench, editor, ...)
## v1.1.3
- Add python logical operator rule (#10)
## v1.1.1
- Fix const variable coloring (#11)
## v1.1.0
- Migrate to vscode theme json format
- Update UI styles
## v1.0.13
- Fix broken scss rules
## v1.0.12
- Fix broken `new Class()` colorization
- Fix broken return type parameters colorization
- Fix broken string template syntax colorization
## v1.0.11
- Fix broken rules since VSCode v1.9
## v1.0.10
- Add missing support for .tsx files
## v1.0.9
- Revert background color to the default (fixes #3)
- Change the line highlight color according to the background color change
## v1.0.8
- Add icon for vscode extension
- Add triple-slash directive colorization
- Add regex capture group colorization
- Fix wrong operator colorization on file scoped code
- Change XML/HTML string color to match other string
- Change line highlight color & background color to match the original theme (fixes #2)
## v1.0.7
- Improve CSS/SCSS colorization
## v1.0.6
- Improve JSX/TSX colorization
- Improve regex class colorization
## v1.0.5
- Change JSX/TSX tag color to match the original theme
- Fix wrong operator colors inside function block
- Fix string quote color in template string syntax ``` `${'string'}` ```
## v1.0.4
- Fix wrong highlight color for types inside arrow function block
## v1.0.3
- Fix wrong highlight color for block scoped variables.
- Add YAML syntax highligting.

View File

@ -0,0 +1,35 @@
# Darcula
[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs.
---
## Changelog
See [CHANGELOG.md](./CHANGELOG.md)
## Description
- Mainly focused on HTML5 / CSS / JS (TS) development.
- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE.
- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo.
- Any suggestions/contributions are welcomed!
## Setting
- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**)
## Customizing
- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature.
(Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15))
## Screenshot
![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png)
**Enjoy!**

View File

@ -0,0 +1,35 @@
# Darcula
[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs.
---
## Changelog
See [CHANGELOG.md](./CHANGELOG.md)
## Description
- Mainly focused on HTML5 / CSS / JS (TS) development.
- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE.
- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo.
- Any suggestions/contributions are welcomed!
## Setting
- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**)
## Customizing
- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature.
(Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15))
## Screenshot
![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png)
**Enjoy!**

View File

@ -0,0 +1,474 @@
{
"type": "dark",
"colors": {
"editor.background": "#242424",
"editor.foreground": "#A9B7C6",
"editor.selectionBackground": "#204182cc",
"editor.lineHighlightBackground": "#ffffff0b",
"editor.activeLineNumber.foreground": "#A9B7C6",
"editorGutter.background": "#ffffff0b",
"titleBar.activeBackground": "#ffffff1a",
"titleBar.inactiveBackground": "#ffffff10",
"titleBar.activeForeground": "#A9B7C6",
"sideBar.border": "#ffffff1a",
"sideBar.background": "#242424",
"statusBar.foreground": "#A9B7C6",
"statusBar.background": "#ffffff1a",
"tab.activeBackground": "#ffffff1a",
"tab.inactiveBackground": "#ffffff0b",
"tab.activeBorder": "#0c7d9d",
"editorSuggestWidget.background": "#303030",
"editorSuggestWidget.highlightForeground": "#cc6e2f",
"editorSuggestWidget.selectedBackground": "#204182cc",
"badge.background": "#ffffff1a",
"activityBar.background": "#ffffff1a",
"activityBarBadge.background": "#007acc"
},
"tokenColors": [
{
"name": "Comment",
"scope": "comment",
"settings": {
"foreground": "#808080"
}
},
{
"name": "Operator Keywords",
"scope": "keyword.operator,keyword.operator.logical,keyword.operator.relational,keyword.operator.assignment,keyword.operator.comparison,keyword.operator.ternary,keyword.operator.arithmetic,keyword.operator.spread",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Strings",
"scope": "string,string.character.escape,string.template.quoted,string.template.quoted.punctuation,string.template.quoted.punctuation.single,string.template.quoted.punctuation.double,string.type.declaration.annotation,string.template.quoted.punctuation.tag",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "String Interpolation Begin and End",
"scope": "punctuation.definition.template-expression.begin,punctuation.definition.template-expression.end",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "String Interpolation Body",
"scope": "expression.string,meta.template.expression",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Number",
"scope": "constant.numeric",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "Built-in constant",
"scope": "constant.language,variable.language",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "User-defined constant",
"scope": "constant.character, constant.other",
"settings": {
"foreground": "#9876AA"
}
},
{
"name": "Keyword",
"scope": "keyword,keyword.operator.new,keyword.operator.delete,keyword.operator.static,keyword.operator.this,keyword.operator.expression",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Types, Class Types",
"scope": "entity.name.type,meta.return.type,meta.type.annotation,meta.type.parameters,support.type.primitive",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "Storage type",
"scope": "storage,storage.type,storage.modifier,storage.arrow",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Class constructor",
"scope": "class.instance.constructor,new.expr entity.name.type",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Function",
"scope": "support.function, entity.name.function",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Function Types",
"scope": "annotation.meta.ts, annotation.meta.tsx",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Function Argument",
"scope": "variable.parameter, operator.rest.parameters",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Variable, Property",
"scope": "variable.property,variable.other.property,variable.other.object.property,variable.object.property,support.variable.property",
"settings": {
"foreground": "#9876AA"
}
},
{
"name": "Module Name",
"scope": "quote.module",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Markup Headings",
"scope": "markup.heading",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Tag name",
"scope": "punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.name.tag",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Tag attribute",
"scope": "entity.other.attribute-name",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Object Keys",
"scope": "meta.object-literal.key",
"settings": {
"foreground": "#9876AA"
}
},
{
"name": "TypeScript Class Modifiers",
"scope": "storage.modifier.ts",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "TypeScript Type Casting",
"scope": "ts.cast.expr,ts.meta.entity.class.method.new.expr.cast,ts.meta.entity.type.name.new.expr.cast,ts.meta.entity.type.name.var-single-variable.annotation,tsx.cast.expr,tsx.meta.entity.class.method.new.expr.cast,tsx.meta.entity.type.name.new.expr.cast,tsx.meta.entity.type.name.var-single-variable.annotation",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "TypeScript Type Declaration",
"scope": "ts.meta.type.support,ts.meta.type.entity.name,ts.meta.class.inherited-class,tsx.meta.type.support,tsx.meta.type.entity.name,tsx.meta.class.inherited-class,type-declaration,enum-declaration",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "TypeScript Method Declaration",
"scope": "function-declaration,method-declaration,method-overload-declaration,type-fn-type-parameters",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Documentation Block",
"scope": "comment.block.documentation",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Documentation Highlight (JSDoc)",
"scope": "storage.type.class.jsdoc",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Import-Export-All (*) Keyword",
"scope": "constant.language.import-export-all",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Object Key Seperator",
"scope": "objectliteral.key.separator, punctuation.separator.key-value",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Regex",
"scope": "regex",
"settings": {
"fontStyle": " italic"
}
},
{
"name": "Typescript Namespace",
"scope": "ts.meta.entity.name.namespace,tsx.meta.entity.name.namespace",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Regex Character-class",
"scope": "regex.character-class",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Class Name",
"scope": "entity.name.type.class",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Class Inheritances",
"scope": "entity.other.inherited-class",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "Documentation Entity",
"scope": "entity.name.type.instance.jsdoc",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "YAML entity",
"scope": "yaml.entity.name,yaml.string.entity.name",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "YAML string value",
"scope": "yaml.string.out",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Ignored (Exceptions Rules)",
"scope": "meta.brace.square.ts,block.support.module,block.support.type.module,block.support.function.variable,punctuation.definition.typeparameters.begin,punctuation.definition.typeparameters.end",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Regex",
"scope": "string.regexp",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Regex Group/Set",
"scope": "punctuation.definition.group.regexp,punctuation.definition.character-class.regexp",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Regex Character Class",
"scope": "constant.other.character-class.regexp, constant.character.escape.ts",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Regex Or Operator",
"scope": "expr.regex.or.operator",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Tag string",
"scope": "string.template.tag,string.template.punctuation.tag,string.quoted.punctuation.tag,string.quoted.embedded.tag, string.quoted.double.tag",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Tag function parenthesis",
"scope": "tag.punctuation.begin.arrow.parameters.embedded,tag.punctuation.end.arrow.parameters.embedded",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "Object-literal key class",
"scope": "object-literal.object.member.key.field.other,object-literal.object.member.key.accessor,object-literal.object.member.key.array.brace.square",
"settings": {
"foreground": "#A9B7C6"
}
},
{
"name": "CSS Property-value",
"scope": "property-list.property-value,property-list.constant",
"settings": {
"foreground": "#A5C261"
}
},
{
"name": "CSS Property variable",
"scope": "support.type.property-name.variable.css,support.type.property-name.variable.scss,variable.scss",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "CSS Property entity",
"scope": "entity.other.attribute-name.class.css,entity.other.attribute-name.class.scss,entity.other.attribute-name.parent-selector-suffix.css,entity.other.attribute-name.parent-selector-suffix.scss",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS Property-value",
"scope": "property-list.property-value.rgb-value, keyword.other.unit.css,keyword.other.unit.scss",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "CSS Property-value function",
"scope": "property-list.property-value.function",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS constant variables",
"scope": "support.constant.property-value.css,support.constant.property-value.scss",
"settings": {
"foreground": "#A5C261"
}
},
{
"name": "CSS Tag",
"scope": "css.entity.name.tag,scss.entity.name.tag",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "CSS ID, Selector",
"scope": "meta.selector.css, entity.attribute-name.id, entity.other.attribute-name.pseudo-class.css,entity.other.attribute-name.pseudo-element.css",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS Keyword",
"scope": "keyword.scss,keyword.css",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Triple-slash Directive Tag",
"scope": "triple-slash.tag",
"settings": {
"foreground": "#A9B7C6",
"fontStyle": "italic"
}
},
{
"scope": "token.info-token",
"settings": {
"foreground": "#6796e6"
}
},
{
"scope": "token.warn-token",
"settings": {
"foreground": "#cd9731"
}
},
{
"scope": "token.error-token",
"settings": {
"foreground": "#f44747"
}
},
{
"scope": "token.debug-token",
"settings": {
"foreground": "#b267e6"
}
},
{
"name": "Python operators",
"scope": "keyword.operator.logical.python",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Dart class type",
"scope": "support.class.dart",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "PHP variables",
"scope": ["variable.language.php", "variable.other.php"],
"settings": {
"foreground": "#9876AA"
}
},
{
"name": "PHP variables",
"scope": ["variable.other.property.php"],
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "PHP variables",
"scope": ["support.variable.property.php"],
"settings": {
"foreground": "#FFC66D"
}
}
]
}

44
.vsixmanifest Normal file
View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Language="en-US" Id="vscode-theme-darcula" Version="1.2.3" Publisher="rokoroku"/>
<DisplayName>Darcula Theme</DisplayName>
<Description xml:space="preserve">A theme extension for VS Code based on Darcula theme from Jetbrains IDEs</Description>
<Tags>theme,color-theme</Tags>
<Categories>Themes</Categories>
<GalleryFlags>Public</GalleryFlags>
<Badges></Badges>
<Properties>
<Property Id="Microsoft.VisualStudio.Code.Engine" Value="*" />
<Property Id="Microsoft.VisualStudio.Code.ExtensionDependencies" Value="" />
<Property Id="Microsoft.VisualStudio.Code.ExtensionPack" Value="" />
<Property Id="Microsoft.VisualStudio.Code.ExtensionKind" Value="ui,workspace,web" />
<Property Id="Microsoft.VisualStudio.Code.LocalizedLanguages" Value="" />
<Property Id="Microsoft.VisualStudio.Services.Links.Source" Value="https://github.com/rokoroku/vscode-theme-darcula" />
<Property Id="Microsoft.VisualStudio.Services.Links.Getstarted" Value="https://github.com/rokoroku/vscode-theme-darcula" />
<Property Id="Microsoft.VisualStudio.Services.Links.GitHub" Value="https://github.com/rokoroku/vscode-theme-darcula" />
<Property Id="Microsoft.VisualStudio.Services.GitHubFlavoredMarkdown" Value="true" />
</Properties>
<License>extension/LICENSE.txt</License>
<Icon>extension/icon.png</Icon>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Code"/>
</Installation>
<Dependencies/>
<Assets>
<Asset Type="Microsoft.VisualStudio.Code.Manifest" Path="extension/package.json" Addressable="true" />
<Asset Type="Microsoft.VisualStudio.Services.Content.Details" Path="extension/README.md" Addressable="true" /><Asset Type="Microsoft.VisualStudio.Services.Content.Changelog" Path="extension/CHANGELOG.md" Addressable="true" /><Asset Type="Microsoft.VisualStudio.Services.Content.License" Path="extension/LICENSE.txt" Addressable="true" /><Asset Type="Microsoft.VisualStudio.Services.Icons.Default" Path="extension/icon.png" Addressable="true" />
</Assets>
</PackageManifest>

61
CHANGELOG.md Normal file
View File

@ -0,0 +1,61 @@
## v1.2.1
- Add php variable rule (#15)
- Add dart class rule (#20)
## v1.2.0
- Update UI styles (workbench, editor, ...)
## v1.1.3
- Add python logical operator rule (#10)
## v1.1.1
- Fix const variable coloring (#11)
## v1.1.0
- Migrate to vscode theme json format
- Update UI styles
## v1.0.13
- Fix broken scss rules
## v1.0.12
- Fix broken `new Class()` colorization
- Fix broken return type parameters colorization
- Fix broken string template syntax colorization
## v1.0.11
- Fix broken rules since VSCode v1.9
## v1.0.10
- Add missing support for .tsx files
## v1.0.9
- Revert background color to the default (fixes [#3](https://github.com/rokoroku/vscode-theme-darcula/issues/3))
- Change the line highlight color according to the background color change
## v1.0.8
- Add icon for vscode extension
- Add triple-slash directive colorization
- Add regex capture group colorization
- Fix wrong operator colorization on file scoped code
- Change XML/HTML string color to match other string
- Change line highlight color & background color to match the original theme (fixes [#2](https://github.com/rokoroku/vscode-theme-darcula/issues/2))
## v1.0.7
- Improve CSS/SCSS colorization
## v1.0.6
- Improve JSX/TSX colorization
- Improve regex class colorization
## v1.0.5
- Change JSX/TSX tag color to match the original theme
- Fix wrong operator colors inside function block
- Fix string quote color in template string syntax ``` `${'string'}` ```
## v1.0.4
- Fix wrong highlight color for types inside arrow function block
## v1.0.3
- Fix wrong highlight color for block scoped variables.
- Add YAML syntax highligting.

21
LICENSE.txt Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Youngrok Kim
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

35
README.md Normal file
View File

@ -0,0 +1,35 @@
# Darcula
[![Version](https://vsmarketplacebadge.apphb.com/version/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
[![Installs](https://vsmarketplacebadge.apphb.com/installs/rokoroku.vscode-theme-darcula.svg)](https://marketplace.visualstudio.com/items?itemName=rokoroku.vscode-theme-darcula)
A theme extension for [Visual Studio Code](https://code.visualstudio.com) based on **Darcula** theme from [Jetbrains](https://www.jetbrains.com) IDEs.
---
## Changelog
See [CHANGELOG.md](https://github.com/rokoroku/vscode-theme-darcula/blob/master/./CHANGELOG.md)
## Description
- Mainly focused on HTML5 / CSS / JS (TS) development.
- **Not exactly same with the theme from Jetbrains IDE**. There are few modifications to match look and feel with VS Code IDE.
- Follows common textmate tokens (such as `entity.name.type`, `entity.name.function`, `variable.property`...) so try it on any languages and report issues on the GitHub repo.
- Any suggestions/contributions are welcomed!
## Setting
- When installation completes, select **Darcula** as your color theme (Preferences → Workbench: Color Theme → **Darcula**)
## Customizing
- If you want to customize on top of this theme, use vscode's [color customization](https://code.visualstudio.com/docs/getstarted/themes#_customizing-a-color-theme) feature.
(Related Issue: [#9](https://github.com/rokoroku/vscode-theme-darcula/issues/9), [#15](https://github.com/rokoroku/vscode-theme-darcula/issues/15))
## Screenshot
![Screenshot](https://github.com/rokoroku/vscode-theme-darcula/raw/master/screenshot.png)
**Enjoy!**

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

21
icon.svg Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 120 120" style="enable-background:new 0 0 120 120;" xml:space="preserve">
<style type="text/css">
.st0{fill:#474747;}
.st1{fill:#FFC66D;}
.st2{fill:#9E7BB0;}
.st3{fill:#6A8759;}
.st4{fill:#7A9EC2;}
</style>
<circle class="st0" cx="60" cy="60" r="60" />
<g>
<path d="M80.7,100.1c-6.2,3.3-13.2,5.1-20.7,5.1C35.2,105.2,15.2,85,15.2,60S35.2,14.8,60,14.8S104.8,35,104.8,60
c0,2.9-0.3,5.8-0.8,8.5c-2.4,10.2-9,8.6-9,8.6s-9-4.3-15.7,0.9C75,81.3,78,92.5,80.7,100.1z M69.1,88.4c0-3.2-2.6-5.8-5.8-5.8
s-5.8,2.6-5.8,5.8c0,3.2,2.6,5.8,5.8,5.8S69.1,91.6,69.1,88.4z" />
<circle class="st1" cx="39.1" cy="74" r="10.7" />
<circle class="st2" cx="35.6" cy="46.8" r="10.7" />
<circle class="st3" cx="60" cy="32.2" r="10.7" />
<circle class="st4" cx="84.5" cy="45.8" r="10.7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

42
package.json Normal file
View File

@ -0,0 +1,42 @@
{
"name": "vscode-theme-darcula",
"displayName": "Darcula Theme",
"description": "A theme extension for VS Code based on Darcula theme from Jetbrains IDEs",
"version": "1.2.3",
"publisher": "rokoroku",
"scripts": {
"publish": "vsce publish"
},
"repository": {
"type": "git",
"url": "https://github.com/rokoroku/vscode-theme-darcula"
},
"engines": {
"vscode": "*"
},
"categories": [
"Themes"
],
"icon": "icon.png",
"contributes": {
"themes": [
{
"label": "Darcula",
"uiTheme": "vs-dark",
"path": "./themes/darcula.json"
}
]
},
"__metadata": {
"id": "ec2271c0-9d6d-44c5-93e5-7e8cda744f21",
"publisherId": "99720f95-61af-4d5e-9133-3cc10f4f30ea",
"publisherDisplayName": "rokoroku",
"targetPlatform": "undefined",
"isApplicationScoped": false,
"updated": false,
"isPreReleaseVersion": false,
"installedTimestamp": 1680821869132,
"preRelease": false,
"size": 48557
}
}

543
themes/darcula.json Normal file
View File

@ -0,0 +1,543 @@
{
"type": "dark",
"semanticHighlighting": true,
"colors": {
"editor.background": "#242424",
"editor.foreground": "#cccccc",
"editor.selectionBackground": "#204182cc",
"editor.lineHighlightBackground": "#ffffff0b",
"editor.activeLineNumber.foreground": "#cccccc",
"editorGutter.background": "#ffffff0b",
"titleBar.activeBackground": "#ffffff1a",
"titleBar.inactiveBackground": "#ffffff10",
"titleBar.activeForeground": "#cccccc",
"sideBar.border": "#ffffff1a",
"sideBar.background": "#242424",
"statusBar.foreground": "#cccccc",
"statusBar.background": "#ffffff1a",
"tab.activeBackground": "#ffffff1a",
"tab.inactiveBackground": "#ffffff0b",
"tab.activeBorder": "#0c7d9d",
"editorSuggestWidget.background": "#303030",
"editorSuggestWidget.highlightForeground": "#cc6e2f",
"editorSuggestWidget.selectedBackground": "#204182cc",
"badge.background": "#ffffff1a",
"activityBar.background": "#ffffff1a",
"activityBarBadge.background": "#007acc"
},
"semanticTokenColors": {
"class.typeHint.builtin": {
"foreground": "#CF7379"
},
"class" : {
"foreground" : "#89C543"
}
},
"tokenColors": [
{
"name" : "Python Type",
"scope" : "support.type.python",
"settings" : {
"foreground" : "#CF7379"
}
},
{
"name" : "Python Type 2",
"scope" : [
"entity.name.type.class.python.builtin",
"entity.name.type.class.builtin",
"class.builtin",
"class.typeHint.builtin"
],
"settings" : {
"foreground" : "#CF7379"
}
},
{
"name" : "Python Self",
"scope" : "variable.parameter.function.language.special.self.python",
"settings" : {
"foreground": "#C9FF4A",
"fontStyle": "bold"
}
},
{
"name" : "Python module",
"scope" : "entity.name.namespace",
"settings" : {
"foreground" : "#d64a53"
}
},
{
"name": "Comment",
"scope": "comment",
"settings": {
"foreground": "#707070"
}
},
{
"name": "Operator Keywords",
"scope": "keyword.operator,keyword.operator.logical,keyword.operator.relational,keyword.operator.assignment,keyword.operator.comparison,keyword.operator.ternary,keyword.operator.arithmetic,keyword.operator.spread",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Strings",
"scope": "string,string.character.escape,string.template.quoted,string.template.quoted.punctuation,string.template.quoted.punctuation.single,string.template.quoted.punctuation.double,string.type.declaration.annotation,string.template.quoted.punctuation.tag",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "String Interpolation Begin and End",
"scope": "punctuation.definition.template-expression.begin,punctuation.definition.template-expression.end",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "String Interpolation Body",
"scope": "expression.string,meta.template.expression",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Number",
"scope": "constant.numeric",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "Built-in constant",
"scope": "constant.language,variable.language",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "User-defined constant",
"scope": "constant.character, constant.other",
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "Keyword",
"scope": "keyword,keyword.operator.new,keyword.operator.delete,keyword.operator.static,keyword.operator.this,keyword.operator.expression",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Storage type",
"scope": "storage,storage.type,storage.modifier,storage.arrow",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Class constructor",
"scope": "class.instance.constructor,new.expr entity.name.type",
"settings": {
"foreground": "#FDB137"
}
},
{
"name": "Function",
"scope": "support.function, entity.name.function",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Python function call",
"scope": "meta.function-call.generic.python",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Python variable params",
"scope": "variable.parameter.function-call.python",
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "Function Types",
"scope": "annotation.meta.ts, annotation.meta.tsx",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Python Class",
"scope": [
"class.declaration:python",
"entity.name.type.class.python",
"class.typeHint",
"meta.item-access.arguments.python"
],
"settings": {
"foreground": "#89C543"
}
},
{
"name": "Inherited class",
"scope": "entity.other.inherited-class",
"settings": {
"foreground": "#D50"
}
},
{
"name": "Function Argument",
"scope": "variable.parameter, operator.rest.parameters",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Variable, Property",
"scope": "variable.property,variable.other.property,variable.other.object.property,variable.object.property,support.variable.property",
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "Module Name",
"scope": "quote.module",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Markup Headings",
"scope": "markup.heading",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Tag name",
"scope": "punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end, entity.name.tag",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Tag attribute",
"scope": "entity.other.attribute-name",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Object Keys",
"scope": "meta.object-literal.key",
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "TypeScript Class Modifiers",
"scope": "storage.modifier.ts",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "TypeScript Type Casting",
"scope": "ts.cast.expr,ts.meta.entity.class.method.new.expr.cast,ts.meta.entity.type.name.new.expr.cast,ts.meta.entity.type.name.var-single-variable.annotation,tsx.cast.expr,tsx.meta.entity.class.method.new.expr.cast,tsx.meta.entity.type.name.new.expr.cast,tsx.meta.entity.type.name.var-single-variable.annotation",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "TypeScript Type Declaration",
"scope": "ts.meta.type.support,ts.meta.type.entity.name,ts.meta.class.inherited-class,tsx.meta.type.support,tsx.meta.type.entity.name,tsx.meta.class.inherited-class,type-declaration,enum-declaration",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "TypeScript Method Declaration",
"scope": "function-declaration,method-declaration,method-overload-declaration,type-fn-type-parameters",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Documentation Block",
"scope": "comment.block.documentation",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Documentation Highlight (JSDoc)",
"scope": "storage.type.class.jsdoc",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Import-Export-All (*) Keyword",
"scope": "constant.language.import-export-all",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Object Key Seperator",
"scope": "objectliteral.key.separator, punctuation.separator.key-value",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Regex",
"scope": "regex",
"settings": {
"fontStyle": " italic"
}
},
{
"name": "Typescript Namespace",
"scope": "ts.meta.entity.name.namespace,tsx.meta.entity.name.namespace",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Regex Character-class",
"scope": "regex.character-class",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Class Inheritances",
"scope": "entity.other.inherited-class",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "Documentation Entity",
"scope": "entity.name.type.instance.jsdoc",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "YAML entity",
"scope": "yaml.entity.name,yaml.string.entity.name",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "YAML string value",
"scope": "yaml.string.out",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Ignored (Exceptions Rules)",
"scope": "meta.brace.square.ts,block.support.module,block.support.type.module,block.support.function.variable,punctuation.definition.typeparameters.begin,punctuation.definition.typeparameters.end",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Regex",
"scope": "string.regexp",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Regex Group/Set",
"scope": "punctuation.definition.group.regexp,punctuation.definition.character-class.regexp",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "Regex Character Class",
"scope": "constant.other.character-class.regexp, constant.character.escape.ts",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Regex Or Operator",
"scope": "expr.regex.or.operator",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Tag string",
"scope": "string.template.tag,string.template.punctuation.tag,string.quoted.punctuation.tag,string.quoted.embedded.tag, string.quoted.double.tag",
"settings": {
"foreground": "#6A8759"
}
},
{
"name": "Tag function parenthesis",
"scope": "tag.punctuation.begin.arrow.parameters.embedded,tag.punctuation.end.arrow.parameters.embedded",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "Object-literal key class",
"scope": "object-literal.object.member.key.field.other,object-literal.object.member.key.accessor,object-literal.object.member.key.array.brace.square",
"settings": {
"foreground": "#CCCCCC"
}
},
{
"name": "CSS Property-value",
"scope": "property-list.property-value,property-list.constant",
"settings": {
"foreground": "#A5C261"
}
},
{
"name": "CSS Property variable",
"scope": "support.type.property-name.variable.css,support.type.property-name.variable.scss,variable.scss",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "CSS Property entity",
"scope": "entity.other.attribute-name.class.css,entity.other.attribute-name.class.scss,entity.other.attribute-name.parent-selector-suffix.css,entity.other.attribute-name.parent-selector-suffix.scss",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS Property-value",
"scope": "property-list.property-value.rgb-value, keyword.other.unit.css,keyword.other.unit.scss",
"settings": {
"foreground": "#7A9EC2"
}
},
{
"name": "CSS Property-value function",
"scope": "property-list.property-value.function",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS constant variables",
"scope": "support.constant.property-value.css,support.constant.property-value.scss",
"settings": {
"foreground": "#A5C261"
}
},
{
"name": "CSS Tag",
"scope": "css.entity.name.tag,scss.entity.name.tag",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "CSS ID, Selector",
"scope": "meta.selector.css, entity.attribute-name.id, entity.other.attribute-name.pseudo-class.css,entity.other.attribute-name.pseudo-element.css",
"settings": {
"foreground": "#FFC66D"
}
},
{
"name": "CSS Keyword",
"scope": "keyword.scss,keyword.css",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Triple-slash Directive Tag",
"scope": "triple-slash.tag",
"settings": {
"foreground": "#CCCCCC",
"fontStyle": "italic"
}
},
{
"scope": "token.info-token",
"settings": {
"foreground": "#6796e6"
}
},
{
"scope": "token.warn-token",
"settings": {
"foreground": "#cd9731"
}
},
{
"scope": "token.error-token",
"settings": {
"foreground": "#f44747"
}
},
{
"scope": "token.debug-token",
"settings": {
"foreground": "#b267e6"
}
},
{
"name": "Python operators",
"scope": "keyword.operator.logical.python",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "Dart class type",
"scope": "support.class.dart",
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "PHP variables",
"scope": ["variable.language.php", "variable.other.php"],
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "Perl specific",
"scope": ["variable.other.readwrite.perl"],
"settings": {
"foreground": "#9E7BB0"
}
},
{
"name": "PHP variables",
"scope": ["variable.other.property.php"],
"settings": {
"foreground": "#CC8242"
}
},
{
"name": "PHP variables",
"scope": ["support.variable.property.php"],
"settings": {
"foreground": "#FFC66D"
}
}
]
}