diff --git a/src/data/extra/themes/vx-idea/README.md b/src/data/extra/themes/vx-idea/README.md new file mode 100644 index 00000000..25ac9e4b --- /dev/null +++ b/src/data/extra/themes/vx-idea/README.md @@ -0,0 +1,44 @@ +
vnoteX idea theme
+ + + +自定义方式参考[Vnote](https://tamlok.github.io/vnote/zh_cn/)官方文档:[主题和样式](https://tamlok.github.io/vnote/zh_cn/#!docs/%E7%94%A8%E6%88%B7/%E4%B8%BB%E9%A2%98%E5%92%8C%E6%A0%B7%E5%BC%8F.md) + +`vx-idea`主题又名`石板灰`,适用于新版本[vnotex](https://vnotex.github.io/vnote/zh_cn/#!vnotex.md)版本;vnote 2.0` 版本请前往源仓库切换至` vnote 分支。 + + +👉 尝鲜体验,请移步源仓库:https://gitee.com/uRick/vnote-idea-theme + +## 1. 可选配置 + +### 1.1 适配2套代码高亮主题 + +详见主题目录 `code_higlight` 文件夹内容,因人而异,可根据需求参考官方自定义。 + +主题默认样式为`highlight-one-light.css`,当前提供:`highlight-dark.css`、`highlight-one-light.css`两款代码样式;主题样式基于仓库[PrismJS Themes](https://github.com/PrismJS/prism-themes)样式微调而来,具体支持语言样式请参考[Prism.js](https://prismjs.com)。 + +使用主题时,请将`code_highlight`文件夹下样式,复制重命名替换主题根目录下`highlight.css`样式,重启Vnotex即可生效。 + +```ini +highlight-dark.css #dark样式 +highlight-one-light.css #light样式 +YaHei Consolas Hybrid 1.12.ttf #主题首选字体,可选 +``` + + +### 1.2 alert组件增强 + +> 基于`vnotex`原生 `alert` 组件支持,引入图标增强,主要为编写技术文档适配,当前不支持 `alert-light`、`alert-success`。 +效果如下: + +![提示组件预览效果](tips_components/alert.png) + +复制 `tips_components/style.css` 中样式——>追加至 `web.css` 文件尾即可。 + +## 2. 预览 + +![主题效果图](cover.png) + +## 3. 鸣谢 + +- [tamlok](https://github.com/tamlok) - [VNote](https://github.com/tamlok/vnote) \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/arrow_dropdown.svg b/src/data/extra/themes/vx-idea/arrow_dropdown.svg new file mode 100644 index 00000000..41fa00d2 --- /dev/null +++ b/src/data/extra/themes/vx-idea/arrow_dropdown.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/arrow_dropdown_disabled.svg b/src/data/extra/themes/vx-idea/arrow_dropdown_disabled.svg new file mode 100644 index 00000000..ff420af8 --- /dev/null +++ b/src/data/extra/themes/vx-idea/arrow_dropdown_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/branch_closed.svg b/src/data/extra/themes/vx-idea/branch_closed.svg new file mode 100644 index 00000000..f44c49d0 --- /dev/null +++ b/src/data/extra/themes/vx-idea/branch_closed.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/vx-idea/branch_open.svg b/src/data/extra/themes/vx-idea/branch_open.svg new file mode 100644 index 00000000..e6b5decc --- /dev/null +++ b/src/data/extra/themes/vx-idea/branch_open.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/vx-idea/checkbox_checked.svg b/src/data/extra/themes/vx-idea/checkbox_checked.svg new file mode 100644 index 00000000..9760cfa1 --- /dev/null +++ b/src/data/extra/themes/vx-idea/checkbox_checked.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/checkbox_checked_disabled.svg b/src/data/extra/themes/vx-idea/checkbox_checked_disabled.svg new file mode 100644 index 00000000..ec3f7a41 --- /dev/null +++ b/src/data/extra/themes/vx-idea/checkbox_checked_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/checkbox_unchecked.svg b/src/data/extra/themes/vx-idea/checkbox_unchecked.svg new file mode 100644 index 00000000..f99d5a12 --- /dev/null +++ b/src/data/extra/themes/vx-idea/checkbox_unchecked.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/checkbox_unchecked_disabled.svg b/src/data/extra/themes/vx-idea/checkbox_unchecked_disabled.svg new file mode 100644 index 00000000..a51120c2 --- /dev/null +++ b/src/data/extra/themes/vx-idea/checkbox_unchecked_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/close.svg b/src/data/extra/themes/vx-idea/close.svg new file mode 100644 index 00000000..f9a34611 --- /dev/null +++ b/src/data/extra/themes/vx-idea/close.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/close_grey.svg b/src/data/extra/themes/vx-idea/close_grey.svg new file mode 100644 index 00000000..6311538f --- /dev/null +++ b/src/data/extra/themes/vx-idea/close_grey.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/code_highlight/YaHei Consolas Hybrid 1.12.ttf b/src/data/extra/themes/vx-idea/code_highlight/YaHei Consolas Hybrid 1.12.ttf new file mode 100644 index 00000000..ea974aa3 Binary files /dev/null and b/src/data/extra/themes/vx-idea/code_highlight/YaHei Consolas Hybrid 1.12.ttf differ diff --git a/src/data/extra/themes/vx-idea/code_highlight/highlight-dark.css b/src/data/extra/themes/vx-idea/code_highlight/highlight-dark.css new file mode 100644 index 00000000..1a10d081 --- /dev/null +++ b/src/data/extra/themes/vx-idea/code_highlight/highlight-dark.css @@ -0,0 +1,232 @@ +/* PrismJS 1.23.0 +https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apl+applescript+aql+arduino+arff+asciidoc+aspnet+asm6502+autohotkey+autoit+bash+basic+batch+bbcode+bison+bnf+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cil+clojure+cmake+coffeescript+concurnas+csp+crystal+css-extras+cypher+d+dart+dax+dhall+diff+django+dns-zone-file+docker+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+firestore-security-rules+flow+fortran+ftl+gml+gcode+gdscript+gedcom+gherkin+git+glsl+go+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+http+hpkp+hsts+ichigojam+icon+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keyman+kotlin+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+lolcode+lua+makefile+markdown+markup-templating+matlab+mel+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+pascaligo+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plsql+powerquery+powershell+processing+prolog+properties+protobuf+pug+puppet+pure+purebasic+python+q+qml+qore+r+racket+jsx+tsx+reason+regex+renpy+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+stan+iecst+stylus+swift+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+turtle+twig+typescript+typoscript+unrealscript+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+wiki+xeora+xml-doc+xojo+xquery+yaml+yang+zig&plugins=line-numbers+toolbar+copy-to-clipboard+filter-highlight-all */ +/** + * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML + * Based on https://github.com/chriskempson/tomorrow-theme + * @author Rose Pritchard + */ + + code[class*="language-"], + pre[class*="language-"] { + color: #ccc; + background: none; + font-family: "YaHei Consolas Hybrid", JetBrains Mono NL, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + border-radius: .3em; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + + } + + /* Code blocks */ + pre[class*="language-"] { + padding: .4em; + margin: .5em 0; + overflow: auto; + } + + :not(pre) > code[class*="language-"], + pre[class*="language-"] { + background: #2d2d2d; + } + + /* Inline code */ + :not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; + } + + .token.comment, + .token.block-comment, + .token.prolog, + .token.doctype, + .token.cdata { + color: #999; + } + + .token.punctuation { + color: #ccc; + } + + .token.tag, + .token.attr-name, + .token.namespace, + .token.deleted { + color: #e2777a; + } + + .token.function-name { + color: #6196cc; + } + + .token.boolean, + .token.number, + .token.function { + color: #f08d49; + } + + .token.property, + .token.class-name, + .token.constant, + .token.symbol { + color: #f8c555; + } + + .token.selector, + .token.important, + .token.atrule, + .token.keyword, + .token.builtin { + color: #cc99cd; + } + + .token.string, + .token.char, + .token.attr-value, + .token.regex, + .token.variable { + color: #7ec699; + } + + .token.operator, + .token.entity, + .token.url { + color: #67cdcc; + } + + .token.important, + .token.bold { + font-weight: bold; + } + .token.italic { + font-style: italic; + } + + .token.entity { + cursor: help; + } + + .token.inserted { + color: green; + } + + pre[class*="language-"].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; + } + + pre[class*="language-"].line-numbers > code { + position: relative; + white-space: inherit; + } + + .line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + } + + .line-numbers-rows > span { + display: block; + counter-increment: linenumber; + } + + .line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; + } + + div.code-toolbar { + position: relative; + } + + div.code-toolbar > .toolbar { + position: absolute; + top: .3em; + right: .2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; + } + + div.code-toolbar:hover > .toolbar { + opacity: 1; + } + + /* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ + div.code-toolbar:focus-within > .toolbar { + opacity: 1; + } + + div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; + } + + div.code-toolbar > .toolbar a { + cursor: pointer; + } + + div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; + } + + div.code-toolbar > .toolbar a, + div.code-toolbar > .toolbar button, + div.code-toolbar > .toolbar span { + color: #bbb; + font-size: .8em; + padding: 0 .5em; + background: #f5f2f0; + background: rgba(224, 224, 224, 0.2); + box-shadow: 0 2px 0 0 rgba(66, 185, 131, .1);; + border-radius: .5em; + } + + div.code-toolbar > .toolbar a:hover, + div.code-toolbar > .toolbar a:focus, + div.code-toolbar > .toolbar button:hover, + div.code-toolbar > .toolbar button:focus, + div.code-toolbar > .toolbar span:hover, + div.code-toolbar > .toolbar span:focus { + color: #ffffff; + text-decoration: none; + } + + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/code_highlight/highlight-one-light.css b/src/data/extra/themes/vx-idea/code_highlight/highlight-one-light.css new file mode 100644 index 00000000..93b238ea --- /dev/null +++ b/src/data/extra/themes/vx-idea/code_highlight/highlight-one-light.css @@ -0,0 +1,297 @@ + +/** + * One Light theme for prism.js + * Based on Atom's One Light theme: https://github.com/atom/atom/tree/master/packages/one-light-syntax + */ + +/** + * One Light colours in terms of RGB (accurate as of commit eb064bf on 19 Feb 2021) + * @mono-1: #383a42 + * @mono-2: #696c77 + * @mono-3: #a0a1a7 + * @hue-1: #0184bc <- cyan + * @hue-2: #4078f2 <- blue + * @hue-3: #a626a4 <- purple + * @hue-4: #16a085 <- green + * @hue-5: #e45649 <- red 1 + * @hue-5-2: #ca1243 <- red 2 + * @hue-6: #b76b01 <- orange 1 + * @hue-6-2: #cb7701 <- orange 2 + * @syntax-fg: #383a42 + * @syntax-bg: #f4f7f9 + * @syntax-gutter: #9d9d9f + * @syntax-guide: #383a4233 + * @syntax-accent: #526eff + */ + + code[class*="language-"], + pre[class*="language-"] { + background: #f4f7f9; + color: #383a42; + font-family: "YaHei Consolas Hybrid", JetBrains Mono NL, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + line-height: 1.5; + + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + } + + + /* Code blocks */ + pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; + } + + /* Inline code */ + :not(pre) > code[class*="language-"] { + padding: 0.2em 0.3em; + border-radius: 0.3em; + white-space: normal; + } + + .token.comment, + .token.prolog, + .token.cdata { + color: #00804e; + } + + .token.doctype, + .token.punctuation, + .token.entity { + color: #383a42; + } + + .token.attr-name, + .token.class-name, + .token.boolean, + .token.constant, + .token.number, + .token.atrule { + color: #b76b01; + } + + .token.keyword { + color: #a626a4; + } + + .token.property, + .token.tag, + .token.symbol, + .token.deleted, + .token.important { + color: #e45649; + } + + .token.selector, + .token.string, + .token.char, + .token.builtin, + .token.inserted, + .token.regex, + .token.attr-value, + .token.attr-value > .token.punctuation { + color: #16a085; + } + + .token.variable, + .token.operator, + .token.function { + color: #4078f2; + } + + .token.url { + color: #0184bc; + text-decoration: underline; + } + + /* HTML overrides */ + .token.attr-value > .token.punctuation.attr-equals, + .token.special-attr > .token.attr-value > .token.value.css { + color: #383a42; + } + + /* CSS overrides */ + .language-css .token.selector { + color: #e45649; + } + + .language-css .token.property { + color: #383a42; + } + + .language-css .token.url { + text-decoration: none; + } + + .language-css .token.function, + .language-css .token.url > .token.function { + color: #0184bc; + } + + .language-css .token.url > .token.string.url { + color: #16a085; + } + + .language-css .token.important, + .language-css .token.atrule .token.rule { + color: #a626a4; + } + + /* JS overrides */ + .language-javascript .token.operator { + color: #a626a4; + } + + .language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation { + color: #ca1243; + } + + /* JSON overrides */ + .language-json .token.operator { + color: #383a42; + } + + .language-json .token.null.keyword { + color: #b76b01; + } + + /* MD overrides */ + .language-markdown .token.url, + .language-markdown .token.url > .token.operator, + .language-markdown .token.url-reference.url > .token.string { + color: #383a42; + text-decoration: none; + } + + .language-markdown .token.url > .token.content { + color: #4078f2; + text-decoration: none; + } + + .language-markdown .token.url > .token.url, + .language-markdown .token.url-reference.url { + color: #0184bc; + text-decoration: underline; + } + + .language-markdown .token.blockquote.punctuation, + .language-markdown .token.hr.punctuation { + color: #a0a1a7; + font-style: italic; + } + + .language-markdown .token.code-snippet { + color: #16a085; + } + + .language-markdown .token.bold .token.content { + color: #b76b01; + } + + .language-markdown .token.italic .token.content { + color: #a626a4; + } + + .language-markdown .token.strike .token.content, + .language-markdown .token.strike .token.punctuation, + .language-markdown .token.list.punctuation, + .language-markdown .token.title.important > .token.punctuation { + color: #e45649; + } + + /* General */ + .token.bold { + font-weight: bold; + } + + /* .token.comment, */ + .token.italic { + font-style: italic; + } + + .token.entity { + cursor: help; + } + + .token.namespace { + opacity: 0.8; + } + + div.code-toolbar { + position: relative; + } + + div.code-toolbar > .toolbar { + position: absolute; + top: .3em; + right: .2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; + } + + div.code-toolbar:hover > .toolbar { + opacity: 1; + } + + /* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ + div.code-toolbar:focus-within > .toolbar { + opacity: 1; + } + + div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; + } + + div.code-toolbar > .toolbar a { + cursor: pointer; + } + + div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; + } + + div.code-toolbar > .toolbar a, + div.code-toolbar > .toolbar button, + div.code-toolbar > .toolbar span { + color: #757F9A; + font-size: .8em; + padding: 0 .5em; + background: #D7DDE8; + box-shadow: 0 2px 0 0 rgba(58, 91, 134, 0.1); + border-radius: .5em; + } + + div.code-toolbar > .toolbar a:hover, + div.code-toolbar > .toolbar a:focus, + div.code-toolbar > .toolbar button:hover, + div.code-toolbar > .toolbar button:focus, + div.code-toolbar > .toolbar span:hover, + div.code-toolbar > .toolbar span:focus { + color: #757F9A; + text-decoration: none; + } + + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/cover.png b/src/data/extra/themes/vx-idea/cover.png new file mode 100644 index 00000000..28c071e4 Binary files /dev/null and b/src/data/extra/themes/vx-idea/cover.png differ diff --git a/src/data/extra/themes/vx-idea/down.svg b/src/data/extra/themes/vx-idea/down.svg new file mode 100644 index 00000000..41fa00d2 --- /dev/null +++ b/src/data/extra/themes/vx-idea/down.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/down_disabled.svg b/src/data/extra/themes/vx-idea/down_disabled.svg new file mode 100644 index 00000000..ff420af8 --- /dev/null +++ b/src/data/extra/themes/vx-idea/down_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/float.svg b/src/data/extra/themes/vx-idea/float.svg new file mode 100644 index 00000000..4a3ad0fb --- /dev/null +++ b/src/data/extra/themes/vx-idea/float.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/highlight.css b/src/data/extra/themes/vx-idea/highlight.css new file mode 100644 index 00000000..93b238ea --- /dev/null +++ b/src/data/extra/themes/vx-idea/highlight.css @@ -0,0 +1,297 @@ + +/** + * One Light theme for prism.js + * Based on Atom's One Light theme: https://github.com/atom/atom/tree/master/packages/one-light-syntax + */ + +/** + * One Light colours in terms of RGB (accurate as of commit eb064bf on 19 Feb 2021) + * @mono-1: #383a42 + * @mono-2: #696c77 + * @mono-3: #a0a1a7 + * @hue-1: #0184bc <- cyan + * @hue-2: #4078f2 <- blue + * @hue-3: #a626a4 <- purple + * @hue-4: #16a085 <- green + * @hue-5: #e45649 <- red 1 + * @hue-5-2: #ca1243 <- red 2 + * @hue-6: #b76b01 <- orange 1 + * @hue-6-2: #cb7701 <- orange 2 + * @syntax-fg: #383a42 + * @syntax-bg: #f4f7f9 + * @syntax-gutter: #9d9d9f + * @syntax-guide: #383a4233 + * @syntax-accent: #526eff + */ + + code[class*="language-"], + pre[class*="language-"] { + background: #f4f7f9; + color: #383a42; + font-family: "YaHei Consolas Hybrid", JetBrains Mono NL, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + line-height: 1.5; + + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + } + + + /* Code blocks */ + pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + border-radius: 0.3em; + } + + /* Inline code */ + :not(pre) > code[class*="language-"] { + padding: 0.2em 0.3em; + border-radius: 0.3em; + white-space: normal; + } + + .token.comment, + .token.prolog, + .token.cdata { + color: #00804e; + } + + .token.doctype, + .token.punctuation, + .token.entity { + color: #383a42; + } + + .token.attr-name, + .token.class-name, + .token.boolean, + .token.constant, + .token.number, + .token.atrule { + color: #b76b01; + } + + .token.keyword { + color: #a626a4; + } + + .token.property, + .token.tag, + .token.symbol, + .token.deleted, + .token.important { + color: #e45649; + } + + .token.selector, + .token.string, + .token.char, + .token.builtin, + .token.inserted, + .token.regex, + .token.attr-value, + .token.attr-value > .token.punctuation { + color: #16a085; + } + + .token.variable, + .token.operator, + .token.function { + color: #4078f2; + } + + .token.url { + color: #0184bc; + text-decoration: underline; + } + + /* HTML overrides */ + .token.attr-value > .token.punctuation.attr-equals, + .token.special-attr > .token.attr-value > .token.value.css { + color: #383a42; + } + + /* CSS overrides */ + .language-css .token.selector { + color: #e45649; + } + + .language-css .token.property { + color: #383a42; + } + + .language-css .token.url { + text-decoration: none; + } + + .language-css .token.function, + .language-css .token.url > .token.function { + color: #0184bc; + } + + .language-css .token.url > .token.string.url { + color: #16a085; + } + + .language-css .token.important, + .language-css .token.atrule .token.rule { + color: #a626a4; + } + + /* JS overrides */ + .language-javascript .token.operator { + color: #a626a4; + } + + .language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation { + color: #ca1243; + } + + /* JSON overrides */ + .language-json .token.operator { + color: #383a42; + } + + .language-json .token.null.keyword { + color: #b76b01; + } + + /* MD overrides */ + .language-markdown .token.url, + .language-markdown .token.url > .token.operator, + .language-markdown .token.url-reference.url > .token.string { + color: #383a42; + text-decoration: none; + } + + .language-markdown .token.url > .token.content { + color: #4078f2; + text-decoration: none; + } + + .language-markdown .token.url > .token.url, + .language-markdown .token.url-reference.url { + color: #0184bc; + text-decoration: underline; + } + + .language-markdown .token.blockquote.punctuation, + .language-markdown .token.hr.punctuation { + color: #a0a1a7; + font-style: italic; + } + + .language-markdown .token.code-snippet { + color: #16a085; + } + + .language-markdown .token.bold .token.content { + color: #b76b01; + } + + .language-markdown .token.italic .token.content { + color: #a626a4; + } + + .language-markdown .token.strike .token.content, + .language-markdown .token.strike .token.punctuation, + .language-markdown .token.list.punctuation, + .language-markdown .token.title.important > .token.punctuation { + color: #e45649; + } + + /* General */ + .token.bold { + font-weight: bold; + } + + /* .token.comment, */ + .token.italic { + font-style: italic; + } + + .token.entity { + cursor: help; + } + + .token.namespace { + opacity: 0.8; + } + + div.code-toolbar { + position: relative; + } + + div.code-toolbar > .toolbar { + position: absolute; + top: .3em; + right: .2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; + } + + div.code-toolbar:hover > .toolbar { + opacity: 1; + } + + /* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ + div.code-toolbar:focus-within > .toolbar { + opacity: 1; + } + + div.code-toolbar > .toolbar .toolbar-item { + display: inline-block; + } + + div.code-toolbar > .toolbar a { + cursor: pointer; + } + + div.code-toolbar > .toolbar button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; + } + + div.code-toolbar > .toolbar a, + div.code-toolbar > .toolbar button, + div.code-toolbar > .toolbar span { + color: #757F9A; + font-size: .8em; + padding: 0 .5em; + background: #D7DDE8; + box-shadow: 0 2px 0 0 rgba(58, 91, 134, 0.1); + border-radius: .5em; + } + + div.code-toolbar > .toolbar a:hover, + div.code-toolbar > .toolbar a:focus, + div.code-toolbar > .toolbar button:hover, + div.code-toolbar > .toolbar button:focus, + div.code-toolbar > .toolbar span:hover, + div.code-toolbar > .toolbar span:focus { + color: #757F9A; + text-decoration: none; + } + + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/flash_page_menu.svg b/src/data/extra/themes/vx-idea/icons/flash_page_menu.svg new file mode 100644 index 00000000..b52a4126 --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/flash_page_menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/read_editor.svg b/src/data/extra/themes/vx-idea/icons/read_editor.svg new file mode 100644 index 00000000..790def81 --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/read_editor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/recycle_bin.svg b/src/data/extra/themes/vx-idea/icons/recycle_bin.svg new file mode 100644 index 00000000..f90263f6 --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/recycle_bin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/task_menu.svg b/src/data/extra/themes/vx-idea/icons/task_menu.svg new file mode 100644 index 00000000..23bd1cfb --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/task_menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/type_mark_editor.svg b/src/data/extra/themes/vx-idea/icons/type_mark_editor.svg new file mode 100644 index 00000000..33ff3761 --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/type_mark_editor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/icons/united_entry.svg b/src/data/extra/themes/vx-idea/icons/united_entry.svg new file mode 100644 index 00000000..802d1299 --- /dev/null +++ b/src/data/extra/themes/vx-idea/icons/united_entry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/interface.qss b/src/data/extra/themes/vx-idea/interface.qss new file mode 100644 index 00000000..cfee303b --- /dev/null +++ b/src/data/extra/themes/vx-idea/interface.qss @@ -0,0 +1,1240 @@ +/* Qt Style Sheets file + * Please refer to https://doc.qt.io/qt-5.12/stylesheet-reference.html + * for detailed inforamtion. + * **Notice** that selectors using base class and child class are considered to have the + * same specificity and the rule that appears last takes precedence. + * VNote specific syntax: + * - @widgets#toolbox#title#border: reference to a color defined in palette.ini; + * - $2px: 2 will be scaled by multiplying current display scaled factor. + */ + +QWidget { + color: @widgets#qwidget#fg; + background-color: @widgets#qwidget#bg; + font-family: "冬青黑体", "YaHei Consolas Hybrid", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", "Dengxian", "等线体", "STXihei", "华文细黑", "Liberation Sans", "Droid Sans", "NSimSun", "新宋体", "SimSun", "宋体", "Helvetica", "sans-serif", "Tahoma", "Arial", "Verdana", "Geneva", "Georgia", "Times New Roman"; +} + +QWidget[DialogCentralWidget="true"] { + border: none; +} + +QWidget[HitSettingWidget="true"] { + border: 2px solid @widgets#qwidget#info#border; +} + +/* All widgets */ +*[State="info"] { + border: 1px solid @widgets#qwidget#info#border; +} + +*[State="warning"] { + border: 1px solid @widgets#qwidget#warning#border; +} + +*[State="error"] { + border: 1px solid @widgets#qwidget#error#border; +} + +/* QAbstractScrollArea */ +QAbstractScrollArea { + border: 1px solid @widgets#qabstractscrollarea#border; +} + +QAbstractScrollArea::corner { + background-color: @widgets#qabstractscrollarea#corner#bg; + border: none; +} + +vnotex--SearchPanel QAbstractScrollArea { + border: none; +} + +/* ToolBox */ +vnotex--ToolBox QWidget[ToolBoxTitle="true"] { + border-bottom: 2px solid @widgets#toolbox#title#border; + margin: 0px; + padding: 0px; +} + +vnotex--ToolBox QToolButton[ToolBoxTitleButton="true"] { + padding: 4px 10px 4px 4px; + margin: 0px; + border: none; +} + +vnotex--ToolBox QToolButton[ToolBoxTitleButton="true"]:checked { + font-weight: bold; + /* Reverse */ + color: @widgets#toolbox#title#button#active#fg; + background-color: @widgets#toolbox#title#button#active#bg; +} + +/* TitleBar */ +/* The height should be large enough regarding to the action buttons. */ +vnotex--TitleBar QLabel[TitleBarTitle="true"] { + padding: 5px 1px; + margin: 0px; +} + +/* QDockWidget */ +QDockWidget[MainWindowSideBar="true"] QWidget { + background-color: @widgets#mainwindow#side_bar#widget#bg; +} + +QDockWidget[MainWindowSideBar="true"] QToolButton:checked { + color: @widgets#qtoolbutton#checked#fg; + background-color: @widgets#qtoolbutton#checked#bg; +} + +QDockWidget[MainWindowSideBar="true"] QToolButton:hover { + color: @widgets#qtoolbutton#hover#fg; + background-color: @widgets#qtoolbutton#hover#bg; +} + +QDockWidget[MainWindowSideBar="true"] QToolButton:pressed { + color: @widgets#qtoolbutton#pressed#fg; + background-color: @widgets#qtoolbutton#pressed#bg; +} + +QDockWidget { + color: @widgets#qdockwidget#fg; + background-color: @widgets#qdockwidget#bg; + titlebar-close-icon: url(close.svg); + titlebar-normal-icon: url(float.svg); +} + +QDockWidget::Title { + background-color: @widgets#qdockwidget#title#bg; + text-align: center left; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: none; + icon-size: 16px; + width: 16px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background-color: @widgets#qdockwidget#title#button#hover#bg; +} + +QDockWidget::close-button { + subcontrol-position: top right; + subcontrol-origin: margin; + position: absolute; + top: 0px; right: 0px; bottom: 0px; +} + +QDockWidget::float-button { + subcontrol-position: top right; + subcontrol-origin: margin; + position: absolute; + top: 0px; right: 18px; bottom: 0px; +} + + +QToolTip +{ + border: none; + color: @widgets#qtooltip#fg; + background-color: @widgets#qtooltip#bg; +} + +/* QMainWindow */ +QMainWindow { + color: @widgets#qmainwindow#fg; + background-color: @widgets#qmainwindow#bg; +} + +QMainWindow::separator { + /* For vertical */ + width: 1px; + /* For horizontal */ + height: 1px; + background-color: @widgets#qmainwindow#separator#bg; +} + +/* QToolBar */ +QToolBar { + border: none; + background-color: @widgets#qtoolbar#bg; +} + +QToolBar::separator { + width: 1px; + height: 1px; + border: none; + background-color: @widgets#qtoolbar#separator#bg; +} + +QToolBarExtension#qt_toolbar_ext_button { + background-color: @widgets#qtoolbar#extension#bg; + margin: 30px; +} + +QToolBarExtension#qt_toolbar_ext_button:hover { + background-color: @widgets#qtoolbar#extension#hover#bg; + margin: 30px; +} + +/* QToolButton */ +/* Only for MenuButtonPopup */ +QToolButton[popupMode="1"] { + /* Make way for the popup button */ + padding-right: 16px; /* make way for the popup button */ +} + +/* Must put after popupMode related styles */ +QToolButton[ActionToolButton="true"] { + border: none; +} + +QToolButton[ActionToolButton="true"]::menu-indicator { + image: none; +} + +QToolButton[NoMenuIndicator="true"]::menu-indicator { + image: none; +} + +/* QPushButton, QToolButton */ +QToolButton { + border: none; + color: @widgets#qtoolbutton#fg; + background-color: @widgets#qtoolbutton#bg; + margin: 1px 3px 1px 3px; + padding: 0px; +} + +QToolButton:checked { + color: @widgets#qtoolbutton#checked#fg; + background-color: @widgets#qtoolbutton#checked#bg; +} + +QToolButton:hover { + border:none; + color: @widgets#qtoolbutton#hover#fg; + background-color: @widgets#qtoolbutton#hover#bg; +} + +QToolButton:pressed { + color: @widgets#qtoolbutton#pressed#fg; + background-color: @widgets#qtoolbutton#pressed#bg; +} + +/* the subcontrols below are used only in the MenuButtonPopup mode */ +QToolButton::menu-button { + border: none; + width: 16px; +} + +QToolButton::menu-arrow { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} + +QPushButton[DangerButton="true"]:hover, QToolButton[DangerButton="true"]:hover { + color: @widgets#qwidget#danger#fg; + background-color: @widgets#qwidget#danger#bg; + border: none; +} + +/* QPushButton */ +QPushButton { + color: @widgets#qpushbutton#fg; + background-color: @widgets#qpushbutton#bg; + border: 1px solid @widgets#qpushbutton#border; + padding: 3px; + min-width: 80px; +} + +QPushButton:default { + border: 1px solid @widgets#qpushbutton#default#border; +} + +QPushButton:focus { + color: @widgets#qpushbutton#focus#fg; + background-color: @widgets#qpushbutton#focus#bg; +} + +QPushButton:checked { + color: @widgets#qpushbutton#checked#fg; + background-color: @widgets#qpushbutton#checked#bg; +} + +QPushButton:flat { + border: none; +} + +QPushButton:hover { + color: @widgets#qpushbutton#hover#fg; + background-color: @widgets#qpushbutton#hover#bg; +} + +QPushButton:pressed { + color: @widgets#qpushbutton#pressed#fg; + background-color: @widgets#qpushbutton#pressed#bg; +} + +QPushButton:disabled { + color: @widgets#qpushbutton#disabled#fg; + background-color: @widgets#qpushbutton#disabled#bg; +} + +QPushButton::menu-indicator { + image: url(arrow_dropdown.svg); + width: 16px; + height: 16px; +} + +/* QMenu */ +QMenu { + color: @widgets#qmenu#fg; + background-color: @widgets#qmenu#bg; + border: 2px solid @widgets#qmenu#border; +} + +QMenu::icon { + margin: 5px; +} + +QMenu::item { + padding: 5px 30px 5px 30px; + border: 1px solid transparent; +} + +QMenu::item:selected { + color: @widgets#qmenu#item#selected#fg; + background-color: @widgets#qmenu#item#selected#bg; +} + +QMenu::item:disabled { + color: @widgets#qmenu#item#disabled#fg; +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + border: 2px solid @widgets#qmenu#fg; +} + +QMenu::separator { + height: 1px; + background-color: @widgets#qmenu#separator#bg; + margin-left: 10px; + margin-right: 5px; +} + +QMenu::indicator { + width: 20px; + height: 20px; +} + +QMenu::indicator:non-exclusive:unchecked { + image: none; +} + +QMenu::indicator:non-exclusive:checked { + image: url(menu_checkbox.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: none; +} + +QMenu::indicator:exclusive:checked { + image: url(menu_radiobutton.svg); +} + +/* QWidgetAction item */ +vnotex--LabelWithButtonsWidget { + background-color: @widgets#qmenu#bg; +} + +vnotex--LabelWithButtonsWidget:hover { + background-color: @widgets#qmenu#item#selected#bg; +} + +vnotex--LabelWithButtonsWidget QLabel { + color: @widgets#qmenu#fg; +} + +vnotex--LabelWithButtonsWidget QLabel:hover { + color: @widgets#qmenu#item#selected#fg; +} +/* End QMenu */ + +QDialog { + color: @widgets#qdialog#fg; + background-color: @widgets#qdialog#bg +} + +/* DrapDropAreaIndicator */ +vnotex--DragDropAreaIndicator { + border: 2px dashed @widgets#dragdropareaindicator#border; + margin: 2px; + max-height: 200px; +} + +/* QComboBox */ +QComboBox { + padding: 3px; + color: @widgets#qcombobox#fg; + background-color: @widgets#qcombobox#bg; + border: 1px solid @widgets#qcombobox#border; +} + +QComboBox:focus, QComboBox:on { + background-color: @widgets#qcombobox#focus#bg; + border: 2px solid @widgets#qcombobox#focus#border; +} + +QComboBox:hover { + background-color: @widgets#qcombobox#hover#bg; + border: 2px solid @widgets#qcombobox#hover#border; +} + +QComboBox:disabled { + color: @widgets#qcombobox#disabled#fg; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 20px; + border: none; + background-color: transparent; +} + +QComboBox::down-arrow { + image: url(arrow_dropdown.svg); + width: 20px; + height: 20px; +} + +QComboBox::down-arrow:disabled { + image: url(arrow_dropdown_disabled.svg); + width: 20px; + height: 20px; +} + +QComboBox QAbstractItemView { + padding: 2px; + border: 1px solid @widgets#qcombobox#view#border; + background-color: @widgets#qcombobox#view#bg; + selection-color: @widgets#qcombobox#view#selection#fg; + selection-background-color: @widgets#qcombobox#view#selection#bg; +} + +QComboBox QAbstractItemView::item { + background-color: transparent; + padding: 3px; +} + +QComboBox QAbstractItemView::item:hover { + color: @widgets#qcombobox#item#hover#fg; + background-color: @widgets#qcombobox#item#hover#bg; +} + +/* NotebookSelector */ +vnotex--NotebookSelector { + icon-size: 20px; +} + +/* QLabel */ +QLabel { + border: none; + color: @widgets#qlabel#fg; + background-color: transparent; +} + +vnotex--DragDropAreaIndicator QLabel { + color: @widgets#dragdropareaindicator#fg; + font-size: 12pt; + font-weight: bold; +} + +vnotex--MainWindow QLabel#MainWindowTipsLabel { + font-size: 20pt; + font-weight: bold; + color: @widgets#mainwindow#tips_label#fg; + background-color: @widgets#mainwindow#tips_label#bg; +} + +/* QLineEdit */ +QLineEdit[EmbeddedLineEdit="true"] { + border: none; + padding: 0px; + margin: 0px; + color: @widgets#qlineedit#fg; + background-color: transparent; +} + +QLineEdit[EmbeddedLineEdit="true"]:focus { + border: none; + background-color: @widgets#qlineedit#focus#bg; +} + +QLineEdit[EmbeddedLineEdit="true"]:hover { + border: none; + background-color: @widgets#qlineedit#hover#bg; +} + +QLineEdit { + border: 1px solid @widgets#qlineedit#border; + padding: 3px; + color: @widgets#qlineedit#fg; + background-color: @widgets#qlineedit#bg; + selection-color: @widgets#qlineedit#selection#fg; + selection-background-color: @widgets#qlineedit#selection#bg; +} + +QLineEdit:focus { + border: 2px solid @widgets#qlineedit#focus#border; + background-color: @widgets#qlineedit#focus#bg; +} + +QLineEdit:hover { + border: 2px solid @widgets#qlineedit#hover#border; + background-color: @widgets#qlineedit#hover#bg; +} + +QLineEdit:disabled { + color: @widgets#qlineedit#disabled#fg; +} + +/* QPlainTextEdit and QTextEdit */ +QPlainTextEdit, QTextEdit { + color: @widgets#qlineedit#fg; + background-color: @widgets#qlineedit#bg; + selection-color: @widgets#qlineedit#selection#fg; + selection-background-color: @widgets#qlineedit#selection#bg; +} + +/* QTabWidget */ +QTabWidget { + border: none; +} + +QTabWidget::pane { + border: none; +} + +QTabWidget::tab-bar { + alignment: left; +} + +/* QTabBar */ +QTabBar[MainWindowSideBar="true"] { + background-color: @widgets#mainwindow#side_bar#bg; +} + +QTabBar[MainWindowSideBar="true"]::tab { + color: @widgets#mainwindow#side_bar#fg; + background-color: @widgets#mainwindow#side_bar#bg; + border: none; +} + +QMainWindow > QTabBar::tab:right { + border-right: 3px solid transparent; + border-bottom: none; + margin: 0px; + padding: 8px 8px -8px 8px; +} + +QMainWindow > QTabBar::tab:left { + border-left: 3px solid transparent; + border-bottom: none; + margin: 0px; + padding: -8px 8px 8px 8px; +} + +/* Only the left one is the mainwindow side bar */ +QMainWindow > QTabBar::tab:left:hover { + color: @widgets#mainwindow#side_bar#hover#fg; + background-color: @widgets#mainwindow#side_bar#hover#bg; +} + +QMainWindow > QTabBar::tab:left:selected { + color: @widgets#mainwindow#side_bar#selected#fg; + background-color: @widgets#mainwindow#side_bar#selected#bg; +} + +QTabBar { + border: none; +} + +QTabBar::tab { + color: @widgets#qtabbar#tab#fg; + background-color: @widgets#qtabbar#tab#bg; + border: none; +} + +QTabBar::tab:top, QTabBar::tab:bottom { + border-top: 2px solid transparent; + border-right: 1px solid @widgets#qtabbar#tab#border; + /* MUST leave right and left padding 0px. */ + padding: 2px 0px 2px 0px; + height: 20px; +} + +QTabBar::tab:right { + border-right: 3px solid transparent; + border-bottom: 1px solid @widgets#qtabbar#tab#border; + padding: 5px 2px 5px 2px; + min-width: 20px; +} + +QTabBar::tab:left { + border-left: 3px solid transparent; + border-bottom: 1px solid @widgets#qtabbar#tab#border; + padding: 5px 2px 5px 2px; + min-width: 20px; +} + + +/* Tabified QDockWidget */ +QMainWindow > QTabBar::tab:right { + border-right: 3px solid transparent; + border-bottom: none; + margin: 0px; + padding: 6px 2px -10px 2px; +} + +/* Tabified QDockWidget */ +QMainWindow > QTabBar::tab:left { + border-left: 3px solid transparent; + border-bottom: none; + margin: 0px; + padding: -10px 2px 6px 2px; +} + +QTabBar::tab:hover { + color: @widgets#qtabbar#tab#hover#fg; + background-color: @widgets#qtabbar#tab#hover#bg; +} + +QTabBar::tab:selected { + color: @widgets#qtabbar#tab#selected#fg; + background-color: @widgets#qtabbar#tab#selected#bg; +} + +QTabBar::tab:top:selected, QTabBar::tab:bottom:selected { + border-top: 2px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::tab:right:selected { + border-right: 3px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::tab:left:selected { + border-left: 3px solid @widgets#qtabbar#tab#selected#border; +} + +QTabBar::close-button { + image: url(close_grey.svg); +} + +QTabBar::close-button:focus { + image: url(close.svg); +} + +QTabBar::close-button:hover { + image: url(close.svg); +} + +QTabBar::scroller { + width: $20px; +} + +QTabBar QToolButton { + border: none; +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(right.svg); +} + +QTabBar QToolButton::left-arrow:enabled { + image: url(left.svg); +} + +QTabBar QToolButton::right-arrow:disabled { + image: url(right_disabled.svg); +} + +QTabBar QToolButton::left-arrow:disabled { + image: url(left_disabled.svg); +} + +/* QTreeView */ +QTreeView { + color: @widgets#qtreeview#fg; + background-color: @widgets#qtreeview#bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QTreeView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QTreeView::item:hover { + color: @widgets#qtreeview#item#hover#fg; + background-color: @widgets#qtreeview#item#hover#bg; +} + +QTreeView::item:selected { + color: @widgets#qtreeview#item#selected#fg; + background-color: @widgets#qtreeview#item#selected#bg; +} + +QTreeView::item:selected:active { + color: @widgets#qtreeview#item#selected#active#fg; + background-color: @widgets#qtreeview#item#selected#active#bg; +} + +QTreeView::item:selected:!active { + color: @widgets#qtreeview#item#selected#inactive#fg; + background-color: @widgets#qtreeview#item#selected#inactive#bg; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: none; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: none; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: none; +} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + border-image: none; + image: url(branch_closed.svg); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + border-image: none; + image: url(branch_open.svg); +} + +/* QListView */ +QListView { + color: @widgets#qlistview#fg; + background-color: @widgets#qlistview#bg; + show-decoration-selected: 0; + border: none; + selection-background-color: transparent; + outline: none; +} + +QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +QListView::item:hover { + color: @widgets#qlistview#item#hover#fg; + background-color: @widgets#qlistview#item#hover#bg; +} + +QListView::item:selected { + color: @widgets#qlistview#item#selected#fg; + background-color: @widgets#qlistview#item#selected#bg; +} + +QListView::item:selected:active { + color: @widgets#qlistview#item#selected#active#fg; + background-color: @widgets#qlistview#item#selected#active#bg; +} + +QListView::item:selected:!active { + color: @widgets#qlistview#item#selected#inactive#fg; + background-color: @widgets#qlistview#item#selected#inactive#bg; +} + +QListView::item:disabled { + background-color: transparent; +} + +/* QSplitter */ +QSplitter { + border: none; +} + +QSplitter::handle { + background-color: @widgets#qsplitter#handle#bg; +} + +QSplitter::handle:pressed { + background-color: @widgets#qsplitter#handle#pressed#bg; +} + +QSplitter::handle:vertical { + height: 2px; +} + +QSplitter::handle:horizontal { + width: 2px; +} + +/* QStatusBar */ +QStatusBar { + color: @widgets#qstatusbar#fg; + background-color: @widgets#qstatusbar#bg; + border: none; +} + +QStatusBar::item { + border: none; +} + +/* QScrollBar */ +QScrollBar::add-page, QScrollBar::sub-page { + background-color: @widgets#qscrollbar#addpage#bg; +} + +QScrollBar:vertical { + background-color: @widgets#qscrollbar#bg; + width: 14px; + margin: 14px 0px 14px 0px; + padding: 0px 2px 0px 2px; + border: none; +} + +QScrollBar::handle:vertical { + background-color: @widgets#qscrollbar#handle#bg; + min-height: 14px; + border-radius:4px; +} + +QScrollBar::handle:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; + border-radius:4px; +} + +QScrollBar::handle:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:vertical { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 14px; + height: 14px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::add-line:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::sub-line:vertical { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 14px; + height: 14px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::sub-line:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::down-arrow:vertical { + image: url(down.svg); + width: 14px; + height: 14px; +} + +QScrollBar::up-arrow:vertical { + image: url(up.svg); + width: 14px; + height: 14px; +} + +QScrollBar:horizontal { + background-color: @widgets#qscrollbar#bg; + height: 14px; + margin: 0px 14px 0px 14px; + padding: 2px 0px 2px 0px; + border: none; +} + +QScrollBar::handle:horizontal { + background-color: @widgets#qscrollbar#handle#bg; + min-height: 14px; + border-radius:4px; +} + +QScrollBar::handle:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; + border-radius:4px; +} + +QScrollBar::handle:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:horizontal { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 14px; + height: 14px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::add-line:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::sub-line:horizontal { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 14px; + height: 14px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::sub-line:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::right-arrow:horizontal { + image: url(right.svg); + width: 14px; + height: 14px; +} + +QScrollBar::left-arrow:horizontal { + image: url(left.svg); + width: 14px; + height: 14px; +} + +/* QCheckBox */ +QCheckBox { + spacing: 5px; +} + +QCheckBox:disabled { + color: @widgets#qcheckbox#disabled#fg; +} + +QCheckBox::indicator:unchecked { + image: url(checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + image: url(checkbox_checked.svg); +} + +QCheckBox::indicator:checked:disabled { + image: url(checkbox_checked_disabled.svg); +} + +QCheckBox::indicator { + width: 20px; + height: 20px; +} + +QCheckBox::indicator:focus { + background-color: @widgets#qcheckbox#indicator#focus#bg; +} + +QCheckBox::indicator:hover { + background-color: @widgets#qcheckbox#indicator#hover#bg; +} + +QCheckBox::indicator:pressed { + background-color: @widgets#qcheckbox#indicator#pressed#bg; +} + +/* QRadioButton */ +QRadioButton { + spacing: 5px; +} + +QRadioButton:disabled { + color: @widgets#qradiobutton#disabled#fg; +} + +QRadioButton::indicator:unchecked { + image: url(radiobutton_unchecked.svg); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(radiobutton_unchecked_disabled.svg); +} + +QRadioButton::indicator:checked { + image: url(radiobutton_checked.svg); +} + +QRadioButton::indicator:checked:disabled { + image: url(radiobutton_checked_disabled.svg); +} + +QRadioButton::indicator { + width: 20px; + height: 20px; +} + +QRadioButton::indicator:focus { + background-color: @widgets#qradiobutton#indicator#focus#bg; +} + +QRadioButton::indicator:hover { + background-color: @widgets#qradiobutton#indicator#hover#bg; +} + +QRadioButton::indicator:pressed { + background-color: @widgets#qradiobutton#indicator#pressed#bg; +} + +QAbstractSpinBox { + border: 1px solid @widgets#qspinbox#border; + color: @widgets#qspinbox#fg; + background-color: @widgets#qspinbox#bg; + padding-right: 25px; + min-height: 25px; + selection-color: @widgets#qspinbox#selection#fg; + selection-background-color: @widgets#qspinbox#selection#bg; +} + +QAbstractSpinBox:disabled { + color: @widgets#qspinbox#disabled#fg; + background-color: @widgets#qspinbox#disabled#bg; +} + +QAbstractSpinBox:focus { + border: 2px solid @widgets#qspinbox#focus#border; + background-color: @widgets#qspinbox#focus#bg; +} + +QAbstractSpinBox:hover { + border: 2px solid @widgets#qspinbox#hover#border; + background-color: @widgets#qspinbox#hover#bg; +} + +QAbstractSpinBox::up-button { + subcontrol-origin: border; + /* Position at the top right corner */ + subcontrol-position: top right; + width: 25px; + border: none; + background-color: transparent; +} + +QAbstractSpinBox::up-button:hover { + background-color: @widgets#qspinbox#button#hover#bg; +} + +QAbstractSpinBox::up-button:pressed { + background-color: @widgets#qspinbox#button#pressed#bg; +} + +QAbstractSpinBox::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(up_disabled.svg); +} + +QAbstractSpinBox::down-button { + subcontrol-origin: border; + /* Position at the top right corner */ + subcontrol-position: bottom right; + width: 25px; + border: none; + background-color: transparent; +} + +QAbstractSpinBox::down-button:hover { + background-color: @widgets#qspinbox#button#hover#bg; +} + +QAbstractSpinBox::down-button:pressed { + background-color: @widgets#qspinbox#button#pressed#bg; +} + +QAbstractSpinBox::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(down_disabled.svg); +} + +/* QHeaderView */ +QHeaderView::section { + color: @widgets#qheaderview#section#fg; + background-color: @widgets#qheaderview#section#bg; + padding-left: 4px; + border: none; + border-left: 1px solid @widgets#qheaderview#section#border; + border-bottom: 1px solid @widgets#qheaderview#section#border; +} + +QHeaderView::section:checked +{ + color: @widgets#qheaderview#section#checked#fg; + background-color: @widgets#qheaderview#section#checked#bg; +} + +/* style the sort indicator */ +QHeaderView::down-arrow { + image: url(down.svg); + width: 12px; + height: 12px; +} + +QHeaderView::up-arrow { + image: url(up.svg); + width: 12px; + height: 12px; +} + +/* QProgressBar */ +QProgressBar { + background-color: @widgets#qprogressbar#bg; + border: 1px solid @widgets#qprogressbar#border; + text-align: center; +} + +QProgressBar::chunk { + background-color: @widgets#qprogressbar#chunk#bg; + width: 20px; +} + +/* QGroupBox */ +QGroupBox { + border: 2px solid @widgets#qgroupbox#border; + border-radius: 5px; + margin-top: 2ex; +} + +QGroupBox::title { + color: @widgets#qgroupbox#title#fg; + subcontrol-origin: margin; + subcontrol-position: top left; + position: absolute; + padding: 0 3px; + top: 0px; + left: 10px; + bottom: 0px; +} + +/* QSlider */ +QSlider::groove:horizontal { + border: 1px solid @widgets#qslider#groove#border; + height: 8px; + background-color: @widgets#qslider#groove#bg; + margin: 2px 0; +} + +QSlider::handle:horizontal { + border: 1px solid @widgets#qslider#handle#border; + background-color: @widgets#qslider#handle#bg; + width: 18px; + margin: -2px 0; +} + +QSlider::add-page:horizontal { + background-color: transparent; +} + +QSlider::sub-page:horizontal { + border: 1px solid @widgets#qslider#subpage#border; + background-color: @widgets#qslider#subpage#bg; + margin: 2px 0; +} + +QSlider::groove:vertical { + border: 1px solid @widgets#qslider#groove#border; + width: 8px; + background-color: @widgets#qslider#groove#bg; + margin: 0 2px; +} + +QSlider::handle:vertical { + border: 1px solid @widgets#qslider#handle#border; + background-color: @widgets#qslider#handle#bg; + height: 18px; + margin: 0 -2px; +} + +QSlider::add-page:vertical { + background-color: transparent; +} + +QSlider::sub-page:vertical { + border: 1px solid @widgets#qslider#subpage#border; + background-color: @widgets#qslider#subpage#bg; + margin: 0 2px; +} + +QSizeGrip { + image: url(sizegrip.svg); + width: 16px; + height: 16px; +} + +/* ViewWindow */ +vnotex--ViewWindow QToolBar[ViewWindowToolBar="true"] { + background-color: @widgets#viewwindow#toolbar#bg; +} + +/* ViewSplit */ +vnotex--ViewSplit QTabBar::tab:selected { + color: @widgets#viewsplit#tabbar#tab#selected#fg; + background-color: @widgets#viewsplit#tabbar#tab#selected#bg; +} + +vnotex--ViewSplit QTabBar[ViewSplitFlash="true"]::tab:selected { + background-color: @widgets#viewsplit#flash#bg; +} + +vte--VTextEdit { + border: none; +} + +vnotex--EntryPopup { + border: 1px solid @widgets#unitedentry#popup#border; +} diff --git a/src/data/extra/themes/vx-idea/left.svg b/src/data/extra/themes/vx-idea/left.svg new file mode 100644 index 00000000..860a778b --- /dev/null +++ b/src/data/extra/themes/vx-idea/left.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/left_disabled.svg b/src/data/extra/themes/vx-idea/left_disabled.svg new file mode 100644 index 00000000..e06ac73f --- /dev/null +++ b/src/data/extra/themes/vx-idea/left_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/menu_checkbox.svg b/src/data/extra/themes/vx-idea/menu_checkbox.svg new file mode 100644 index 00000000..94658f10 --- /dev/null +++ b/src/data/extra/themes/vx-idea/menu_checkbox.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/menu_radiobutton.svg b/src/data/extra/themes/vx-idea/menu_radiobutton.svg new file mode 100644 index 00000000..afa3fcc8 --- /dev/null +++ b/src/data/extra/themes/vx-idea/menu_radiobutton.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/palette.json b/src/data/extra/themes/vx-idea/palette.json new file mode 100644 index 00000000..60e0f786 --- /dev/null +++ b/src/data/extra/themes/vx-idea/palette.json @@ -0,0 +1,685 @@ +{ + "metadata" : { + "revision" : 1, + "//comment" : "If there is a file named 'editor-highlight.theme' under theme folder, this value will be ignored.", + "//comment" : "Otherwise, this value specify the theme name to use for syntax highlighting.", + "editor-highlight-theme" : "Default", + "//comment" : "If there is a file named 'markdown-editor-highlight.theme' under theme folder, this value will be ignored.", + "//comment" : "Otherwise, this value specify the theme name to use for syntax highlighting.", + "//comment" : "If empty, 'editor-highlight-theme' will be used.", + "markdown-editor-highlight-theme" : "Markdown Default", + "display_name" : "vx-idea", + "//comment" : "Display name for different locales", + "display_name_zh_CN" : "vx-idea" + }, + "palette" : { + "bg3_0" : "#b4c0cf", + "bg3_1" : "#ced6e0", + "bg3_2" : "#b4c0cf", + "bg3_3" : "#cfd8e2", + "bg3_4" : "#dae3ea", + "bg3_41" : "#cfd8e2", + "bg3_5" : "#f1f2f6", + "bg3_6" : "#fafafa", + "fg3_5" : "#34495e", + "fg3_6" : "#646464", + "fg3_7" : "#7a7a7a", + "fg3_8" : "#9e9e9e", + "fg3_9" : "#b0b0b0", + "fg3_10" : "#ced4da", + "bg2_4" : "#007b6e", + "//comment": "menu highliht", + "bg2_5" : "#2980b9", + "bg2_6" : "#199488", + "bg2_7" : "#e5f3f1", + "fg10" : "#b71c1c", + "fg11" : "#ab5683", + "fg12" : "#283593", + "fg13" : "#b42b1f", + "fg15_3" : "#b0b0b0", + "fg15_4" : "#7a7a7a", + "fg15_5" : "#34495e", + "bg11" : "#79889e", + "layer1" : "#f1f2f6", + "layer2" : "#dae3ea", + "layer3" : "#c3d1e0", + "layer4" : "#ffffff" + }, + "base" : { + "normal" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_5", + "border" : "@palette#fg3_10" + }, + "master" : { + "fg" : "@palette#bg3_6", + "bg" : "@palette#bg2_5", + "alt" : "@palette#bg2_6" + }, + "header" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "footer" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "title" : { + "fg" : "@base#normal#fg", + "bg" : "@palette#bg3_41" + }, + "content" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_6", + "border" : "@base#normal#border", + "disabled" : { + "fg" : "@base#disabled#fg", + "bg" : "@base#content#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + }, + "focus" : { + "fg" : "@base#content#fg", + "bg" : "@base#focus#bg", + "border" : "@base#master#bg" + }, + "hover" : { + "fg" : "@base#content#fg", + "bg" : "@base#hover#bg", + "border" : "@base#master#bg" + }, + "selection" : { + "fg" : "@palette#bg3_6", + "bg" : "@palette#bg11" + }, + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#selected#bg", + "active" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#hover#bg" + } + } + }, + "edit" : { + "focus" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#master#bg" + }, + "hover" : { + "fg" : "@base#content#fg", + "bg" : "@palette#bg2_7", + "border" : "@base#master#bg" + } + }, + "error" : { + "fg" : "@palette#fg10" + }, + "warning" : { + "fg" : "@palette#fg11" + }, + "info" : { + "fg" : "@palette#fg12" + }, + "danger" : { + "fg": "@base#normal#bg", + "bg": "@palette#fg13" + }, + "disabled" : { + "fg" : "@palette#fg3_8", + "bg" : "@base#normal#bg" + }, + "pressed" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_1" + }, + "focus" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_2" + }, + "hover" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_4" + }, + "selected" : { + "fg" : "@palette#fg3_5", + "bg" : "@palette#bg3_3" + }, + "icon" : { + "fg" : "@palette#fg15_5", + "inactive" : { + "fg" : "@palette#fg15_4" + }, + "disabled" : { + "fg" : "@palette#fg15_3" + }, + "warning" : { + "fg" : "@base#warning#fg" + }, + "danger" : { + "fg": "@base#danger#fg" + }, + "selected" : { + "fg" : "@base#master#bg" + } + } + }, + "widgets" : { + "separator" : { + "bg" : "@base#normal#border" + }, + "qwidget" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "info" : { + "border" : "@base#info#fg" + }, + "warning" : { + "border" : "@base#warning#fg" + }, + "error" : { + "border" : "@base#error#fg" + }, + "danger" : { + "fg" : "@base#danger#fg", + "bg" : "@base#danger#bg" + } + }, + "toolbox" : { + "title" : { + "border" : "@widgets#toolbox#title#button#active#bg", + "button": { + "fg" : "@base#normal#fg", + "active" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + } + } + }, + "titlebar" : { + "button" : { + "fg" : "@base#icon#fg" + }, + "menu_icon" : { + "fg" : "@base#icon#fg", + "disabled" : { + "fg" : "@base#icon#disabled#fg" + } + } + }, + "toolbar" : { + "icon" : { + "fg" : "@base#icon#fg", + "disabled" : { + "fg" : "@base#icon#disabled#fg" + }, + "danger" : { + "fg" : "@base#icon#danger#fg" + } + } + }, + "notebookexplorer" : { + "node_icon" : { + "fg" : "@base#icon#fg", + "invalid" : { + "fg" : "@base#icon#warning#fg" + } + }, + "external_node_icon" : { + "fg" : "@base#icon#inactive#fg" + } + }, + "locationlist" : { + "node_icon" : { + "fg" : "@base#icon#fg" + } + }, + "viewsplit" : { + "action_button" : { + "fg" : "@base#icon#inactive#fg", + "active" : { + "fg" : "@base#icon#fg" + } + }, + "tabbar" : { + "tab" : { + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg" + } + } + }, + "flash" : { + "bg" : "@base#master#alt" + } + }, + "qmainwindow" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "separator" : { + "bg" : "@widgets#separator#bg" + } + }, + "dragdropareaindicator" : { + "fg" : "@base#normal#fg", + "border" : "@widgets#dragdropareaindicator#fg" + }, + "navigationlabel" : { + "fg" : "@widgets#toolbox#title#button#active#fg", + "bg" : "@widgets#toolbox#title#button#active#bg" + }, + "qmenu" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "border" : "@base#normal#border", + "item" : { + "selected" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "disabled" : { + "fg" : "@base#disabled#fg" + } + }, + "separator" : { + "bg" : "@widgets#separator#bg" + } + }, + "qtooltip" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + }, + "qtoolbar" : { + "bg" : "@base#header#bg", + "separator" : { + "bg" : "@widgets#separator#bg" + }, + "extension" : { + "bg" : "@base#normal#border", + "hover" : { + "bg" : "@base#hover#bg" + } + } + }, + "qtoolbutton" : { + "fg" : "@base#normal#fg", + "bg" : "transparent", + "checked" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + } + }, + "qdockwidget" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "title" : { + "bg" : "@base#title#bg", + "button" : { + "hover" : { + "bg" : "@base#hover#bg" + } + } + } + }, + "qpushbutton" : { + "fg" : "@base#normal#fg", + "bg" : "transparent", + "border" : "@base#normal#border", + "default" : { + "border" : "@base#master#bg" + }, + "focus" : { + "fg" : "@base#focus#fg", + "bg" : "@base#focus#bg" + }, + "checked" : { + "fg" : "@base#selected#fg", + "bg" : "@base#selected#bg" + }, + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "pressed" : { + "fg" : "@base#pressed#fg", + "bg" : "@base#pressed#bg" + }, + "disabled" : { + "fg" : "@base#disabled#fg", + "bg" : "@widgets#qpushbutton#bg" + } + }, + "qdialog" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg" + }, + "qcombobox" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "focus" : { + "bg" : "@base#content#focus#bg", + "border" : "@base#content#focus#border" + }, + "hover" : { + "bg" : "@base#content#hover#bg", + "border" : "@base#content#hover#border" + }, + "disabled" : { + "fg" : "@base#content#disabled#fg" + }, + "view" : { + "border" : "@base#content#border", + "bg" : "@widgets#qcombobox#bg", + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + } + }, + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + } + } + }, + "qlabel" : { + "fg" : "@base#normal#fg" + }, + "qlineedit" : { + "border" : "@base#content#border", + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + }, + "focus" : { + "bg" : "@base#edit#focus#bg", + "border" : "@base#edit#focus#border" + }, + "hover" : { + "bg" : "@base#edit#hover#bg", + "border" : "@base#edit#hover#border" + }, + "disabled" : { + "fg" : "@base#content#disabled#fg" + } + }, + "qtabbar" : { + "tab" : { + "fg" : "@base#normal#fg", + "bg" : "@base#normal#bg", + "border" : "@base#normal#border", + "hover" : { + "fg" : "@base#hover#fg", + "bg" : "@base#hover#bg" + }, + "selected" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#master#bg" + } + } + }, + "qtreeview" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + }, + "selected" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg", + "active" : { + "fg" : "@base#content#selected#active#fg", + "bg" : "@base#content#selected#active#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#inactive#fg", + "bg" : "@base#content#selected#inactive#bg" + } + } + } + }, + "qlistview" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "item" : { + "hover" : { + "fg" : "@base#content#hover#fg", + "bg" : "@base#content#hover#bg" + }, + "selected" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg", + "active" : { + "fg" : "@base#content#selected#active#fg", + "bg" : "@base#content#selected#active#bg" + }, + "inactive" : { + "fg" : "@base#content#selected#inactive#fg", + "bg" : "@base#content#selected#inactive#bg" + } + } + } + }, + "qsplitter" : { + "handle" : { + "bg" : "@base#normal#border", + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qstatusbar" : { + "fg" : "@base#footer#fg", + "bg" : "@base#footer#bg" + }, + "qscrollbar" : { + "bg" : "@base#normal#bg", + "addpage" : { + "bg" : "transparent" + }, + "handle" : { + "bg" : "@palette#bg3_2", + "hover" : { + "bg" : "@palette#bg3_1" + }, + "pressed" : { + "bg" : "@palette#bg3_0" + } + } + }, + "qcheckbox" : { + "disabled" : { + "fg" : "@base#disabled#fg" + }, + "indicator" : { + "focus" : { + "bg" : "@base#focus#bg" + }, + "hover" : { + "bg" : "@base#hover#bg" + }, + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qradiobutton" : { + "disabled" : { + "fg" : "@base#disabled#fg" + }, + "indicator" : { + "focus" : { + "bg" : "@base#focus#bg" + }, + "hover" : { + "bg" : "@base#hover#bg" + }, + "pressed" : { + "bg" : "@base#pressed#bg" + } + } + }, + "qspinbox" : { + "border" : "@base#content#border", + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "disabled" : { + "fg" : "@base#content#disabled#fg", + "bg" : "@base#content#disabled#bg" + }, + "selection" : { + "fg" : "@base#content#selection#fg", + "bg" : "@base#content#selection#bg" + }, + "focus" : { + "bg" : "@base#edit#focus#bg", + "border" : "@base#edit#focus#border" + }, + "hover" : { + "bg" : "@base#edit#hover#bg", + "border" : "@base#edit#hover#border" + }, + "button" : { + "hover" : { + "bg" : "@base#content#hover#bg" + }, + "pressed" : { + "bg" : "@base#content#pressed#bg" + } + } + }, + "qheaderview" : { + "section" : { + "fg" : "@base#content#fg", + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "checked" : { + "fg" : "@base#content#selected#fg", + "bg" : "@base#content#selected#bg" + } + } + }, + "qprogressbar" : { + "bg" : "@base#content#bg", + "border" : "@base#content#border", + "chunk" : { + "bg" : "@base#master#alt" + } + }, + "qgroupbox" : { + "border" : "@base#normal#border", + "title" : { + "fg" : "@base#normal#fg" + } + }, + "qabstractscrollarea" : { + "border" : "@base#normal#border", + "corner" : { + "bg" : "@widgets#qscrollbar#bg" + } + }, + "qslider" : { + "groove" : { + "bg" : "@base#content#bg", + "border" : "@base#content#border" + }, + "handle" : { + "border" : "@base#content#border", + "bg" : "@base#master#bg" + }, + "subpage" : { + "border" : "@widgets#qslider#handle#border", + "bg" : "@base#master#alt" + } + }, + "viewwindow" : { + "toolbar" : { + "bg" : "@base#content#bg" + } + }, + "quickselector" : { + "item_icon" : { + "fg" : "@base#master#bg", + "border" : "@base#master#bg" + } + }, + "styleditemdelegate" : { + "separator" : { + "fg" : "@base#normal#fg", + "bg" : "@widgets#separator#bg" + }, + "highlight" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + }, + "mainwindow" : { + "side_bar" : { + "fg" : "@palette#fg15_5", + "bg" : "@palette#layer1", + "selected" : { + "fg" : "@palette#bg2_7", + "bg" : "@palette#layer2" + }, + "icon" : { + "fg" : "@widgets#mainwindow#side_bar#fg", + "selected" : { + "fg" : "@widgets#mainwindow#side_bar#selected#fg" + } + }, + "hover" : { + "fg" : "@widgets#mainwindow#side_bar#fg", + "bg" : "@palette#layer3" + }, + "widget" : { + "bg" : "@palette#layer4" + } + }, + "dockwidget_tabbar" : { + "icon" : { + "fg" : "@base#icon#fg", + "selected" : { + "fg" : "@base#icon#selected#fg" + } + } + }, + "tips_label" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + }, + "unitedentry" : { + "icon" : { + "fg" : "@base#icon#fg", + "busy" : { + "fg" : "@base#master#bg" + } + }, + "popup" : { + "border" : "@base#normal#border" + } + } + } +} diff --git a/src/data/extra/themes/vx-idea/radiobutton_checked.svg b/src/data/extra/themes/vx-idea/radiobutton_checked.svg new file mode 100644 index 00000000..a8979e68 --- /dev/null +++ b/src/data/extra/themes/vx-idea/radiobutton_checked.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/radiobutton_checked_disabled.svg b/src/data/extra/themes/vx-idea/radiobutton_checked_disabled.svg new file mode 100644 index 00000000..7514e74e --- /dev/null +++ b/src/data/extra/themes/vx-idea/radiobutton_checked_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/radiobutton_unchecked.svg b/src/data/extra/themes/vx-idea/radiobutton_unchecked.svg new file mode 100644 index 00000000..d9989668 --- /dev/null +++ b/src/data/extra/themes/vx-idea/radiobutton_unchecked.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/radiobutton_unchecked_disabled.svg b/src/data/extra/themes/vx-idea/radiobutton_unchecked_disabled.svg new file mode 100644 index 00000000..fb806995 --- /dev/null +++ b/src/data/extra/themes/vx-idea/radiobutton_unchecked_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/right.svg b/src/data/extra/themes/vx-idea/right.svg new file mode 100644 index 00000000..9013b442 --- /dev/null +++ b/src/data/extra/themes/vx-idea/right.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/right_disabled.svg b/src/data/extra/themes/vx-idea/right_disabled.svg new file mode 100644 index 00000000..42721807 --- /dev/null +++ b/src/data/extra/themes/vx-idea/right_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/sizegrip.svg b/src/data/extra/themes/vx-idea/sizegrip.svg new file mode 100644 index 00000000..3018b1bb --- /dev/null +++ b/src/data/extra/themes/vx-idea/sizegrip.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/text-editor.theme b/src/data/extra/themes/vx-idea/text-editor.theme new file mode 100644 index 00000000..d40bf364 --- /dev/null +++ b/src/data/extra/themes/vx-idea/text-editor.theme @@ -0,0 +1,199 @@ +{ + "metadata": { + "revision": 0, + "name": "vx-idea", + "type": "vtextedit" + }, + "editor-styles": { + "Text": { + "//comment": "Support a list of fonts separated by ,", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New", + "font-size": 12, + "text-color": "#34495e", + "background-color": "#ffffff", + "selected-text-color": "#f5f5f5", + "selected-background-color": "#1976d2" + }, + "CursorLine": { + "background-color": "#f1f2f6" + }, + "TrailingSpace": { + "background-color": "#f1f2f6" + }, + "Tab": { + "background-color": "#cfcfcf" + }, + "SelectedText": { + "//comment": "Selected text highlight", + "text-color": "#34495e", + "background-color": "#dfdf00" + }, + "IndicatorsBorder": { + "text-color": "#aaaaaa", + "background-color": "#e6edf5" + }, + "CurrentLineNumber": { + "text-color": "#34495e" + }, + "Folding": { + "text-color": "#6495ed" + }, + "FoldedFolding": { + "text-color": "#4169e1" + }, + "FoldingHighlight": { + "text-color": "#a9c4f5" + }, + "FoldedFoldingRangeLine": { + "background-color": "#befbdd" + }, + "IncrementalSearch": { + "//comment": "Incremental search highlight", + "text-color": "#34495e", + "background-color": "#ce93d8" + }, + "Search": { + "//comment": "Search highlight", + "text-color": "#34495e", + "background-color": "#4db6ac" + }, + "SearchUnderCursor": { + "//comment": "Search highlight under cursor", + "text-color": "#34495e", + "background-color": "#66bb6a" + } + }, + "//comment": "Override the Text style in editor-styles", + "markdown-editor-styles": { + "Text": { + "//comment": "Support a list of fonts separated by ,", + "font-family": "YaHei Consolas Hybrid, 冬青黑体, Microsoft YaHei, 微软雅黑, Microsoft YaHei UI, WenQuanYi Micro Hei, 文泉驿雅黑, Dengxian, 等线体, STXihei, 华文细黑, Liberation Sans, Droid Sans, NSimSun, 新宋体, SimSun, 宋体, Verdana, Helvetica, sans-serif, Tahoma, Arial, Geneva, Georgia, Times New Roman", + "font-size": 12, + "text-color": "#34495e", + "background-color": "#ffffff", + "selected-text-color": "#f5f5f5", + "selected-background-color": "#1976d2" + } + }, + "markdown-syntax-styles": { + "H1": { + "text-color": "#34495e", + "bold": true, + "font-size": 17 + }, + "H2": { + "text-color": "#34495e", + "bold": true, + "font-size": 16 + }, + "H3": { + "text-color": "#34495e", + "bold": true, + "font-size": 15 + }, + "H4": { + "text-color": "#34495e", + "bold": true, + "font-size": 14 + }, + "H5": { + "text-color": "#34495e", + "bold": true, + "font-size": 13 + }, + "H6": { + "text-color": "#34495e", + "bold": true, + "font-size": 12 + }, + "HRULE": { + "text-color": "#34495e", + "background-color": "#dac7c9" + }, + "LIST_BULLET": { + "text-color": "#d33682", + "bold": true + }, + "LIST_ENUMERATOR": { + "text-color": "#0000ff" + }, + "LINK": { + "text-color": "#005fff" + }, + "AUTO_LINK_URL": { + "text-color": "#005fff" + }, + "AUTO_LINK_EMAIL": { + "text-color": "#005fff" + }, + "IMAGE": { + "text-color": "#616161" + }, + "REFERENCE": { + "text-color": "#826200" + }, + "CODE": { + "text-color": "#8e24aa", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "EMPH": { + "italic": true + }, + "STRONG": { + "bold": true + }, + "HTML_ENTITY": { + "text-color": "#8900b5" + }, + "HTML": { + "text-color": "#8900b5" + }, + "HTMLBLOCK": { + "text-color": "#8900b5" + }, + "COMMENT": { + "text-color": "#93a1a1" + }, + "VERBATIM": { + "text-color": "#673ab7", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "//comment": "Please modify the syntax highlight theme as well if you change this", + "FENCEDCODEBLOCK": { + "text-color": "#673ab7", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "BLOCKQUOTE": { + "text-color": "#00af00" + }, + "NOTE": { + "text-color": "#0087b5" + }, + "STRIKE": { + "text-color": "#b71c1c", + "strike-through": true + }, + "FRONTMATTER": { + "text-color": "#6c6c6c" + }, + "INLINEEQUATION": { + "text-color": "#00897b", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "DISPLAYFORMULA": { + "text-color": "#00897b", + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "MARK": { + "text-color": "#34495e", + "background-color": "#ffff76" + }, + "TABLE": { + "font-family": "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "TABLEBORDER": { + "text-color": "#d33682", + "background-color": "#ffffff" + } + } +} \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/tips_components/alert.png b/src/data/extra/themes/vx-idea/tips_components/alert.png new file mode 100644 index 00000000..a42e6eb9 Binary files /dev/null and b/src/data/extra/themes/vx-idea/tips_components/alert.png differ diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/Danger.json b/src/data/extra/themes/vx-idea/tips_components/snippets/Danger.json new file mode 100644 index 00000000..ee809d00 --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/snippets/Danger.json @@ -0,0 +1,9 @@ +{ + "content": ":::alert-danger\n$$@@\n:::", + "cursor_mark": "@@", + "description": "警告", + "indent_as_first_line": true, + "selection_mark": "$$", + "shortcut": 4, + "type": 1 +} diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/Notes.json b/src/data/extra/themes/vx-idea/tips_components/snippets/Notes.json new file mode 100644 index 00000000..68cda192 --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/snippets/Notes.json @@ -0,0 +1,9 @@ +{ + "content": ":::alert-primary\n$$@@\n:::", + "cursor_mark": "@@", + "description": "注意", + "indent_as_first_line": false, + "selection_mark": "$$", + "shortcut": 1, + "type": 1 +} diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/Point.json b/src/data/extra/themes/vx-idea/tips_components/snippets/Point.json new file mode 100644 index 00000000..262fdd96 --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/snippets/Point.json @@ -0,0 +1,9 @@ +{ + "content": ":::alert-warning\n$$@@\n:::", + "cursor_mark": "@@", + "description": "重点", + "indent_as_first_line": false, + "selection_mark": "$$", + "shortcut": 2, + "type": 1 +} diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/Test.json b/src/data/extra/themes/vx-idea/tips_components/snippets/Test.json new file mode 100644 index 00000000..d0c72615 --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/snippets/Test.json @@ -0,0 +1,9 @@ +{ + "content": ":::alert-dark\n$$@@\n:::", + "cursor_mark": "@@", + "description": "实验", + "indent_as_first_line": false, + "selection_mark": "$$", + "shortcut": 3, + "type": 1 +} diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/Tips.json b/src/data/extra/themes/vx-idea/tips_components/snippets/Tips.json new file mode 100644 index 00000000..e8fc837b --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/snippets/Tips.json @@ -0,0 +1,9 @@ +{ + "content": "::: alert-info\n$$@@\n:::", + "cursor_mark": "@@", + "description": "提示", + "indent_as_first_line": false, + "selection_mark": "$$", + "shortcut": 0, + "type": 1 +} diff --git a/src/data/extra/themes/vx-idea/tips_components/snippets/alert片段快捷方式,复制到配置文件对应文件夹下即可.txt b/src/data/extra/themes/vx-idea/tips_components/snippets/alert片段快捷方式,复制到配置文件对应文件夹下即可.txt new file mode 100644 index 00000000..e69de29b diff --git a/src/data/extra/themes/vx-idea/tips_components/sytle.css b/src/data/extra/themes/vx-idea/tips_components/sytle.css new file mode 100644 index 00000000..7641ee91 --- /dev/null +++ b/src/data/extra/themes/vx-idea/tips_components/sytle.css @@ -0,0 +1,49 @@ +@font-face { + font-family: "vx-alert"; /* Project id 3575329 */ +src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'), + url('data:font/woff;charset=utf-8;base64,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') format('woff'), + url('data:font/ttf;charset=utf-8;base64,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') format('truetype'); +} + +.vx-alert { + font-family: "vx-alert" !important; + font-size: 2.5em; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.alert-dark:before { + content: "\e614"; + color: #2c2c2c; + float: left; + padding-right: .2em; +} + +.alert-primary:before { + content: "\e664"; + color: #0077b9; + float: left; + padding-right: .2em; +} + +.alert-info:before { + content: "\e654"; + color: #23a3ba; + float: left; + padding-right: .2em; +} + +.alert-danger:before { + content: "\e63e"; + color: #bf3300; + float: left; + padding-right: .2em; +} + +.alert-warning:before { + content: "\e751"; + color: #d88400; + float: left; + padding-right: .2em; +} \ No newline at end of file diff --git a/src/data/extra/themes/vx-idea/up.svg b/src/data/extra/themes/vx-idea/up.svg new file mode 100644 index 00000000..d33d0edb --- /dev/null +++ b/src/data/extra/themes/vx-idea/up.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/up_disabled.svg b/src/data/extra/themes/vx-idea/up_disabled.svg new file mode 100644 index 00000000..32084904 --- /dev/null +++ b/src/data/extra/themes/vx-idea/up_disabled.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/vx-idea/web.css b/src/data/extra/themes/vx-idea/web.css new file mode 100644 index 00000000..7acdd4cc --- /dev/null +++ b/src/data/extra/themes/vx-idea/web.css @@ -0,0 +1,312 @@ +@media print { + page-break-inside: avoid !important; + page-break-after: avoid; !important; + page-break-before: avoid !important; +} + +body { + margin: 0 auto; + font-family: "YaHei Consolas Hybrid", "Segoe UI", Helvetica, sans-serif, Tahoma, Arial, Geneva, Georgia, Palatino, "Times New Roman", "冬青黑体", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", Dengxian, "等线体", STXihei, "华文细黑", "Liberation Sans", "Droid Sans", NSimSun, "新宋体", SimSun, "宋体"; + color: #34495e; + line-height: 1.5; + padding: 15px; + background-color: #ffffff; + font-size: 16px; +} + +h1, h2, h3, h4, h5, h6 { + color: #34495e; + font-weight: bold; + margin-top: 20px; + margin-bottom: 10px; + padding: 0; +} + +p { + padding: 0; + margin-top: 16px; + margin-bottom: 16px; +} + +h1 { + font-size: 26px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 22px; +} + +h4 { + font-size: 20px; +} + +h5 { + font-size: 19px; +} + +h6 { + font-size: 18px; +} + +a { + color: #0099ff; + margin: 0; + padding: 0; + vertical-align: baseline; + text-decoration: none; + word-break: break-word; +} + +a:hover { + text-decoration: underline; +} + +a:visited { + color: #800080; +} + +ul, ol { + padding: 0; + padding-left: 24px; +} + +li { + line-height: 24px; +} + +li ul, li ol { + margin-left: 16px; +} + +p, ul, ol { + font-size: 16px; + line-height: 24px; +} + +mark { + color: #000000; + background-color: #c4c400; +} + +pre { + display: block; + /*overflow-y: hidden;*/ + /*overflow-x: auto;*/ + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +code { + font-family: "YaHei Consolas Hybrid", Consolas, Monaco, Monospace, Courier; + color: #e96900; + word-break: break-word; +} + +pre code { + display: block; + padding-left: 0.5em; + padding-right: 0.5em; + color: #e8eaf6; + background-color: #272822; + line-height: 1.5; + font-family: "YaHei Consolas Hybrid", Consolas, Monaco, Monospace, Courier; + white-space: pre; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +aside { + display: block; + float: right; + width: 390px; +} + +blockquote { + color: #34495e; + border-left: .2em solid #a0c1dd; + padding: .1em 1em; + background-color: #f4f7f9; + margin-left: 0; +} + +blockquote p { + color: #34495e; +} + +hr { + display: block; + text-align: left; + margin: 1em 0; + border: none; + height: 1px; + background-color: #bdc3c7; +} + +table { + padding: 0; + margin: 1rem 0.5rem; + border-collapse: collapse; +} + +table tr { + border-top: 1px solid #dfe2e5; + background-color: #ffffff; + margin: 0; + padding: 0; +} + +table tr:nth-child(2n), +th { + background-color: #fafafa; +} + +table tr:hover { + background-color: #f1f2f6; +} + +table tr th { + font-weight: bold; + border: 1px solid #dfe2e5; + margin: 0; + padding: 6px 13px; +} + +table tr td { + border: 1px solid #dfe2e5; + margin: 0; + padding: 6px 13px; +} + +table tr th :first-child, table tr td :first-child { + margin-top: 0; +} + +table tr th :last-child, table tr td :last-child { + margin-bottom: 0; +} + +div.vx-mermaid-graph { + margin: 16px 0px 16px 0px; + overflow-y: hidden; + /* background: #bdcbd3; */ + color: #c4c4c4; +} + +div.vx-flowchartjs-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; + /* background: #bdcbd3; */ + color: #c7c4c4; +} + +div.vx-wavedrom-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; + /* background: #bdcbd3; */ + color: #c4c4c4; +} + +div.vx-plantuml-graph { + padding: 5px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; + /* background: #bdcbd3; */ + color: #c4c4c4; +} + +/* ::selection { + background-color: #dae3ea; + color: #34495e; +} */ + +::-webkit-scrollbar { + background-color: #eaeaea; + width: 10px; + height: 10px; + border: none; +} + +::-webkit-scrollbar-corner { + background-color: #eaeaea; +} + +::-webkit-scrollbar-button { + /* This selector affects the styling of both the up & down and left & right buttons of a scrollbar */ + height: 10px; + width: 10px; + background-color: #eaeaea; +} + +::-webkit-scrollbar-button:hover { + background-color: #ced6e0; +} + +::-webkit-scrollbar-button:active { + background-color: #b4c0cf; +} + +::-webkit-scrollbar-track { + /* This selector affects the styling of the area in the scrollbar between the two buttons */ + background-color: #eaeaea; + border-radius: 10px; +} + +::-webkit-scrollbar-thumb { + /* This selector affects the styling of draggable element of the scollbar */ + border: none; + background-color: #b4c0cf; + border-radius: 10px; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #ced6e0; +} + +::-webkit-scrollbar-thumb:active { + background-color: #b4c0cf; +} + +::-webkit-scrollbar-button:horizontal:increment { + background-image: url(right.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:horizontal:decrement { + background-image: url(left.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:vertical:increment { + background-image: url(down.svg); + background-repeat: no-repeat; + background-size: contain; +} + +::-webkit-scrollbar-button:vertical:decrement { + background-image: url(up.svg); + background-repeat: no-repeat; + background-size: contain; +} + +#vx-content span.vx-search-match { + color: #34495e; + background-color: #4db6ac; +} + +#vx-content span.vx-current-search-match { + color: #34495e; + background-color: #66bb6a; +} \ No newline at end of file