From 727fade9488a50da51e52b62343123f537f60db3 Mon Sep 17 00:00:00 2001 From: YiChuJun <70640997+YiChuJun@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:14:51 +0800 Subject: [PATCH] add dark themes (#2009) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 新增dark主题 * 新增dark主题 --- .../syntax-highlighting/themes/dark_vs.theme | 174 +++ .../extra/themes/dark_vs/arrow_dropdown.svg | 9 + .../dark_vs/arrow_dropdown_disabled.svg | 9 + .../extra/themes/dark_vs/branch_closed.svg | 8 + src/data/extra/themes/dark_vs/branch_open.svg | 8 + .../extra/themes/dark_vs/checkbox_checked.svg | 7 + .../dark_vs/checkbox_checked_disabled.svg | 7 + .../themes/dark_vs/checkbox_unchecked.svg | 6 + .../dark_vs/checkbox_unchecked_disabled.svg | 6 + src/data/extra/themes/dark_vs/close.svg | 10 + src/data/extra/themes/dark_vs/close_grey.svg | 10 + src/data/extra/themes/dark_vs/cover.png | Bin 0 -> 51514 bytes src/data/extra/themes/dark_vs/down.svg | 8 + .../extra/themes/dark_vs/down_disabled.svg | 8 + src/data/extra/themes/dark_vs/float.svg | 1 + src/data/extra/themes/dark_vs/highlight.css | 249 ++++ src/data/extra/themes/dark_vs/interface.qss | 1176 +++++++++++++++++ src/data/extra/themes/dark_vs/left.svg | 8 + .../extra/themes/dark_vs/left_disabled.svg | 8 + .../extra/themes/dark_vs/menu_checkbox.svg | 6 + .../extra/themes/dark_vs/menu_radiobutton.svg | 6 + src/data/extra/themes/dark_vs/palette.json | 652 +++++++++ .../themes/dark_vs/radiobutton_checked.svg | 7 + .../dark_vs/radiobutton_checked_disabled.svg | 7 + .../themes/dark_vs/radiobutton_unchecked.svg | 6 + .../radiobutton_unchecked_disabled.svg | 6 + src/data/extra/themes/dark_vs/readme.md | 34 + src/data/extra/themes/dark_vs/right.svg | 8 + .../extra/themes/dark_vs/right_disabled.svg | 8 + src/data/extra/themes/dark_vs/sizegrip.svg | 1 + .../extra/themes/dark_vs/text-editor.theme | 199 +++ src/data/extra/themes/dark_vs/up.svg | 8 + src/data/extra/themes/dark_vs/up_disabled.svg | 8 + src/data/extra/themes/dark_vs/web.css | 285 ++++ 34 files changed, 2953 insertions(+) create mode 100644 src/data/extra/syntax-highlighting/themes/dark_vs.theme create mode 100644 src/data/extra/themes/dark_vs/arrow_dropdown.svg create mode 100644 src/data/extra/themes/dark_vs/arrow_dropdown_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/branch_closed.svg create mode 100644 src/data/extra/themes/dark_vs/branch_open.svg create mode 100644 src/data/extra/themes/dark_vs/checkbox_checked.svg create mode 100644 src/data/extra/themes/dark_vs/checkbox_checked_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/checkbox_unchecked.svg create mode 100644 src/data/extra/themes/dark_vs/checkbox_unchecked_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/close.svg create mode 100644 src/data/extra/themes/dark_vs/close_grey.svg create mode 100644 src/data/extra/themes/dark_vs/cover.png create mode 100644 src/data/extra/themes/dark_vs/down.svg create mode 100644 src/data/extra/themes/dark_vs/down_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/float.svg create mode 100644 src/data/extra/themes/dark_vs/highlight.css create mode 100644 src/data/extra/themes/dark_vs/interface.qss create mode 100644 src/data/extra/themes/dark_vs/left.svg create mode 100644 src/data/extra/themes/dark_vs/left_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/menu_checkbox.svg create mode 100644 src/data/extra/themes/dark_vs/menu_radiobutton.svg create mode 100644 src/data/extra/themes/dark_vs/palette.json create mode 100644 src/data/extra/themes/dark_vs/radiobutton_checked.svg create mode 100644 src/data/extra/themes/dark_vs/radiobutton_checked_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/radiobutton_unchecked.svg create mode 100644 src/data/extra/themes/dark_vs/radiobutton_unchecked_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/readme.md create mode 100644 src/data/extra/themes/dark_vs/right.svg create mode 100644 src/data/extra/themes/dark_vs/right_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/sizegrip.svg create mode 100644 src/data/extra/themes/dark_vs/text-editor.theme create mode 100644 src/data/extra/themes/dark_vs/up.svg create mode 100644 src/data/extra/themes/dark_vs/up_disabled.svg create mode 100644 src/data/extra/themes/dark_vs/web.css diff --git a/src/data/extra/syntax-highlighting/themes/dark_vs.theme b/src/data/extra/syntax-highlighting/themes/dark_vs.theme new file mode 100644 index 00000000..ba7eb2be --- /dev/null +++ b/src/data/extra/syntax-highlighting/themes/dark_vs.theme @@ -0,0 +1,174 @@ + { + "metadata" : { + "revision" : 1, + "name" : "dark_vs" + }, + "text-styles": { + "Normal" : { + "text-color" : "#ffffff", + "selected-text-color" : "#ffffff", + "bold" : false, + "italic" : false, + "underline" : false, + "strike-through" : false + }, + "Keyword" : { + "text-color" : "#569cd6", + "selected-text-color" : "#469cd6", + "bold" : true + }, + "Function" : { + "text-color" : "#dcdcaa", + "selected-text-color" : "#ccdcaa" + }, + "Variable" : { + "text-color" : "#0057ae", + "selected-text-color" : "#00316e" + }, + "ControlFlow" : { + "text-color" : "#569cd6", + "selected-text-color" : "#469cd6", + "bold" : true + }, + "Operator" : { + "text-color" : "#1f1c1b", + "selected-text-color" : "#ffffff" + }, + "BuiltIn" : { + "text-color" : "#4ec9b0", + "selected-text-color" : "#5ec9b0", + "bold" : true + }, + "Extension" : { + "text-color" : "#0095ff", + "selected-text-color" : "#ffffff", + "bold" : true + }, + "Preprocessor" : { + "text-color" : "#006e28", + "selected-text-color" : "#006e28" + }, + "Attribute" : { + "text-color" : "#0057ae", + "selected-text-color" : "#00316e" + }, + "Char" : { + "text-color" : "#924c9d", + "selected-text-color" : "#6c2477" + }, + "SpecialChar" : { + "text-color" : "#3daee9", + "selected-text-color" : "#fcfcfc" + }, + "String" : { + "text-color" : "#bf0303", + "selected-text-color" : "#9c0e0e" + }, + "VerbatimString" : { + "text-color" : "#bf0303", + "selected-text-color" : "#9c0e0e" + }, + "SpecialString" : { + "text-color" : "#ff5500", + "selected-text-color" : "#ff5500" + }, + "Import" : { + "text-color" : "#ff5500", + "selected-text-color" : "#ff5500" + }, + "DataType" : { + "text-color" : "#0057ae", + "selected-text-color" : "#00316e" + }, + "DecVal" : { + "text-color" : "#b08000", + "selected-text-color" : "#805c00" + }, + "BaseN" : { + "text-color" : "#b08000", + "selected-text-color" : "#805c00" + }, + "Float" : { + "text-color" : "#b08000", + "selected-text-color" : "#805c00" + }, + "Constant" : { + "text-color" : "#aa5500", + "selected-text-color" : "#5e2f00" + }, + "Comment" : { + "text-color" : "#6A9955", + "selected-text-color" : "#7A9955" + }, + "Documentation" : { + "text-color" : "#607880", + "selected-text-color" : "#46585e" + }, + "Annotation" : { + "text-color" : "#ca60ca", + "selected-text-color" : "#a44ea4" + }, + "CommentVar" : { + "text-color" : "#0095ff", + "selected-text-color" : "#ffffff" + }, + "RegionMarker" : { + "text-color" : "#0057ae", + "selected-text-color" : "#00316e", + "background-color" : "#e0e9f8" + }, + "Information" : { + "text-color" : "#b08000", + "selected-text-color" : "#805c00" + }, + "Warning" : { + "text-color" : "#bf0303", + "selected-text-color" : "#9c0e0e" + }, + "Alert" : { + "text-color" : "#bf0303", + "selected-text-color" : "#9c0e0e", + "background-color" : "#f7e6e6", + "bold" : true + }, + "Error" : { + "text-color" : "#bf0303", + "selected-text-color" : "#9c0e0e", + "underline" : true + }, + "Others" : { + "text-color" : "#006e28", + "selected-text-color" : "#006e28" + } + }, + "editor-colors": { + "background-color" : "#ffffff", + "code-folding" : "#94caef", + "bracket-matching" : "#ffff00", + "current-line" : "#f8f7f6", + "icon-border" : "#f0f0f0", + "indentation-line" : "#d2d2d2", + "line-numbers" : "#a0a0a0", + "current-line-number" : "#1e1e1e", + "mark-bookmark" : "#0000ff", + "mark-breakpoint-active" : "#ff0000", + "mark-breakpoint-reached" : "#ffff00", + "mark-breakpoint-disabled" : "#ff00ff", + "mark-execution" : "#a0a0a4", + "mark-warning" : "#00ff00", + "mark-error" : "#ff0000", + "modified-lines" : "#fdbc4b", + "replace-highlight" : "#00ff00", + "saved-lines" : "#2ecc71", + "search-highlight" : "#ffff00", + "selection" : "#94caef", + "separator" : "#898887", + "spell-checking" : "#bf0303", + "tab-marker" : "#d2d2d2", + "template-background" : "#d6d2d0", + "template-placeholder" : "#baf8ce", + "template-focused-placeholder" : "#76da98", + "template-read-only-placeholder" : "#f6e6e6", + "word-wrap-marker" : "#ededed" + } +} diff --git a/src/data/extra/themes/dark_vs/arrow_dropdown.svg b/src/data/extra/themes/dark_vs/arrow_dropdown.svg new file mode 100644 index 00000000..b831fa00 --- /dev/null +++ b/src/data/extra/themes/dark_vs/arrow_dropdown.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/data/extra/themes/dark_vs/arrow_dropdown_disabled.svg b/src/data/extra/themes/dark_vs/arrow_dropdown_disabled.svg new file mode 100644 index 00000000..a09037cf --- /dev/null +++ b/src/data/extra/themes/dark_vs/arrow_dropdown_disabled.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/data/extra/themes/dark_vs/branch_closed.svg b/src/data/extra/themes/dark_vs/branch_closed.svg new file mode 100644 index 00000000..796782cb --- /dev/null +++ b/src/data/extra/themes/dark_vs/branch_closed.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/branch_open.svg b/src/data/extra/themes/dark_vs/branch_open.svg new file mode 100644 index 00000000..3212fbf9 --- /dev/null +++ b/src/data/extra/themes/dark_vs/branch_open.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/checkbox_checked.svg b/src/data/extra/themes/dark_vs/checkbox_checked.svg new file mode 100644 index 00000000..6efbccc4 --- /dev/null +++ b/src/data/extra/themes/dark_vs/checkbox_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/dark_vs/checkbox_checked_disabled.svg b/src/data/extra/themes/dark_vs/checkbox_checked_disabled.svg new file mode 100644 index 00000000..69dadc72 --- /dev/null +++ b/src/data/extra/themes/dark_vs/checkbox_checked_disabled.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/dark_vs/checkbox_unchecked.svg b/src/data/extra/themes/dark_vs/checkbox_unchecked.svg new file mode 100644 index 00000000..c9a55295 --- /dev/null +++ b/src/data/extra/themes/dark_vs/checkbox_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/checkbox_unchecked_disabled.svg b/src/data/extra/themes/dark_vs/checkbox_unchecked_disabled.svg new file mode 100644 index 00000000..19e54451 --- /dev/null +++ b/src/data/extra/themes/dark_vs/checkbox_unchecked_disabled.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/close.svg b/src/data/extra/themes/dark_vs/close.svg new file mode 100644 index 00000000..2ff42f1a --- /dev/null +++ b/src/data/extra/themes/dark_vs/close.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/data/extra/themes/dark_vs/close_grey.svg b/src/data/extra/themes/dark_vs/close_grey.svg new file mode 100644 index 00000000..0e2cd92c --- /dev/null +++ b/src/data/extra/themes/dark_vs/close_grey.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/data/extra/themes/dark_vs/cover.png b/src/data/extra/themes/dark_vs/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd1f644f358ed3290942de084489015a85eee48 GIT binary patch literal 51514 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 literal 0 HcmV?d00001 diff --git a/src/data/extra/themes/dark_vs/down.svg b/src/data/extra/themes/dark_vs/down.svg new file mode 100644 index 00000000..56f2a45d --- /dev/null +++ b/src/data/extra/themes/dark_vs/down.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/down_disabled.svg b/src/data/extra/themes/dark_vs/down_disabled.svg new file mode 100644 index 00000000..e6cb5fa8 --- /dev/null +++ b/src/data/extra/themes/dark_vs/down_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/float.svg b/src/data/extra/themes/dark_vs/float.svg new file mode 100644 index 00000000..3c5ab5df --- /dev/null +++ b/src/data/extra/themes/dark_vs/float.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/dark_vs/highlight.css b/src/data/extra/themes/dark_vs/highlight.css new file mode 100644 index 00000000..a2ce94be --- /dev/null +++ b/src/data/extra/themes/dark_vs/highlight.css @@ -0,0 +1,249 @@ +/* PrismJS 1.21.0 +https://prismjs.com/download.html#themes=prism&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 default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #ccc; + background: none; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background-color: #1976d2; + color: #f5f5f5; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background-color: #1976d2; + color: #f5f5f5; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +/* Code background */ +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #161616; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #6A9955; +} + +.token.punctuation { + color: #999; +} + +.token.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #9cdcfe; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #b5cea8; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #ce9178; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #569cd6; +} + +.token.function{ + color: #dcdcaa; +} + +.token.class-name { + color: #4ec9b0; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +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: rgba(224, 224, 224, 0.2); + box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); + 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: inherit; + text-decoration: none; +} diff --git a/src/data/extra/themes/dark_vs/interface.qss b/src/data/extra/themes/dark_vs/interface.qss new file mode 100644 index 00000000..3e827831 --- /dev/null +++ b/src/data/extra/themes/dark_vs/interface.qss @@ -0,0 +1,1176 @@ +/* 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; +} + +/* 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 { + 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; +} + +/* NotebookSelector */ +vnotex--NotebookSelector { + icon-size: 20px; +} + +vnotex--NotebookSelector QAbstractItemView::item { + padding: 5px, 2px, 5px, 2px; +} + +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; +} + +/* 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 { + 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: 2px; + padding-bottom: 2px; +} + +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: 2px; + padding-bottom: 2px; +} + +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: 16px; + margin: 16px 0px 16px 0px; + padding: 0px 2px 0px 2px; + border: none; +} + +QScrollBar::handle:vertical { + background-color: @widgets#qscrollbar#handle#bg; + min-height: 16px; +} + +QScrollBar::handle:vertical:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::handle:vertical:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:vertical { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + 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: 16px; + height: 16px; + 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: 16px; + height: 16px; +} + +QScrollBar::up-arrow:vertical { + image: url(up.svg); + width: 16px; + height: 16px; +} + +QScrollBar:horizontal { + background-color: @widgets#qscrollbar#bg; + height: 16px; + margin: 0px 16px 0px 16px; + padding: 2px 0px 2px 0px; + border: none; +} + +QScrollBar::handle:horizontal { + background-color: @widgets#qscrollbar#handle#bg; + min-width: 16px; +} + +QScrollBar::handle:horizontal:hover { + background-color: @widgets#qscrollbar#handle#hover#bg; +} + +QScrollBar::handle:horizontal:pressed { + background-color: @widgets#qscrollbar#handle#pressed#bg; +} + +QScrollBar::add-line:horizontal { + border: none; + background-color: @widgets#qscrollbar#bg; + width: 16px; + height: 16px; + 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: 16px; + height: 16px; + 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: 16px; + height: 16px; +} + +QScrollBar::left-arrow:horizontal { + image: url(left.svg); + width: 16px; + height: 16px; +} + +/* 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; +} diff --git a/src/data/extra/themes/dark_vs/left.svg b/src/data/extra/themes/dark_vs/left.svg new file mode 100644 index 00000000..0e339476 --- /dev/null +++ b/src/data/extra/themes/dark_vs/left.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/left_disabled.svg b/src/data/extra/themes/dark_vs/left_disabled.svg new file mode 100644 index 00000000..fd4937e8 --- /dev/null +++ b/src/data/extra/themes/dark_vs/left_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/menu_checkbox.svg b/src/data/extra/themes/dark_vs/menu_checkbox.svg new file mode 100644 index 00000000..3acab8ad --- /dev/null +++ b/src/data/extra/themes/dark_vs/menu_checkbox.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/menu_radiobutton.svg b/src/data/extra/themes/dark_vs/menu_radiobutton.svg new file mode 100644 index 00000000..fcb32f20 --- /dev/null +++ b/src/data/extra/themes/dark_vs/menu_radiobutton.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/palette.json b/src/data/extra/themes/dark_vs/palette.json new file mode 100644 index 00000000..5779881c --- /dev/null +++ b/src/data/extra/themes/dark_vs/palette.json @@ -0,0 +1,652 @@ +{ + "metadata" : { + "revision" : 0, + "//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" : "dark_vs", + "//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" : "dark_vs", + "display_name" : "dark_vs", + "//comment" : "Display name for different locales", + "display_name_zh_CN" : "黑暗" + }, + "palette" : { + "bg1_1" : "#07080d", + "bg1_2" : "#101215", + "bg1_3" : "#181b20", + "bg1_4" : "#21252b", + "bg1_5" : "#1e1e1e", + "bg1_51" : "#252526", + "bg1_6" : "#4c4c4c", + "bg1_7" : "#4c4c4c", + "bg1_71" : "#535d6c", + "bg1_8" : "#576071", + "bg1_9" : "#657184", + "fg1_1" : "#7e899d", + "fg1_2" : "#8a93a6", + "fg1_3" : "#959eae", + "fg1_4" : "#a0a8b7", + "fg1_5" : "#ccccc2", + "fg1_6" : "#b6bcc7", + "fg1_7" : "#c1c6d0", + "fg1_8" : "#cccccc", + "fg1_9" : "#07080d", + "fg1_10" :"#e3e5e9", + "bg2_2" : "#3a4ba6", + "bg2_3" : "#3f52b4", + "bg2_4" : "#3f52b4", + "bg2_5" : "#ffffff", + "bg2_6" : "#7482ce", + "bg2_7" : "#7482ce", + "bg2_8" : "#838fd3", + "bg2_9" : "#838fd3", + "fg10" : "#b71c1c", + "fg11" : "#ab5683", + "fg12" : "#5768c4", + "fg13" : "#b42b1f", + "fg15_3" : "#60697c", + "fg15_4" : "#60697c", + "fg15_5" : "#c5c5c5", + "bg10_4" : "#2d323b", + "bg10_5" : "#252526", + "bg10_6" : "#3c414d", + "bg10_7" : "#444b58", + "bg10_8" : "#5a5f66", + "bg11" : "#5a5f66" + }, + "base" : { + "normal" : { + "fg" : "@palette#fg1_5", + "bg" : "@palette#bg1_5", + "border" : "@palette#bg1_6" + }, + "master" : { + "fg" : "@palette#fg1_9", + "bg" : "@palette#bg2_5", + "alt" : "@palette#bg2_4" + }, + "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#bg1_51" + }, + "content" : { + "fg" : "@palette#fg1_8", + "bg" : "@palette#bg10_5", + "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#fg1_10", + "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" + } + } + }, + "error" : { + "fg" : "@palette#fg10" + }, + "warning" : { + "fg" : "@palette#fg11" + }, + "info" : { + "fg" : "@palette#fg12" + }, + "danger" : { + "fg": "@palette#fg1_10", + "bg": "@palette#fg13" + }, + "disabled" : { + "fg" : "@palette#fg1_1", + "bg" : "@base#normal#bg" + }, + "pressed" : { + "fg" : "@palette#fg1_3", + "bg" : "@palette#bg1_3" + }, + "focus" : { + "fg" : "@palette#fg1_8", + "bg" : "@palette#bg1_6" + }, + "hover" : { + "fg" : "@palette#fg1_8", + "bg" : "@palette#bg1_7" + }, + "selected" : { + "fg" : "@palette#fg1_9", + "bg" : "@palette#bg1_8" + }, + "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#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" + } + }, + "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#bg1_6", + "hover" : { + "bg" : "@palette#bg1_71" + }, + "pressed" : { + "bg" : "@palette#bg1_7" + } + } + }, + "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#content#focus#bg", + "border" : "@base#content#focus#border" + }, + "hover" : { + "bg" : "@base#content#hover#bg", + "border" : "@base#content#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" : "@palette#bg2_9", + "border" : "@palette#bg2_9" + } + }, + "styleditemdelegate" : { + "separator" : { + "fg" : "@base#normal#fg", + "bg" : "@widgets#separator#bg" + }, + "highlight" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + }, + "mainwindow" : { + "dockwidget_tabbar" : { + "icon" : { + "fg" : "@base#icon#fg", + "selected" : { + "fg" : "@base#icon#selected#fg" + } + } + }, + "tips_label" : { + "fg" : "@base#master#fg", + "bg" : "@base#master#bg" + } + } + } +} diff --git a/src/data/extra/themes/dark_vs/radiobutton_checked.svg b/src/data/extra/themes/dark_vs/radiobutton_checked.svg new file mode 100644 index 00000000..50642a94 --- /dev/null +++ b/src/data/extra/themes/dark_vs/radiobutton_checked.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/dark_vs/radiobutton_checked_disabled.svg b/src/data/extra/themes/dark_vs/radiobutton_checked_disabled.svg new file mode 100644 index 00000000..f12828f7 --- /dev/null +++ b/src/data/extra/themes/dark_vs/radiobutton_checked_disabled.svg @@ -0,0 +1,7 @@ + + + Layer 1 + + + + diff --git a/src/data/extra/themes/dark_vs/radiobutton_unchecked.svg b/src/data/extra/themes/dark_vs/radiobutton_unchecked.svg new file mode 100644 index 00000000..eccd8165 --- /dev/null +++ b/src/data/extra/themes/dark_vs/radiobutton_unchecked.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/radiobutton_unchecked_disabled.svg b/src/data/extra/themes/dark_vs/radiobutton_unchecked_disabled.svg new file mode 100644 index 00000000..dc6a604b --- /dev/null +++ b/src/data/extra/themes/dark_vs/radiobutton_unchecked_disabled.svg @@ -0,0 +1,6 @@ + + + Layer 1 + + + diff --git a/src/data/extra/themes/dark_vs/readme.md b/src/data/extra/themes/dark_vs/readme.md new file mode 100644 index 00000000..07765c48 --- /dev/null +++ b/src/data/extra/themes/dark_vs/readme.md @@ -0,0 +1,34 @@ +# 参考信息 +参考教程:[主题和样式](https://vnotex.github.io/vnote/zh_cn/#!docs/用户/主题和样式.md) +同时参考群友Nriver的GitHub教程[vnote-solarized-theme](https://github.com/Nriver/vnote-solarized-theme#自定义主题) + +(本文档见主题根目录```readme.md```文件 ) + + +## 主题相关 +本主题参考vscode 深色(Visual Studio)主题 + + +工具:vscode +插件:Color Highlight颜色显示 +颜色提取:Faststone Capture屏幕取色 + +# 相关文件参考 +## 主题样式 +> 使用```palette.json```进行调配 + +## 阅读模式 +> 使用```web.css```进行文章样式调整,使用```highlight.css```定义语法高亮 + +## 编辑模式 +> 使用```text-editor.theme```进行样式调整 + + +## 笨方法改主题 +1. 安装vscode插件Color Highlight以预览颜色 +2. 使用任意屏幕取色工具抓取主题颜色代码 +3. 修改主题样式 + 1. 打开`palette.json`搜抓取到的颜色代码,替换为自己想要的颜色代码 + +附上对照表供参考 +在线编辑地址:[vnote主题定义文档](https://kdocs.cn/l/sgsmnihByJWO) \ No newline at end of file diff --git a/src/data/extra/themes/dark_vs/right.svg b/src/data/extra/themes/dark_vs/right.svg new file mode 100644 index 00000000..796782cb --- /dev/null +++ b/src/data/extra/themes/dark_vs/right.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/right_disabled.svg b/src/data/extra/themes/dark_vs/right_disabled.svg new file mode 100644 index 00000000..175f2ff3 --- /dev/null +++ b/src/data/extra/themes/dark_vs/right_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/sizegrip.svg b/src/data/extra/themes/dark_vs/sizegrip.svg new file mode 100644 index 00000000..985a6f99 --- /dev/null +++ b/src/data/extra/themes/dark_vs/sizegrip.svg @@ -0,0 +1 @@ + diff --git a/src/data/extra/themes/dark_vs/text-editor.theme b/src/data/extra/themes/dark_vs/text-editor.theme new file mode 100644 index 00000000..61032d70 --- /dev/null +++ b/src/data/extra/themes/dark_vs/text-editor.theme @@ -0,0 +1,199 @@ +{ + "metadata" : { + "revision" : 0, + "name" : "dark_vs", + "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" : "#D4D4D4", + "background-color" : "#1E1E1E", + "selected-text-color" : "#f5f5f5", + "selected-background-color" : "#1976d2" + }, + "CursorLine" : { + "background-color" : "#282828" + }, + "TrailingSpace" : { + "background-color" : "#303030" + }, + "Tab" : { + "background-color" : "#303030" + }, + "SelectedText" : { + "//comment" : "Selected text highlight", + "text-color" : "#C0C0C0", + "background-color" : "#343a40" + }, + "IndicatorsBorder" : { + "text-color" : "#aaaaaa", + "background-color" : "#1E1E1E" + }, + "CurrentLineNumber" : { + "text-color" : "#D4D4D4" + }, + "Folding" : { + "text-color" : "#6495ed" + }, + "FoldedFolding" : { + "text-color" : "#4169e1" + }, + "FoldingHighlight" : { + "text-color" : "#a9c4f5" + }, + "FoldedFoldingRangeLine" : { + "background-color" : "#befbdd" + }, + "IncrementalSearch" : { + "//comment" : "Incremental search highlight", + "text-color" : "#D4D4D4", + "background-color" : "#ce93d8" + }, + "Search" : { + "//comment" : "Search highlight", + "text-color" : "#D4D4D4", + "background-color" : "#4db6ac" + }, + "SearchUnderCursor" : { + "//comment" : "Search highlight under cursor", + "text-color" : "#D4D4D4", + "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, Tahoma, Arial, Geneva, Georgia, Times New Roman", + "font-size" : 12, + "text-color" : "#D4D4D4", + "background-color" : "#1E1E1E", + "selected-text-color" : "#1E1E1E", + "selected-background-color" : "#1976d2" + } + }, + "markdown-syntax-styles" : { + "H1" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 17 + }, + "H2" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 16 + }, + "H3" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 15 + }, + "H4" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 14 + }, + "H5" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 13 + }, + "H6" : { + "text-color" : "#D4D4D4", + "bold" : true, + "font-size" : 12 + }, + "HRULE" : { + "text-color" : "#D4D4D4", + "background-color" : "#dac7c9" + }, + "LIST_BULLET" : { + "text-color" : "#6797e6", + "bold" : true + }, + "LIST_ENUMERATOR" : { + "text-color" : "#6797e6" + }, + "LINK" : { + "text-color" : "#ce8349" + }, + "AUTO_LINK_URL" : { + "text-color" : "#ce8349" + }, + "AUTO_LINK_EMAIL" : { + "text-color" : "#ce8349" + }, + "IMAGE" : { + "text-color" : "#616161" + }, + "REFERENCE" : { + "text-color" : "#826200" + }, + "CODE" : { + "text-color" : "#ce8349", + "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" : "#8900b5" + }, + "VERBATIM" : { + "text-color" : "#8900b5", + "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" : "#ffffff", + "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" : "#D4D4D4", + "background-color" : "#ffff76" + }, + "TABLE" : { + "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New" + }, + "TABLEBORDER" : { + "text-color" : "#d33682", + "background-color" : "#e0e0e0" + } + } +} diff --git a/src/data/extra/themes/dark_vs/up.svg b/src/data/extra/themes/dark_vs/up.svg new file mode 100644 index 00000000..cb37cc73 --- /dev/null +++ b/src/data/extra/themes/dark_vs/up.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/up_disabled.svg b/src/data/extra/themes/dark_vs/up_disabled.svg new file mode 100644 index 00000000..68f1d067 --- /dev/null +++ b/src/data/extra/themes/dark_vs/up_disabled.svg @@ -0,0 +1,8 @@ + + + Layer 1 + + + + + diff --git a/src/data/extra/themes/dark_vs/web.css b/src/data/extra/themes/dark_vs/web.css new file mode 100644 index 00000000..b6af52ec --- /dev/null +++ b/src/data/extra/themes/dark_vs/web.css @@ -0,0 +1,285 @@ +body { + margin: 0 auto; + font-family: "YaHei Consolas Hybrid", "Noto Sans", "Helvetica Neue", "Segoe UI", Helvetica, Tahoma, Arial, Geneva, Georgia, Palatino, "Times New Roman", "冬青黑体", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", Dengxian, "等线体", STXihei, "华文细黑", "Liberation Sans", "Droid Sans", NSimSun, "新宋体", SimSun, "宋体", "Apple Color Emoji", "Segoe UI Emoji"; + color: #D4D4D4; + line-height: 1.5; + padding: 16px; + background-color: #1E1E1E; + font-size: 16px; +} + +h1, h2, h3, h4, h5, h6 { + color: #D4D4D4; + font-weight: bold; + margin-top: 20px; + margin-bottom: 10px; + padding: 0; +} + +p { + padding: 0; + 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; +} + +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, "Andale Mono", Monospace, "Courier New"; + color: #ce8349; + word-break: break-word; +} + +/* Code background */ +pre code { + display: block; + padding-left: 0.5em; + padding-right: 0.5em; + color: #222222; + background-color: #161616; + line-height: 1.5; + font-family: "YaHei Consolas Hybrid", Consolas, Monaco, "Andale Mono", Monospace, "Courier New"; + white-space: pre; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +aside { + display: block; + float: right; + width: 390px; +} + +blockquote { + color: #666666; + border-left: .5em solid #7a7a7a; + padding: 0 1em; + margin-left: 0; +} + +blockquote p { + color: #666666; +} + +hr { + display: block; + text-align: left; + margin: 1em 0; + border: none; + height: 2px; + background-color: #999999; +} + +table { + padding: 0; + margin: 1rem 0.5rem; + border-collapse: collapse; +} + +table tr { + border-top: 1px solid #cccccc; + background-color: #1e1e1e; + margin: 0; + padding: 0; +} + +table tr:hover { + background-color: #a5a5a5; +} + +table tr th { + font-weight: bold; + border: 1px solid #cccccc; + margin: 0; + padding: 6px 13px; +} + +table tr td { + border: 1px solid #cccccc; + 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; +} + +div.vx-flowchartjs-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +div.vx-wavedrom-graph { + padding: 0px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +div.vx-plantuml-graph { + padding: 5px 5px 0px 5px; + margin: 16px 0px 16px 0px; + width: fit-content; + overflow: hidden; +} + +::selection { + background-color: #1976d2; + color: #f5f5f5; +} + +::-webkit-scrollbar { + background-color: #1e1e1e; + width: 14px; + height: 14px; + border: none; +} + +::-webkit-scrollbar-corner { + background-color: #1e1e1e; +} + +::-webkit-scrollbar-button { + /* This selector affects the styling of both the up & down and left & right buttons of a scrollbar */ + height: 14px; + width: 14px; + background-color: #1e1e1e; +} + +::-webkit-scrollbar-button:hover { + background-color: #dadada; +} + +::-webkit-scrollbar-button:active { + background-color: #161616; +} + +::-webkit-scrollbar-track { + /* This selector affects the styling of the area in the scrollbar between the two buttons */ + background-color: #1e1e1e; +} + +::-webkit-scrollbar-thumb { + /* This selector affects the styling of draggable element of the scollbar */ + border: none; + background-color: #3c3c3c; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #424242; +} + +::-webkit-scrollbar-thumb:active { + background-color: #bbbbbb; +} + +::-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: #222222; + background-color: #4db6ac; +} + +#vx-content span.vx-current-search-match { + color: #222222; + background-color: #66bb6a; +}