diff --git a/src/data/extra/themes/Vue-Dark/arrow_dropdown.svg b/src/data/extra/themes/Vue-Dark/arrow_dropdown.svg
new file mode 100644
index 00000000..c1dc5c7f
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/arrow_dropdown.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/arrow_dropdown_disabled.svg b/src/data/extra/themes/Vue-Dark/arrow_dropdown_disabled.svg
new file mode 100644
index 00000000..f4819bfb
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/arrow_dropdown_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/branch_closed.svg b/src/data/extra/themes/Vue-Dark/branch_closed.svg
new file mode 100644
index 00000000..f2ff55d1
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/branch_closed.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/branch_open.svg b/src/data/extra/themes/Vue-Dark/branch_open.svg
new file mode 100644
index 00000000..c1dc5c7f
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/branch_open.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/checkbox_checked.svg b/src/data/extra/themes/Vue-Dark/checkbox_checked.svg
new file mode 100644
index 00000000..2ef38fe3
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/checkbox_checked.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/checkbox_checked_disabled.svg b/src/data/extra/themes/Vue-Dark/checkbox_checked_disabled.svg
new file mode 100644
index 00000000..8fedad02
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/checkbox_checked_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/checkbox_unchecked.svg b/src/data/extra/themes/Vue-Dark/checkbox_unchecked.svg
new file mode 100644
index 00000000..282bc989
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/checkbox_unchecked.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/checkbox_unchecked_disabled.svg b/src/data/extra/themes/Vue-Dark/checkbox_unchecked_disabled.svg
new file mode 100644
index 00000000..7320b4e3
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/checkbox_unchecked_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/close.svg b/src/data/extra/themes/Vue-Dark/close.svg
new file mode 100644
index 00000000..eec46cb7
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/close_grey.svg b/src/data/extra/themes/Vue-Dark/close_grey.svg
new file mode 100644
index 00000000..25c7b6ad
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/close_grey.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/cover.png b/src/data/extra/themes/Vue-Dark/cover.png
new file mode 100644
index 00000000..569efdb4
Binary files /dev/null and b/src/data/extra/themes/Vue-Dark/cover.png differ
diff --git a/src/data/extra/themes/Vue-Dark/down.svg b/src/data/extra/themes/Vue-Dark/down.svg
new file mode 100644
index 00000000..c1dc5c7f
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/down.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/down_disabled.svg b/src/data/extra/themes/Vue-Dark/down_disabled.svg
new file mode 100644
index 00000000..f4819bfb
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/down_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/float.svg b/src/data/extra/themes/Vue-Dark/float.svg
new file mode 100644
index 00000000..3c5ab5df
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/float.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/highlight.css b/src/data/extra/themes/Vue-Dark/highlight.css
new file mode 100644
index 00000000..2d283c09
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/highlight.css
@@ -0,0 +1,233 @@
+/* PrismJS 1.22.0
+https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apex+apl+applescript+aql+arduino+arff+asciidoc+aspnet+asm6502+autohotkey+autoit+bash+basic+batch+bbcode+birb+bison+bnf+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cil+clojure+cmake+coffeescript+concurnas+csp+crystal+css-extras+cypher+d+dart+dataweave+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+promql+properties+protobuf+pug+puppet+pure+purebasic+purescript+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+sml+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-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;
+
+ }
+
+ /* Code blocks */
+ pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+ }
+
+ :not(pre) > code[class*="language-"],
+ pre[class*="language-"] {
+ background: #1A1A1A;
+ border-radius: 6px;
+ }
+
+ /* 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: #6a9955;
+ }
+
+ .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: #d7ba7d;
+ }
+
+ .token.property,
+ .token.class-name,
+ .token.constant,
+ .token.symbol {
+ color: #f8c555;
+ }
+
+ .token.selector,
+ .token.important,
+ .token.atrule,
+ .token.keyword,
+ .token.builtin {
+ color: #569cd6;
+ }
+
+ .token.string,
+ .token.char,
+ .token.attr-value,
+ .token.regex,
+ .token.variable {
+ color: #ce9178;
+ }
+
+ .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: rgba(235, 235, 235, 0.38);
+ padding: 0 .5em;
+ margin: 0 .5em;
+ background: #252526;
+ border-radius: 4px;
+ font-size: 13px;
+ line-height: 18px;
+ height: 18px;
+ }
+
+ 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;
+ cursor: pointer;
+ text-decoration: none;
+ }
+
\ No newline at end of file
diff --git a/src/data/extra/themes/Vue-Dark/interface.qss b/src/data/extra/themes/Vue-Dark/interface.qss
new file mode 100644
index 00000000..8497b83b
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/interface.qss
@@ -0,0 +1,1180 @@
+/* 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-size: 10pt;
+ 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 {
+ 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 22px 5px 22px;
+ 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: 1px solid @widgets#qlineedit#focus#border;
+ background-color: @widgets#qlineedit#focus#bg;
+}
+
+QLineEdit:hover {
+ border: 1px 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: #2D2D2D;
+ border: none;
+}
+
+QTabBar::tab:top, QTabBar::tab:bottom {
+ border-top: 2px solid transparent;
+ border-right: 1px solid @widgets#qtabbar#tab#border;
+ padding: 2px 2px 2px 2px;
+ 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: 8px 8px -8px 8px;
+}
+
+/* Tabified QDockWidget */
+QMainWindow > QTabBar::tab:left {
+ border-left: 3px solid transparent;
+ border-bottom: none;
+ margin: 0px;
+ padding: -8px 8px 8px 8px;
+}
+
+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: #1E1E1E;
+}
+
+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;
+}
+
+vnotex--EntryPopup {
+ border: 1px solid @widgets#unitedentry#popup#border;
+}
diff --git a/src/data/extra/themes/Vue-Dark/left.svg b/src/data/extra/themes/Vue-Dark/left.svg
new file mode 100644
index 00000000..d4d8e4d4
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/left.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/left_disabled.svg b/src/data/extra/themes/Vue-Dark/left_disabled.svg
new file mode 100644
index 00000000..e06ac73f
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/left_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/menu_checkbox.svg b/src/data/extra/themes/Vue-Dark/menu_checkbox.svg
new file mode 100644
index 00000000..58b9e4c5
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/menu_checkbox.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/menu_radiobutton.svg b/src/data/extra/themes/Vue-Dark/menu_radiobutton.svg
new file mode 100644
index 00000000..d97e6e2a
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/menu_radiobutton.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/palette.json b/src/data/extra/themes/Vue-Dark/palette.json
new file mode 100644
index 00000000..1f1b46e1
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/palette.json
@@ -0,0 +1,656 @@
+{
+ "metadata" : {
+ "revision" : 1,
+ "editor-highlight-theme" : "Breeze Dark",
+ "markdown-editor-highlight-theme" : "Markdown Breeze Dark",
+ "display_name" : "Vue-dark"
+ },
+ "palette" : {
+ "bg1_1" : "#07080d",
+ "bg1_2" : "#101215",
+ "bg1_3" : "#181b20",
+ "bg1_4" : "#21252b",
+ "bg1_5" : "#1A1A1A",
+ "bg1_51" : "#424242",
+ "bg1_6" : "#424242",
+ "bg1_7" : "#424242",
+ "bg1_71" : "#535d6c",
+ "bg1_8" : "#363737",
+ "bg1_9" : "#657184",
+ "fg1_1" : "#7e899d",
+ "fg1_2" : "#8a93a6",
+ "fg1_3" : "#959eae",
+ "fg1_4" : "#a0a8b7",
+ "fg1_5" : "#949494",
+ "fg1_6" : "#b6bcc7",
+ "fg1_7" : "#c1c6d0",
+ "fg1_8" : "#ccd1d8",
+ "fg1_9" : "#d7dae0",
+ "fg1_10" : "#e3e5e9",
+ "bg2_2" : "#3a4ba6",
+ "bg2_3" : "#3f52b4",
+ "bg2_4" : "#485bbf",
+ "bg2_5" : "#5768c4",
+ "bg2_6" : "#6675c9",
+ "bg2_7" : "#7482ce",
+ "bg2_8" : "#838fd3",
+ "bg2_9" : "#919cd8",
+ "fg10" : "#b71c1c",
+ "fg11" : "#ab5683",
+ "fg12" : "#5768c4",
+ "fg13" : "#b42b1f",
+ "fg15_3" : "#4f5666",
+ "fg15_4" : "#60697c",
+ "fg15_5" : "#C5C5C5",
+ "bg10_4" : "#2d323b",
+ "bg10_5" : "#242424",
+ "bg10_6" : "#3c414d",
+ "bg10_7" : "#444b58",
+ "bg10_8" : "#5a5f66",
+ "bg11" : "#0c7bff"
+ },
+ "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"
+ }
+ },
+ "unitedentry" : {
+ "icon" : {
+ "fg" : "@base#icon#fg",
+ "busy" : {
+ "fg" : "@base#master#bg"
+ }
+ },
+ "popup" : {
+ "border" : "@base#normal#border"
+ }
+ }
+ }
+}
diff --git a/src/data/extra/themes/Vue-Dark/radiobutton_checked.svg b/src/data/extra/themes/Vue-Dark/radiobutton_checked.svg
new file mode 100644
index 00000000..b5bac502
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/radiobutton_checked.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/radiobutton_checked_disabled.svg b/src/data/extra/themes/Vue-Dark/radiobutton_checked_disabled.svg
new file mode 100644
index 00000000..0760b5b1
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/radiobutton_checked_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/radiobutton_unchecked.svg b/src/data/extra/themes/Vue-Dark/radiobutton_unchecked.svg
new file mode 100644
index 00000000..427083aa
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/radiobutton_unchecked.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/radiobutton_unchecked_disabled.svg b/src/data/extra/themes/Vue-Dark/radiobutton_unchecked_disabled.svg
new file mode 100644
index 00000000..16d732b8
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/radiobutton_unchecked_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/right.svg b/src/data/extra/themes/Vue-Dark/right.svg
new file mode 100644
index 00000000..f2ff55d1
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/right.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/right_disabled.svg b/src/data/extra/themes/Vue-Dark/right_disabled.svg
new file mode 100644
index 00000000..9d1734dc
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/right_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/sizegrip.svg b/src/data/extra/themes/Vue-Dark/sizegrip.svg
new file mode 100644
index 00000000..93b2470a
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/sizegrip.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/text-editor.theme b/src/data/extra/themes/Vue-Dark/text-editor.theme
new file mode 100644
index 00000000..30c7ac4d
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/text-editor.theme
@@ -0,0 +1,202 @@
+{
+ "metadata" : {
+ "revision" : 0,
+ "name" : "Moonlight",
+ "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" : "#ccd1d8",
+ "background-color" : "#242424",
+ "selected-text-color" : "#e3e5e9",
+ "selected-background-color" : "#0c7bff"
+ },
+ "CursorLine" : {
+ "background-color" : "#424242"
+ },
+ "TrailingSpace" : {
+ "background-color" : "#959eae"
+ },
+ "Tab" : {
+ "background-color" : "#a0a8b7"
+ },
+ "SelectedText" : {
+ "//comment" : "Selected text highlight",
+ "text-color" : "#222222",
+ "background-color" : "#dfdf00"
+ },
+ "IndicatorsBorder" : {
+ "text-color" : "#525252",
+ "background-color" : "#2F2F2F"
+ },
+ "CurrentLineNumber" : {
+ "text-color" : "#ccd1d8"
+ },
+ "Folding" : {
+ "text-color" : "#838fd3"
+ },
+ "FoldedFolding" : {
+ "text-color" : "#919cd8"
+ },
+ "FoldingHighlight" : {
+ "text-color" : "#4c5562"
+ },
+ "FoldedFoldingRangeLine" : {
+ "background-color" : "#3a4ba6"
+ },
+ "IncrementalSearch" : {
+ "//comment" : "Incremental search highlight",
+ "text-color" : "#222222",
+ "background-color" : "#ce93d8"
+ },
+ "Search" : {
+ "//comment" : "Search highlight",
+ "text-color" : "#222222",
+ "background-color" : "#4db6ac"
+ },
+ "SearchUnderCursor" : {
+ "//comment" : "Search highlight under cursor",
+ "text-color" : "#222222",
+ "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" : "#ccd1d8",
+ "background-color" : "#242424",
+ "selected-text-color" : "#e3e5e9",
+ "selected-background-color" : "#0c7bff"
+ },
+ "Preview" : {
+ "background-color" : "#b0bec5"
+ }
+ },
+ "markdown-syntax-styles" : {
+ "H1" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 17
+ },
+ "H2" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 16
+ },
+ "H3" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 15
+ },
+ "H4" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 14
+ },
+ "H5" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 13
+ },
+ "H6" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true,
+ "font-size" : 12
+ },
+ "HRULE" : {
+ "text-color" : "#abb2bf",
+ "background-color" : "#864046"
+ },
+ "LIST_BULLET" : {
+ "text-color" : "#E3E3E3",
+ "bold" : true
+ },
+ "LIST_ENUMERATOR" : {
+ "text-color" : "#E3E3E3"
+ },
+ "LINK" : {
+ "text-color" : "#61afef"
+ },
+ "AUTO_LINK_URL" : {
+ "text-color" : "#61afef"
+ },
+ "AUTO_LINK_EMAIL" : {
+ "text-color" : "#61afef"
+ },
+ "IMAGE" : {
+ "text-color" : "#4883b3"
+ },
+ "REFERENCE" : {
+ "text-color" : "#56b6c2"
+ },
+ "CODE" : {
+ "text-color" : "#98c379",
+ "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New"
+ },
+ "EMPH" : {
+ "italic" : true
+ },
+ "STRONG" : {
+ "bold" : true
+ },
+ "HTML_ENTITY" : {
+ "text-color" : "#c07855"
+ },
+ "HTML" : {
+ "text-color" : "#c07855"
+ },
+ "HTMLBLOCK" : {
+ "text-color" : "#c07855"
+ },
+ "COMMENT" : {
+ "text-color" : "#7e899d"
+ },
+ "VERBATIM" : {
+ "text-color" : "#98c379",
+ "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" : "#98c379",
+ "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New"
+ },
+ "BLOCKQUOTE" : {
+ "text-color" : "#7482ce"
+ },
+ "NOTE" : {
+ "text-color" : "#9575cd"
+ },
+ "STRIKE" : {
+ "text-color" : "#e57373",
+ "strike-through" : true
+ },
+ "FRONTMATTER" : {
+ "text-color" : "#6e7686"
+ },
+ "INLINEEQUATION" : {
+ "text-color" : "#4db6ac",
+ "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New"
+ },
+ "DISPLAYFORMULA" : {
+ "text-color" : "#4db6ac",
+ "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New"
+ },
+ "MARK" : {
+ "text-color" : "#d7dae0",
+ "background-color" : "#898900"
+ },
+ "TABLE" : {
+ "font-family" : "YaHei Consolas Hybrid, Consolas, Monaco, Andale Mono, Monospace, Courier New"
+ },
+ "TABLEBORDER" : {
+ "text-color" : "#FFFFFF",
+ "background-color" : "#424242"
+ }
+ }
+}
diff --git a/src/data/extra/themes/Vue-Dark/up.svg b/src/data/extra/themes/Vue-Dark/up.svg
new file mode 100644
index 00000000..f2900a72
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/up.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/up_disabled.svg b/src/data/extra/themes/Vue-Dark/up_disabled.svg
new file mode 100644
index 00000000..fbe79609
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/up_disabled.svg
@@ -0,0 +1 @@
+
diff --git a/src/data/extra/themes/Vue-Dark/web.css b/src/data/extra/themes/Vue-Dark/web.css
new file mode 100644
index 00000000..aad04e2b
--- /dev/null
+++ b/src/data/extra/themes/Vue-Dark/web.css
@@ -0,0 +1,386 @@
+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: #E3E3E3;
+ line-height: 1.5;
+ padding: 16px;
+ background-color: #242424;
+ font-size: 16px;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #E1E1E1;
+ 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: #9499FF;
+ margin: 0;
+ padding: 0;
+ vertical-align: baseline;
+ text-decoration: none;
+ word-break: break-word;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a:visited {
+ color: #ba68c8;
+}
+
+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, "Andale Mono", Monospace, "Courier New";
+ color: #C9DEF1;
+ word-break: break-word;
+}
+
+pre code {
+ display: block;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ color: #C9DEF1;
+ background-color: #2d323b;
+ 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: #2F2F2F;
+ border-left: .2em solid #abb2bf;
+ margin: 1em 0;
+ padding: .3em .5rem;
+ background-color: #3A3A3A;
+}
+
+blockquote p,blockquote ul {
+ color: #abb2bf;
+ margin: 8px 0;
+}
+
+hr {
+ display: block;
+ text-align: left;
+ margin: 1em 0;
+ border: none;
+ height: 2px;
+ background-color: #4c5562;
+}
+
+table {
+ padding: 0;
+ margin: 1rem 0;
+ width: 100%;
+ border-collapse: collapse;
+}
+
+table tr {
+ border-top: 1px solid rgba(84, 84, 84, .65);;
+ background-color: #242424;
+ margin: 0;
+ padding: 0;
+}
+
+table tr:hover {
+ background-color: #3b424c;
+}
+
+table tr:nth-child(2n){
+ background-color: #2f2f2f;
+}
+
+table tr th {
+ font-weight: bold;
+ border: 1px solid rgba(84, 84, 84, .65);;
+ background-color: #1A1A1A;
+ color: #E1E1E1;
+ margin: 0;
+ padding: 12px 16px;
+}
+
+table tr td {
+ border: 1px solid rgba(84, 84, 84, .65);;
+ margin: 0;
+ padding: 12px 16px;
+}
+
+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: #B0BEC5;
+ color: #6C6C6C;
+}
+
+div.vx-flowchartjs-graph {
+ padding: 0px 5px 0px 5px;
+ margin: 16px 0px 16px 0px;
+ width: fit-content;
+ overflow: hidden;
+ background: #B0BEC5;
+ color: #6C6C6C;
+}
+
+div.vx-wavedrom-graph {
+ padding: 0px 5px 0px 5px;
+ margin: 16px 0px 16px 0px;
+ width: fit-content;
+ overflow: hidden;
+ background: #B0BEC5;
+ color: #6C6C6C;
+}
+
+div.vx-plantuml-graph {
+ padding: 5px 5px 0px 5px;
+ margin: 16px 0px 16px 0px;
+ width: fit-content;
+ overflow: hidden;
+ background: #B0BEC5;
+ color: #6C6C6C;
+}
+
+::selection {
+ background-color: #0c7bff;
+ color: #e3e5e9;
+}
+
+::-webkit-scrollbar {
+ background-color: #1A1A1A;
+ width: 14px;
+ height: 14px;
+ border: none;
+}
+
+::-webkit-scrollbar-corner {
+ background-color: #1A1A1A;
+}
+
+::-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: #1A1A1A;
+}
+
+::-webkit-scrollbar-button:hover {
+ background-color: #535d6c;
+}
+
+::-webkit-scrollbar-button:active {
+ background-color: #313740;
+}
+
+::-webkit-scrollbar-track {
+ /* This selector affects the styling of the area in the scrollbar between the two buttons */
+ background-color: #1A1A1A;
+}
+
+::-webkit-scrollbar-thumb {
+ /* This selector affects the styling of draggable element of the scollbar */
+ border: none;
+ background-color: #424242;
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background-color: #535d6c;
+}
+
+::-webkit-scrollbar-thumb:active {
+ background-color: #4c5562;
+}
+
+::-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;
+}
+
+/* 宽度设定 */
+
+#vx-content {
+ margin: 0 auto;
+ padding: 30px 30px 40px;
+}
+
+@media screen and (min-width: 1180px) {
+ #vx-content {
+ max-width: 1100px;
+ }
+}
+
+@media screen and (max-width: 768px) {
+ #vx-content {
+ max-width: 100%;
+ padding: 30px 15px 40px;
+ }
+}
+
+/* 重新定义 alert */
+
+.vx-alert {
+ padding: 16px !important;
+ border: 1px solid #747BFF !important;
+ background-color: #292935 !important;
+ border-radius: 8px !important;
+ margin: 16px 0;
+ font-size: 14px !important;
+ color: #BCC0FF !important;
+}
+
+.vx-alert p,.vx-alert ul {margin: 8px 0;line-height: 24px;font-size: 14px !important;}
+.vx-alert code {
+ padding: 3px 6px;
+ border-radius: 4px;
+ font-weight: bold;
+ color: inherit;
+ font-size: 13px !important;
+ line-height: 21px;
+ background-color: rgba(100, 108, 255, .08);
+}
+
+.alert-success,.alert-s{
+ border-color: #23996E !important;
+ background-color: rgba(35, 153, 110, .08) !important;
+ color: rgba(35, 153, 110, .5) !important;
+}
+
+.alert-warning,.alert-w{
+ border-color: #ffa502 !important;
+ background-color: rgba(255, 165, 2, .08) !important;
+ color: rgba(255, 165, 2, .5) !important;
+}
+
+
+.alert-info,.alert-i{
+ border-color: #70a1ff !important;
+ background-color: rgba(112, 161, 255, .08) !important;
+ color: rgba(112, 161, 255, .5) !important;
+}
+
+.alert-danger,.alert-d{
+ border-color: #ff4757 !important;
+ background-color: rgba(255, 71, 87, .08) !important;
+ color: rgba(255, 71, 87, .5) !important;
+}
+
+.alert-light{
+ border-color: #C1C1C1 !important;
+ background-color: rgba(193, 193, 193, .08) !important;
+ color: rgba(193, 193, 193, .5) !important;
+}
+
+.alert-dark{
+ border-color: #111 !important;
+ background-color: #1E1E1E !important;
+ color: #999 !important;
+}
\ No newline at end of file