Browse Source

themes: add v_moonlight theme for dark mode

Le Tan 8 years ago
parent
commit
4b32fca9b5
40 changed files with 2435 additions and 45 deletions
  1. 9 0
      src/resources/themes/v_moonlight/arrow_dropdown.svg
  2. 8 0
      src/resources/themes/v_moonlight/branch_closed.svg
  3. 8 0
      src/resources/themes/v_moonlight/branch_open.svg
  4. 7 0
      src/resources/themes/v_moonlight/checkbox_checked.svg
  5. 6 0
      src/resources/themes/v_moonlight/checkbox_unchecked.svg
  6. 10 0
      src/resources/themes/v_moonlight/close.svg
  7. 10 0
      src/resources/themes/v_moonlight/close_grey.svg
  8. 8 0
      src/resources/themes/v_moonlight/down.svg
  9. 8 0
      src/resources/themes/v_moonlight/down_disabled.svg
  10. 12 0
      src/resources/themes/v_moonlight/float.svg
  11. 8 0
      src/resources/themes/v_moonlight/left.svg
  12. 8 0
      src/resources/themes/v_moonlight/left_disabled.svg
  13. 6 0
      src/resources/themes/v_moonlight/menu_checkbox.svg
  14. 6 0
      src/resources/themes/v_moonlight/menu_radiobutton.svg
  15. 7 0
      src/resources/themes/v_moonlight/radiobutton_checked.svg
  16. 6 0
      src/resources/themes/v_moonlight/radiobutton_unchecked.svg
  17. 8 0
      src/resources/themes/v_moonlight/right.svg
  18. 8 0
      src/resources/themes/v_moonlight/right_disabled.svg
  19. 8 0
      src/resources/themes/v_moonlight/up.svg
  20. 8 0
      src/resources/themes/v_moonlight/up_disabled.svg
  21. 296 0
      src/resources/themes/v_moonlight/v_moonlight.css
  22. 172 0
      src/resources/themes/v_moonlight/v_moonlight.mdhl
  23. 343 0
      src/resources/themes/v_moonlight/v_moonlight.palette
  24. 1284 0
      src/resources/themes/v_moonlight/v_moonlight.qss
  25. 96 0
      src/resources/themes/v_moonlight/v_moonlight_codeblock.css
  26. 1 1
      src/resources/themes/v_pure/arrow_dropdown.svg
  27. 1 1
      src/resources/themes/v_pure/close.svg
  28. 2 2
      src/resources/themes/v_pure/float.svg
  29. 8 17
      src/resources/themes/v_pure/v_pure.css
  30. 3 1
      src/resources/themes/v_pure/v_pure.palette
  31. 9 1
      src/resources/themes/v_pure/v_pure.qss
  32. 8 17
      src/resources/themes/v_white/v_white.css
  33. 1 0
      src/resources/themes/v_white/v_white.palette
  34. 1 0
      src/resources/themes/v_white/v_white.qss
  35. 16 2
      src/utils/viconutils.cpp
  36. 3 1
      src/utils/viconutils.h
  37. 2 0
      src/vconfigmanager.cpp
  38. 3 0
      src/vmdtab.cpp
  39. 2 2
      src/vnote.cpp
  40. 25 0
      src/vnote.qrc

+ 9 - 0
src/resources/themes/v_moonlight/arrow_dropdown.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+	<polygon fill="#9EA5B4" points="128,192 256,320 384,192 	"/>
+</g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/branch_closed.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(-90 256.00000000000006,256) " id="svg_1">
+   <polygon fill="#9EA5B4" id="svg_2" points="128,192 256,320 384,192  "/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/branch_open.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g id="svg_1">
+   <polygon fill="#9EA5B4" id="svg_2" points="128,192 256,320 384,192  "/>
+  </g>
+ </g>
+</svg>

+ 7 - 0
src/resources/themes/v_moonlight/checkbox_checked.svg

@@ -0,0 +1,7 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <rect id="svg_6" fill-opacity="0" height="299" width="299" y="106.5" x="106.5" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="30" stroke="#9EA5B4" fill="#000000"/>
+  <path stroke-opacity="0" id="svg_3" d="m126,243.24589l27.93756,-27.94743l76.53449,76.52461l127.58052,-127.54102l27.94743,27.92768l-155.52795,155.50821" stroke-width="5" fill="#9EA5B4" stroke="#000000"/>
+ </g>
+</svg>

+ 6 - 0
src/resources/themes/v_moonlight/checkbox_unchecked.svg

@@ -0,0 +1,6 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <rect id="svg_6" fill-opacity="0" height="299" width="299" y="106.5" x="106.5" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="30" stroke="#9EA5B4" fill="#000000"/>
+ </g>
+</svg>

+ 10 - 0
src/resources/themes/v_moonlight/close.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path style="fill:#9EA5B4" d="M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4
+	L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1
+	c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1
+	c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z"/>
+</svg>

+ 10 - 0
src/resources/themes/v_moonlight/close_grey.svg

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<path style="fill:#636D81" d="M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4
+	L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1
+	c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1
+	c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z"/>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/down.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="null" id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#9EA5B4"/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/down_disabled.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="null" id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#4D5765"/>
+  </g>
+ </g>
+</svg>

+ 12 - 0
src/resources/themes/v_moonlight/float.svg

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
+<g>
+	<path style="fill:#9EA5B4" d="M64,144v304h303.9V144H64z M351.9,432H80V160h271.9V432z"/>
+	<g>
+		<polygon style="fill:#9EA5B4" points="448,64 144,64 144,128 160,128 160,80 432,80 432,352 384,352 384,368 448,368 		"/>
+	</g>
+</g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/left.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(90 255.99999999999997,256.00000000000006) " id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#9EA5B4"/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/left_disabled.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(90 255.99999999999997,256.00000000000006) " id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#4D5765"/>
+  </g>
+ </g>
+</svg>

+ 6 - 0
src/resources/themes/v_moonlight/menu_checkbox.svg

@@ -0,0 +1,6 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <path stroke-opacity="0" id="svg_3" d="m126,243.24589l27.93756,-27.94743l76.53449,76.52461l127.58052,-127.54102l27.94743,27.92768l-155.52795,155.50821" stroke-width="5" fill="#9EA5B4" stroke="#000000"/>
+ </g>
+</svg>

+ 6 - 0
src/resources/themes/v_moonlight/menu_radiobutton.svg

@@ -0,0 +1,6 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <circle fill="#9EA5B4" stroke="#000000" stroke-width="20" stroke-dasharray="null" stroke-linejoin="null" stroke-linecap="null" stroke-opacity="0" cx="257.00002" cy="256" r="83.2406" id="svg_11"/>
+ </g>
+</svg>

+ 7 - 0
src/resources/themes/v_moonlight/radiobutton_checked.svg

@@ -0,0 +1,7 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <circle fill="#000000" stroke-width="30" stroke-dasharray="null" stroke-linejoin="null" stroke-linecap="null" fill-opacity="0" cx="256.00001" cy="256.00001" r="142.96561" id="svg_9" stroke="#9EA5B4"/>
+  <circle fill="#9EA5B4" stroke="#000000" stroke-width="20" stroke-dasharray="null" stroke-linejoin="null" stroke-linecap="null" stroke-opacity="0" cx="256.00002" cy="256" r="83.2406" id="svg_11"/>
+ </g>
+</svg>

+ 6 - 0
src/resources/themes/v_moonlight/radiobutton_unchecked.svg

@@ -0,0 +1,6 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <circle fill="#000000" stroke-width="30" stroke-dasharray="null" stroke-linejoin="null" stroke-linecap="null" fill-opacity="0" cx="256.00001" cy="256.00001" r="142.96561" id="svg_9" stroke="#9EA5B4"/>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/right.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(-90 256.00000000000006,256) " id="svg_1">
+   <polygon fill="#9EA5B4" id="svg_2" points="128,192 256,320 384,192  "/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/right_disabled.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(-90 256.00000000000006,256) " id="svg_1">
+   <polygon fill="#4D5765" id="svg_2" points="128,192 256,320 384,192  "/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/up.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(180 255.99999999999997,256) " id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#9EA5B4"/>
+  </g>
+ </g>
+</svg>

+ 8 - 0
src/resources/themes/v_moonlight/up_disabled.svg

@@ -0,0 +1,8 @@
+<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+ <g>
+  <title>Layer 1</title>
+  <g transform="rotate(180 255.99999999999997,256) " id="svg_1">
+   <polygon points="128,192 256,320 384,192  " id="svg_2" fill="#4D5765"/>
+  </g>
+ </g>
+</svg>

+ 296 - 0
src/resources/themes/v_moonlight/v_moonlight.css

@@ -0,0 +1,296 @@
+body {
+    margin: 0 auto;
+    font-family: Helvetica, sans-serif, Tahoma, Arial, Verdana, Geneva, Georgia, Palatino, "Times New Roman", "Hiragino Sans GB", "冬青黑体", "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", "WenQuanYi Micro Hei", "文泉驿雅黑", Dengxian, "等线体", STXihei, "华文细黑", "Liberation Sans", "Droid Sans", NSimSun, "新宋体", SimSun, "宋体";
+    color: #ABB2BF;
+    line-height: 1;
+    padding: 30px;
+    background: #282C34;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: #E06C75;
+    font-weight: bold;
+    margin-bottom: 24px;
+    padding: 0;
+}
+
+p {
+    padding: 0;
+}
+
+h1 {
+    font-size: 36px;
+}
+
+h2 {
+    font-size: 30px;
+}
+
+h3 {
+    font-size: 26px;
+}
+
+h4 {
+    font-size: 22px;
+}
+
+h5 {
+    font-size: 20px;
+}
+
+h6 {
+    font-size: 18px;
+}
+
+a {
+    color: #61AFEF;
+    margin: 0;
+    padding: 0;
+    vertical-align: baseline;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+a:visited {
+    color: purple;
+}
+
+ul, ol {
+    padding: 0;
+    padding-left: 24px;
+}
+
+li {
+    line-height: 24px;
+}
+
+li ul, li ul {
+    margin-left: 24px;
+}
+
+p, ul, ol {
+    font-size: 16px;
+    line-height: 24px;
+}
+
+pre {
+    display: block;
+    overflow-y: hidden;
+    overflow-x: auto;
+}
+
+code {
+    font-family: Consolas, Monaco, Andale Mono, Monospace, Courier New;
+    line-height: 1.5;
+    font-size: 14px;
+    color: #98C379;
+}
+
+pre code {
+    margin: 0;
+    padding: 0;
+    border: none;
+    color: #98C379;
+}
+
+aside {
+    display: block;
+    float: right;
+    width: 390px;
+}
+
+blockquote {
+    color: #5C6370;
+    border-left:.5em solid #5C6370;
+    padding: 0 2em;
+    margin-left:0;
+}
+
+blockquote p {
+    color: #5C6370;
+}
+
+hr {
+    display: block;
+    text-align: left;
+    margin: 1em 0;
+    border: none;
+    height: 2px;
+    background: #373E47;
+}
+
+table {
+   padding: 0;
+   border-collapse: collapse;
+}
+
+table tr {
+   border-top: 1px solid #373E47;
+   margin: 0;
+   padding: 0;
+}
+
+table tr th {
+   font-weight: bold;
+   border: 1px solid #373E47;
+   margin: 0;
+   padding: 6px 13px;
+}
+
+table tr td {
+   border: 1px solid #373E47;
+   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.mermaid-diagram {
+    overflow-y: hidden;
+    background: #7D879B;
+    color: #6C6C6C;
+}
+
+pre.mermaid-diagram {
+    overflow-y: hidden;
+}
+
+div.flowchart-diagram {
+    overflow-y: hidden;
+    background: #7D879B;
+    color: #6C6C6C;
+}
+
+pre.flowchart-diagram {
+    overflow-y: hidden;
+}
+
+.img-package {
+    text-align: center;
+}
+
+img.img-center {
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+}
+
+div.img-caption {
+    min-width: 20%;
+    max-width: 80%;
+    display: inline-block;
+    padding: 10px;
+    margin: 0 auto;
+    border-bottom: 1px solid #373E47;
+    color: #ABB2BF;
+    text-align: center;
+    line-height: 1.5;
+}
+
+/* For Highlight.js Line Number */
+table.hljs-ln tr {
+    border: none;
+    background-color: transparent;
+}
+
+table.hljs-ln tr td {
+    border: none;
+    background-color: transparent;
+}
+
+table.hljs-ln tr td.hljs-ln-numbers {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+	text-align: center;
+	color: #5C6370;
+	border-right: 1px solid #373E47;
+	vertical-align: top;
+	padding-right: 5px;
+}
+
+table.hljs-ln tr td.hljs-ln-code {
+	padding-left: 10px;
+}
+
+::-webkit-scrollbar {
+    background-color: #21252B;
+    width: 14px;
+    height: 14px;
+    border: none;
+}
+
+::-webkit-scrollbar-corner {
+    background-color: #21252B;
+}
+
+::-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: #21252B;
+}
+
+::-webkit-scrollbar-button:hover {
+    background-color: #424A56;
+}
+
+::-webkit-scrollbar-button:active {
+    background-color: #31363F;
+}
+
+::-webkit-scrollbar-track {
+    /* This selector affects the styling of the area in the scrollbar between the two buttons */
+    background-color: #21252B;
+}
+
+::-webkit-scrollbar-thumb {
+    /* This selector affects the styling of draggable element of the scollbar */
+    border: none;
+    background-color: #353B45;
+}
+
+::-webkit-scrollbar-thumb:hover {
+    background-color: #424A56;
+}
+
+::-webkit-scrollbar-thumb:active {
+    background-color: #31363F;
+}
+
+::-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;
+}

+ 172 - 0
src/resources/themes/v_moonlight/v_moonlight.mdhl

@@ -0,0 +1,172 @@
+# This is the default markdown styles used for Peg-Markdown-Highlight
+# created by Le Tan([email protected]).
+# For a complete description of the syntax, please refer to the original
+# documentation of the style parser
+# [The Syntax of PEG Markdown Highlight Stylesheets](http://hasseg.org/peg-markdown-highlight/docs/stylesheet_syntax.html).
+# VNote adds some styles in the syntax which will be marked [VNote] in the comment.
+#
+# Note: Empty lines within a section is NOT allowed.
+# Note: Do NOT modify this file directly. Copy it and tune your own style!
+
+editor
+# QTextEdit just choose the first available font, so specify the Chinese fonts first
+# Do not use "" to quote the name
+font-family: Hiragino Sans GB, 冬青黑体, 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
+font-size: 12
+foreground: abb2bf
+background: 282c34
+# [VNote] Style for trailing space
+trailing-space: 636d81
+# [VNote] Style for line number
+line-number-background: 2c313a
+line-number-foreground: 5c6370
+# [VNote] Style for selected word highlight
+selected-word-background: 454bb2
+# [VNote] Style for searched word highlight
+searched-word-background: 424956
+# [VNote] Style for searched word under cursor highlight
+searched-word-cursor-background: 596173
+# [VNote] Style for incremental searched word highlight
+incremental-searched-word-background: 596173
+# [VNote] Style for color column in fenced code block
+color-column-background: c9302c
+color-column-foreground: eeeeee
+# [VNote} Style for preview image line
+preview-image-line-foreground: 6f5799
+
+editor-selection
+foreground: abb2bf
+background: 3e4451
+
+editor-current-line
+background: 353d49
+# [VNote] Vim insert mode cursor line background
+vim-insert-background: 353d49
+# [VNote] Vim normal mode cursor line background
+vim-normal-background: 373c47
+# [VNote] Vim visual mode cursor line background
+vim-visual-background: 105fa2
+# [VNote] Vim replace mode cursor line background
+vim-replace-background: 2f3377
+
+H1
+foreground: e06c75
+font-style: bold
+font-size: +8
+
+H2
+foreground: e06c75
+font-style: bold
+font-size: +6
+
+H3
+foreground: e06c75
+font-style: bold
+font-size: +4
+
+H4
+foreground: e06c75
+font-style: bold
+font-size: +2
+
+H5
+foreground: e06c75
+font-style: bold
+font-size: +2
+
+H6
+foreground: e06c75
+font-style: bold
+font-size: +2
+
+HRULE
+foreground: 8b90f3
+
+LIST_BULLET
+foreground: e06c75
+font-style: bold
+font-size: +2
+
+LIST_ENUMERATOR
+foreground: e06c75
+
+LINK
+foreground: 61afef
+font-style: underlined
+
+AUTO_LINK_URL
+foreground: 61afef
+font-style: underlined
+
+AUTO_LINK_EMAIL
+foreground: 61afef
+font-style: underlined
+
+IMAGE
+foreground: 4883b3
+
+REFERENCE
+foreground: 56b6c2
+
+CODE
+foreground: 98c379
+font-family: Consolas, Monaco, Andale Mono, Monospace, Courier New
+
+EMPH
+font-style: italic
+
+STRONG
+font-style: bold
+
+HTML_ENTITY
+foreground: abb2bf
+
+COMMENT
+foreground: 5c6370
+
+VERBATIM
+foreground: 98c379
+font-family: Consolas, Monaco, Andale Mono, Monospace, Courier New
+# [VNote] Codeblock sylte from HighlightJS (bold, italic, underlined, color)
+# The last occurence of the same attribute takes effect
+# Could specify multiple attribute in one line
+hljs-comment: 5c6370
+hljs-quote: 5c6370
+hljs-doctag: c678dd
+hljs-keyword: c678dd
+hljs-formula: c678dd
+hljs-section: e06c75
+hljs-name: e06c75
+hljs-selector-tag: e06c75
+hljs-deletion: e06c75
+hljs-subst: e06c75
+hljs-literal: 56b6c2
+hljs-string: 98c379
+hljs-regexp: 98c379
+hljs-addition: 98c379
+hljs-attribute: 98c379
+hljs-meta-string: 98c379
+hljs-built_in: e6c07b
+hljs-class: e6c07b
+hljs-attr: d19a66
+hljs-variable: d19a66
+hljs-template-variable: d19a66
+hljs-type: d19a66
+hljs-selector-class: d19a66
+hljs-selector-attr: d19a66
+hljs-selector-pseudo: d19a66
+hljs-number: d19a66
+hljs-symbol: 61aeee
+hljs-link: underlined, 61aeee
+hljs-bullet: 61aeee
+hljs-meta: 61aeee
+hljs-selector-id: 61aeee
+hljs-title: bold, 61aeee
+hljs-emphasis: italic
+hljs-strong: bold
+
+BLOCKQUOTE
+foreground: 5c6370
+
+STRIKE
+strike-color: 586e75

+ 343 - 0
src/resources/themes/v_moonlight/v_moonlight.palette

@@ -0,0 +1,343 @@
+; File path could be absolute path or relative path (related to this file).
+; Use @color_tag to reference a style.
+
+[metadata]
+qss_file=v_moonlight.qss
+mdhl_file=v_moonlight.mdhl
+css_file=v_moonlight.css
+codeblock_css_file=v_moonlight_codeblock.css
+
+[phony]
+; Abstract color attributes.
+master_fg=@edit_fg
+master_bg=#00695C
+master_light_bg=#4DB6AC
+master_drak_bg=#004D40
+master_focus_bg=#00796B
+master_hover_bg=#00796B
+master_pressed_bg=#004D40
+
+base_fg=#9DA5B4
+base_bg=#21252B
+
+main_fg=@base_fg
+main_bg=#base_bg
+
+title_fg=@base_fg
+title_bg=@base_bg
+
+disabled_fg=#4D5765
+
+content_fg=@base_fg
+content_bg=@base_bg
+
+border_bg=#181A1F
+
+separator_bg=#373E47
+
+hover_fg=#D7DAE0
+hover_bg=#31363F
+
+selected_fg=#FFFFFF
+selected_bg=#3A3F4B
+
+active_fg=@selected_fg
+active_bg=@selected_bg
+
+inactive_fg=@hover_fg
+inactive_bg=#4D5465
+
+focus_fg=@hover_fg
+focus_bg=@hover_bg
+
+pressed_fg=@hover_fg
+pressed_bg=#2C303A
+
+edit_fg=#D7DAE0
+edit_bg=#282C34
+edit_focus_bg=#1B1D23
+edit_focus_border=@master_bg
+edit_selection_fg=@edit_fg
+edit_selection_bg=#4D5565
+
+icon_fg=#9EA5B4
+icon_disabled_fg=@disabled_fg
+
+danger_fg=#F5F5F5
+danger_bg=#C9302C
+danger_focus_bg=#D9534F
+danger_hover_bg=#D9534F
+danger_pressed_bg=#AC2925
+
+[soft_defined]
+; VAvatar.
+avatar_border_bg=#7D879B
+avatar_fg=@base_bg
+avatar_bg=@base_fg
+; The border background color of the avatar when Captain mode is triggered.
+avatar_captain_mode_border_bg=@master_bg
+
+; Style of the label in Navigation mode.
+navigation_label_fg=@master_fg
+navigation_label_bg=@master_bg
+
+; Style of the bubble of VButtonWithWidget.
+bubble_fg=@master_fg
+bubble_bg=@master_bg
+
+; Icons' foreground.
+danger_icon_fg=@danger_bg
+item_icon_fg=@icon_fg
+title_icon_fg=@icon_fg
+
+; VVimIndicator.
+vim_indicator_key_label_fg=@base_fg
+vim_indicator_mode_label_fg=@base_fg
+vim_indicator_cmd_edit_pending_bg=@selected_bg
+
+; VTabIndicator.
+tab_indicator_label_fg=@base_fg
+
+; Html template.
+template_title_flash_light_fg=@master_light_bg
+template_title_flash_dark_fg=@master_bg
+
+[widgets]
+; Widget color attributes.
+
+; QWidget.
+widget_fg=@base_fg
+
+; Separator of dock widgets.
+dock_separator_bg=@border_bg
+dock_separator_hover_bg=@border_bg
+
+; Menubar.
+menubar_bg=@main_bg
+menubar_fg=@main_fg
+menubar_item_selected_bg=@selected_bg
+
+; Menu.
+menu_bg=@base_bg
+menu_fg=@base_fg
+menu_item_disabled_fg=@disabled_fg
+menu_item_selected_fg=@selected_fg
+menu_item_selected_bg=@selected_bg
+menu_separator_bg=@separator_bg
+menu_icon_fg=@icon_fg
+menu_icon_danger_fg=@danger_icon_fg
+
+; Tooltip.
+tooltip_bg=@master_bg
+tooltip_fg=@master_fg
+
+; Toolbar.
+toolbar_bg=@main_bg
+toolbar_separator_bg=@separator_bg
+toolbutton_hover_bg=@hover_bg
+toolbutton_pressed_bg=@pressed_bg
+toolbutton_checked_bg=@selected_bg
+toolbutton_icon_fg=@icon_fg
+toolbutton_icon_danger_fg=@danger_icon_fg
+
+; Toolbox.
+toolbox_icon_fg=@master_bg
+toolbox_icon_active_fg=@master_fg
+toolbox_title_border=@master_bg
+
+; Dockwidget.
+dockwidget_title_fg=@title_fg
+dockwidget_title_bg=@title_bg
+dockwidget_button_hover_bg=@hover_bg
+
+; PushButton.
+pushbutton_fg=@base_fg
+pushbutton_bg=transparent
+pushbutton_border=@border_bg
+pushbutton_pressed_bg=@pressed_bg
+pushbutton_focus_bg=@focus_bg
+pushbutton_checked_bg=@selected_bg
+pushbutton_hover_bg=@hover_bg
+pushbutton_default_border=@master_bg
+pushbutton_disabled_fg=@disabled_fg
+pushbutton_disabled_bg=@pushbutton_bg
+
+pushbutton_specialbtn_fg=@master_fg
+pushbutton_specialbtn_bg=@master_bg
+pushbutton_specialbtn_focus_bg=@master_focus_bg
+pushbutton_specialbtn_hover_bg=@master_hover_bg
+pushbutton_specialbtn_checked_bg=@master_focus_bg
+pushbutton_specialbtn_pressed_bg=@master_pressed_bg
+
+pushbutton_cornerbtn_hover_bg=@hover_bg
+pushbutton_cornerbtn_focus_bg=@focus_bg
+pushbutton_cornerbtn_pressed_bg=@pressed_bg
+
+pushbutton_statusbtn_hover_bg=@hover_bg
+pushbutton_statusbtn_focus_bg=@focus_bg
+pushbutton_statusbtn_pressed_bg=@pressed_bg
+
+pushbutton_flatbtn_hover_bg=@hover_bg
+pushbutton_flatbtn_focus_bg=@focus_bg
+pushbutton_flatbtn_pressed_bg=@pressed_bg
+
+pushbutton_selectionbtn_hover_bg=@hover_bg
+pushbutton_selectionbtn_focus_bg=@focus_bg
+pushbutton_selectionbtn_pressed_bg=@pressed_bg
+
+pushbutton_titlebtn_bg=@title_bg
+pushbutton_titlebtn_hover_bg=@hover_bg
+pushbutton_titlebtn_focus_bg=@focus_bg
+pushbutton_titlebtn_pressed_bg=@pressed_bg
+
+pushbutton_dangerbtn_fg=@danger_fg
+pushbutton_dangerbtn_bg=@danger_bg
+pushbutton_dangerbtn_hover_bg=@danger_hover_bg
+pushbutton_dangerbtn_focus_bg=@danger_focus_bg
+pushbutton_dangerbtn_pressed_bg=@danger_pressed_bg
+
+pushbutton_toolboxbtn_active_fg=@master_fg
+pushbutton_toolboxbtn_active_bg=@master_bg
+pushbutton_toolboxbtn_active_focus_bg=@master_focus_bg
+pushbutton_toolboxbtn_active_hover_bg=@master_hover_bg
+pushbutton_toolboxbtn_active_pressed_bg=@master_pressed_bg
+
+button_icon_fg=@icon_fg
+button_icon_danger_fg=@danger_icon_fg
+
+; ComboBox.
+combobox_border=@border_bg
+combobox_fg=@content_fg
+combobox_bg=@content_bg
+combobox_view_border=@border_bg
+combobox_view_selected_bg=@selected_bg
+combobox_view_selected_fg=@selected_fg
+combobox_view_item_hover_fg=@hover_fg
+combobox_view_item_hover_bg=@hover_bg
+combobox_focus_bg=@edit_focus_bg
+combobox_focus_border=@edit_focus_border
+combobox_item_icon_fg=@item_icon_fg
+
+combobox_notebookselector_fg=@master_bg
+combobox_notebookselector_bg=@combobox_bg
+combobox_notebookselector_border=@master_bg
+combobox_notebookselector_hover_fg=@master_bg
+combobox_notebookselector_hover_bg=@hover_bg
+combobox_notebookselector_focus_fg=@master_bg
+combobox_notebookselector_focus_bg=@focus_bg
+
+; Label.
+label_fg=@base_fg
+label_titlelabel_fg=@title_fg
+label_titlelabel_bg=@title_bg
+
+; LineEdit.
+lineedit_border=@border_bg
+lineedit_fg=@edit_fg
+lineedit_bg=@edit_bg
+lineedit_focus_bg=@edit_focus_bg
+lineedit_focus_border=@edit_focus_border
+lineedit_selection_fg=@edit_selection_fg
+lineedit_selection_bg=@edit_selection_bg
+
+; TabWidget.
+tabwidget_pane_border=@selected_bg
+
+; TabBar.
+tabbar_fg=@base_fg
+tabbar_bg=@base_bg
+tabbar_border=@border_bg
+
+tabbar_selected_fg=@edit_fg
+tabbar_selected_bg=@edit_bg
+tabbar_selected_border=@border_bg
+
+tabbar_hover_fg=@hover_fg
+tabbar_hover_bg=@hover_bg
+
+tabbar_icon_fg=@icon_fg
+tabbar_icon_special_fg=@danger_bg
+
+; SelectorItem.
+selectoritem_border=@master_bg
+selectoritem_fg=@base_fg
+selectoritem_bg=@base_bg
+
+; InsertSelector.
+insertselector_bg=@base_bg
+
+; TreeView.
+treeview_fg=@content_fg
+treeview_bg=@content_bg
+treeview_item_border_bg=@border_bg
+treeview_item_hover_fg=@hover_fg
+treeview_item_hover_bg=@hover_bg
+treeview_item_selected_fg=@selected_fg
+treeview_item_selected_bg=@selected_bg
+treeview_item_selected_avtive_fg=@active_fg
+treeview_item_selected_avtive_bg=@active_bg
+treeview_item_selected_inactive_fg=@inactive_fg
+treeview_item_selected_inactive_bg=@inactive_bg
+treeview_item_icon_fg=@item_icon_fg
+
+; ListView.
+listview_fg=@content_fg
+listview_bg=@content_bg
+listview_item_hover_fg=@hover_fg
+listview_item_hover_bg=@hover_bg
+listview_item_selected_fg=@selected_fg
+listview_item_selected_bg=@selected_bg
+listview_item_selected_avtive_fg=@active_fg
+listview_item_selected_avtive_bg=@active_bg
+listview_item_selected_inactive_fg=@inactive_fg
+listview_item_selected_inactive_bg=@inactive_bg
+
+; Splitter.
+splitter_handle_bg=@border_bg
+
+; StatusBar.
+statusbar_fg=@main_fg
+statusbar_bg=@main_bg
+statusbar_border=@border_bg
+
+; ScrollBar.
+scrollbar_bg=@base_bg
+scrollbar_page_bg=transparent
+scrollbar_handle_bg=#353B45
+scrollbar_handle_hover_bg=#424A56
+scrollbar_handle_pressed_bg=@hover_bg
+
+; VEditWindow.
+editwindow_corner_icon_fg=@master_bg
+editwindow_corner_icon_inactive_fg=@icon_fg
+
+; CheckBox.
+checkbox_indicator_hover_bg=@hover_bg
+checkbox_indicator_pressed_bg=@pressed_bg
+
+; RadioButton.
+radiobutton_indicator_hover_bg=@hover_bg
+radiobutton_indicator_pressed_bg=@pressed_bg
+
+; SpinBox.
+spinbox_fg=@edit_fg
+spinbox_bg=@edit_bg
+spinbox_border=@border_bg
+spinbox_selection_fg=@edit_selection_fg
+spinbox_selection_bg=@edit_selection_bg
+spinbox_focus_border=@edit_focus_border
+spinbox_focus_bg=@edit_focus_bg
+spinbox_button_hover_bg=@hover_bg
+spinbox_button_pressed_bg=@pressed_bg
+
+; HeaderView.
+headerview_bg=#30333D
+headerview_fg=@base_fg
+headerview_border=@border_bg
+headerview_checked_fg=@selected_fg
+headerview_checked_bg=@selected_bg
+
+; ProgressBar.
+progressbar_bg=@edit_bg
+progressbar_border_bg=@border_bg
+progressbar_chunk_bg=@master_drak_bg

+ 1284 - 0
src/resources/themes/v_moonlight/v_moonlight.qss

@@ -0,0 +1,1284 @@
+QToolTip
+{
+    border: none;
+    background: @tooltip_bg;
+    color: @tooltip_fg;
+}
+
+/* QWidget */
+QWidget
+{
+    color: @widget_fg;
+    font-family: "Hiragino Sans GB", "冬青黑体", "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[NotebookPanel="true"] {
+    padding-left: 3px;
+}
+
+/* End QWidget */
+
+/* QMainWindow */
+QMainWindow {
+    color: @base_fg;
+    background: @base_bg;
+}
+
+QMainWindow::separator {
+    background: @dock_separator_bg;
+    width: 2px;
+    height: 2px;
+}
+
+QMainWindow::separator:hover {
+    background: @dock_separator_hover_bg;
+}
+/* End QMainWindow */
+
+QMenuBar {
+    border: none;
+    background: @menubar_bg;
+    color: @menubar_fg;
+}
+
+QMenuBar::item:selected {
+    background: @menubar_item_selected_bg;
+}
+
+/* QMenu */
+QMenu {
+    background: @menu_bg;
+    color: @menu_fg;
+    margin: 2px;
+}
+
+QMenu::icon {
+    margin: 5px;
+}
+
+QMenu::item {
+    padding: 5px 30px 5px 30px;
+    border: 1px solid transparent;
+}
+
+QMenu::item:disabled {
+    color: @menu_item_disabled_fg;
+}
+
+QMenu::item:selected {
+    color: @menu_item_selected_fg;
+    background: @menu_item_selected_bg;
+}
+
+QMenu::icon:checked { /* appearance of a 'checked' icon */
+    border: 2px solid @menu_fg;
+}
+
+QMenu::separator {
+    height: 2px;
+    background: @menu_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);
+}
+/* End QMenu */
+
+QToolBar {
+    border: none;
+    background: @toolbar_bg;
+}
+
+QToolBar::separator {
+    width: 1px;
+    height: 1px;
+    border: none;
+    background: @toolbar_separator_bg;
+}
+
+/* QToolButton */
+QToolButton {
+    border: none;
+    background: transparent;
+    margin: 1px 3px 1px 3px;
+    padding: 0px;
+}
+
+QToolButton[popupMode="1"] { /* only for MenuButtonPopup */
+    padding-right: 16px; /* make way for the popup button */
+}
+
+QToolButton[popupMode="2"] { /* only for InstantPopup */
+    padding-right: 10px; /* make way for the popup button */
+}
+
+QToolButton:hover {
+    border:none;
+    background: @toolbutton_hover_bg;
+}
+
+QToolButton:pressed {
+    background: @toolbutton_pressed_bg;
+}
+
+QToolButton:checked {
+    background: @toolbutton_checked_bg;
+}
+
+QToolButton:checked:hover {
+    background: @toolbutton_hover_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;
+}
+/* End QToolButton*/
+
+/* DockWidget */
+QDockWidget {
+    color: @dockwidget_title_fg;
+    titlebar-close-icon: url(close.svg);
+    titlebar-normal-icon: url(float.svg);
+}
+
+QDockWidget::Title {
+    background: @dockwidget_title_bg;
+    text-align: center left;
+}
+
+QDockWidget::close-button, QDockWidget::float-button {
+    border: none;
+}
+
+QDockWidget::close-button:hover, QDockWidget::float-button:hover {
+    background: @dockwidget_button_hover_bg;
+}
+/* End DockWidget */
+
+/* QPushButton */
+QPushButton {
+    color: @pushbutton_fg;
+    background: @pushbutton_bg;
+    border: 1px solid @pushbutton_border;
+    padding: 3px;
+    min-width: 80px;
+}
+
+QPushButton:focus {
+    background-color: @pushbutton_focus_bg;
+}
+
+QPushButton:pressed {
+    background-color: @pushbutton_pressed_bg;
+}
+
+QPushButton:checked {
+    background-color: @pushbutton_checked_bg;
+}
+
+QPushButton:checked:hover {
+    background-color: @pushbutton_hover_bg;
+}
+
+QPushButton:hover {
+    background-color: @pushbutton_hover_bg;
+}
+
+QPushButton:flat {
+    border: none;
+}
+
+QPushButton:default {
+    border-color: @pushbutton_default_border;
+}
+
+QPushButton:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton::menu-indicator {
+    image: url(arrow_dropdown.svg);
+    width: 16px;
+    height: 16px;
+}
+
+QPushButton[SpecialBtn="true"] {
+    color: @pushbutton_specialbtn_fg;
+    background: @pushbutton_specialbtn_bg;
+}
+
+QPushButton[SpecialBtn="true"]:focus {
+    background-color: @pushbutton_specialbtn_focus_bg;
+}
+
+QPushButton[SpecialBtn="true"]:pressed {
+    background-color: @pushbutton_specialbtn_pressed_bg;
+}
+
+QPushButton[SpecialBtn="true"]:checked {
+    background-color: @pushbutton_specialbtn_checked_bg;
+}
+
+QPushButton[SpecialBtn="true"]:checked:hover {
+    background-color: @pushbutton_specialbtn_hover_bg;
+}
+
+QPushButton[SpecialBtn="true"]:hover {
+    background-color: @pushbutton_specialbtn_hover_bg;
+}
+
+QPushButton[SpecialBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[CornerBtn="true"] {
+    padding: 4px -2px 4px -2px;
+    margin: 0px;
+    border: none;
+    background-color: transparent;
+    min-width: -1;
+}
+
+QPushButton[CornerBtn="true"]::menu-indicator {
+    image: none;
+}
+
+QPushButton[CornerBtn="true"]:hover {
+    background-color: @pushbutton_cornerbtn_hover_bg;
+}
+
+QPushButton[CornerBtn="true"]:focus {
+    background-color: @pushbutton_cornerbtn_focus_bg;
+}
+
+QPushButton[CornerBtn="true"]:pressed {
+    background-color: @pushbutton_cornerbtn_pressed_bg;
+}
+
+QPushButton[CornerBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[StatusBtn="true"] {
+    font: bold;
+    padding: 0px 2px 0px 2px;
+    margin: 0px;
+    border: none;
+    background-color: transparent;
+    min-width: -1;
+}
+
+QPushButton[StatusBtn="true"]:hover {
+    background-color: @pushbutton_statusbtn_hover_bg;
+}
+
+QPushButton[StatusBtn="true"]:focus {
+    background-color: @pushbutton_statusbtn_focus_bg;;
+}
+
+QPushButton[StatusBtn="true"]:pressed {
+    background-color: @pushbutton_statusbtn_pressed_bg;
+}
+
+QPushButton[StatusBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[FlatBtn="true"] {
+    padding: 4px;
+    margin: 0px;
+    border: none;
+    background-color: transparent;
+    min-width: -1;
+}
+
+QPushButton[FlatBtn="true"]:hover {
+    background-color: @pushbutton_flatbtn_hover_bg;
+}
+
+QPushButton[FlatBtn="true"]:focus {
+    background-color: @pushbutton_flatbtn_focus_bg;
+}
+
+QPushButton[FlatBtn="true"]:pressed {
+    background-color: @pushbutton_flatbtn_pressed_bg;
+}
+
+QPushButton[FlatBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[SelectionBtn="true"] {
+    padding: 4px 10px 4px 10px;
+    border: none;
+    background-color: transparent;
+    font-size: 15pt;
+    text-align: left;
+    min-width: -1;
+}
+
+QPushButton[SelectionBtn="true"]:hover {
+    background-color: @pushbutton_selectionbtn_hover_bg;
+}
+
+QPushButton[SelectionBtn="true"]:focus {
+    background-color: @pushbutton_selectionbtn_focus_bg;
+}
+
+QPushButton[SelectionBtn="true"]:pressed {
+    background-color: @pushbutton_selectionbtn_pressed_bg;
+}
+
+QPushButton[SelectionBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[TitleBtn="true"] {
+    padding: 4px;
+    margin: 0px;
+    border: none;
+    background-color: @pushbutton_titlebtn_bg;
+    min-width: -1;
+}
+
+QPushButton[TitleBtn="true"]:hover {
+    background-color: @pushbutton_titlebtn_hover_bg;
+}
+
+QPushButton[TitleBtn="true"]:focus {
+    background-color: @pushbutton_titlebtn_focus_bg;
+}
+
+QPushButton[TitleBtn="true"]:pressed {
+    background-color: @pushbutton_titlebtn_pressed_bg;
+}
+
+QPushButton[TitleBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[DangerBtn="true"] {
+    color: @pushbutton_dangerbtn_fg;
+    border: none;
+    background-color: @pushbutton_dangerbtn_bg;
+    min-width: -1;
+}
+
+QPushButton[DangerBtn="true"]:hover {
+    background-color: @pushbutton_dangerbtn_hover_bg;
+}
+
+QPushButton[DangerBtn="true"]:focus {
+    background-color: @pushbutton_dangerbtn_focus_bg;
+}
+
+QPushButton[DangerBtn="true"]:pressed {
+    background-color: @pushbutton_dangerbtn_pressed_bg;
+}
+
+QPushButton[DangerBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+QPushButton[ToolBoxActiveBtn="true"] {
+    padding: 4px 10px 4px 4px;
+    margin: 0px;
+    border: none;
+    color: @pushbutton_toolboxbtn_active_fg;
+    background-color: @pushbutton_toolboxbtn_active_bg;
+    min-width: -1;
+}
+
+QPushButton[ToolBoxActiveBtn="true"]:focus {
+    background-color: @pushbutton_toolboxbtn_active_focus_bg;
+}
+
+QPushButton[ToolBoxActiveBtn="true"]:hover {
+    background-color: @pushbutton_toolboxbtn_active_hover_bg;
+}
+
+QPushButton[ToolBoxActiveBtn="true"]:pressed {
+    background-color: @pushbutton_toolboxbtn_active_pressed_bg;
+}
+
+QPushButton[ToolBoxActiveBtn="true"]:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+
+VButtonMenuItem {
+    padding: 5px;
+    padding-right: 30px;
+    border: 1px solid transparent;
+    background-color: transparent;
+    min-width: -1;
+    text-align: left;
+}
+
+VButtonMenuItem[Heading1="true"] {
+    font-size: 22pt;
+}
+
+VButtonMenuItem[Heading2="true"] {
+    font-size: 20pt;
+}
+
+VButtonMenuItem[Heading3="true"] {
+    font-size: 18pt;
+}
+
+VButtonMenuItem[Heading4="true"] {
+    font-size: 16pt;
+}
+
+VButtonMenuItem[Heading5="true"] {
+    font-size: 14pt;
+}
+
+VButtonMenuItem[Heading6="true"] {
+    font-size: 14pt;
+}
+
+VButtonMenuItem:hover {
+    background-color: @menubar_item_selected_bg;
+}
+
+VButtonMenuItem:focus {
+    background-color: @menubar_item_selected_bg;
+}
+
+VButtonMenuItem:disabled {
+    color: @pushbutton_disabled_fg;
+    background-color: @pushbutton_disabled_bg;
+}
+/* End QPushButton*/
+
+/* QComboBox */
+QComboBox {
+    padding: 3px;
+    color: @combobox_fg;
+    background: @combobox_bg;
+    border: 1px solid @combobox_border;
+}
+
+QComboBox:focus, QComboBox:on {
+    background-color: @combobox_focus_bg;
+    border: 2px solid @combobox_focus_border;
+}
+
+QComboBox::drop-down {
+    subcontrol-origin: padding;
+    subcontrol-position: top right;
+    width: 20px;
+    border: none;
+    background: transparent;
+}
+
+QComboBox::down-arrow {
+    image: url(arrow_dropdown.svg);
+    width: 20px;
+    height: 20px;
+}
+
+QComboBox QAbstractItemView {
+    padding: 2px;
+    border: 1px solid @combobox_view_border;
+    background: @combobox_bg;
+    selection-color: @combobox_view_selected_fg;
+    selection-background-color: @combobox_view_selected_bg;
+}
+
+QComboBox QAbstractItemView::item {
+    background: transparent;
+    padding: 3px;
+}
+
+QComboBox QAbstractItemView::item:hover {
+    color: @combobox_view_item_hover_fg;
+    background: @combobox_view_item_hover_bg;
+}
+
+QComboBox#NotebookSelector {
+    border: none;
+    border-bottom: 2px solid @combobox_notebookselector_border;
+    font-size: 13pt;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    icon-size: 30px;
+    font-weight: bold;
+    color: @combobox_notebookselector_fg;
+    background: @combobox_notebookselector_bg;
+}
+
+QComboBox#NotebookSelector::down-arrow {
+    image: url(arrow_dropdown.svg);
+    width: 20px;
+    height: 20px;
+}
+
+QComboBox#NotebookSelector:hover {
+    color: @combobox_notebookselector_hover_fg;
+    background: @combobox_notebookselector_hover_bg;
+}
+
+QComboBox#NotebookSelector:focus, QComboBox#NotebookSelector:on {
+    color: @combobox_notebookselector_focus_fg;
+    background: @combobox_notebookselector_focus_bg;
+}
+
+QComboBox#NotebookSelector QListWidget {
+    border: 1px solid @combobox_view_border;
+    background-color: @combobox_bg;
+    font-size: 13pt;
+    font-weight: normal;
+    icon-size: 30px;
+}
+
+QComboBox#NotebookSelector QListWidget::item {
+    padding-top: 10px;
+    padding-bottom: 10px;
+}
+
+QComboBox#NotebookSelector QListWidget::item:hover {
+    color: @combobox_view_item_hover_fg;
+    background-color: @combobox_view_item_hover_bg;
+}
+/* End QComboBox */
+
+/* QLabel */
+QLabel {
+    border: none;
+    color: @label_fg;
+    background: transparent;
+}
+
+QLabel[TitleLabel="true"] {
+    padding-top: 5px;
+    padding-bottom: 5px;
+    color: @label_titlelabel_fg;
+    background-color: @label_titlelabel_bg;
+}
+
+QLabel[ColorRedLabel="true"] {
+    padding-left: 5px;
+    padding-right: 5px;
+    font: bold;
+    color: white;
+    border-radius: 2px;
+    background-color: #D32F2F;
+}
+
+QLabel[ColorGreenLabel="true"] {
+    padding-left: 5px;
+    padding-right: 5px;
+    font: bold;
+    color: white;
+    border-radius: 2px;
+    background-color: #388E3C;
+}
+
+QLabel[ColorGreyLabel="true"] {
+    padding-left: 5px;
+    padding-right: 5px;
+    font: bold;
+    color: white;
+    border-radius: 2px;
+    background-color: #616161;
+}
+
+QLabel[ColorTealLabel="true"] {
+    padding-left: 5px;
+    padding-right: 5px;
+    font: bold;
+    color: white;
+    border-radius: 2px;
+    background-color: #00796B;
+}
+
+QLabel[MenuSeparator="true"] {
+    padding-top: 5px;
+    padding-bottom: 5px;
+    margin-top: 3px;
+    font: italic;
+    border-top: 1px solid @menu_separator_bg
+}
+
+VVimIndicator QLabel[VimIndicatorKeyLabel="true"] {
+    font: bold;
+    color: @vim_indicator_key_label_fg;
+    background: transparent;
+}
+
+VVimIndicator QLabel[VimIndicatorModeLabel="true"] {
+    padding: 0px 2px 0px 2px;
+    font: bold;
+    color: @vim_indicator_mode_label_fg;
+    /* background color will be controlled by the code. */
+}
+
+VTabIndicator QLabel[TabIndicatorLabel="true"] {
+    color: @tab_indicator_label_fg;
+    background: transparent;
+}
+/* End QLabel */
+
+/* QLineEdit */
+QLineEdit {
+    border: 1px solid @lineedit_border;
+    padding: 3px;
+    color: @lineedit_fg;
+    background: @lineedit_bg;
+    selection-color: @lineedit_selection_fg;
+    selection-background-color: @lineedit_selection_bg;
+}
+
+QLineEdit:focus {
+    border: 2px solid @lineedit_focus_border;
+    background: @lineedit_focus_bg;
+}
+
+QLineEdit[VimCommandLine="true"] {
+    padding: 0px;
+    margin: 0px;
+    border: none;
+    color: @lineedit_fg;
+    background: @lineedit_bg;
+}
+/* End QLineEdit */
+
+/* QPlainTextEdit QTextEdit */
+QPlainTextEdit[LineEdit="true"], QTextEdit[LineEdit="true"] {
+    border: 1px solid @lineedit_border;
+    padding: 3px;
+    color: @lineedit_fg;
+    background: @lineedit_bg;
+    selection-color: @lineedit_selection_fg;
+    selection-background-color: @lineedit_selection_bg;
+}
+
+QPlainTextEdit[LineEdit="true"]:focus, QTextEdit[LineEdit="true"]:focus {
+    border: 2px solid @lineedit_focus_border;
+    background: @lineedit_focus_bg;
+}
+/* End QPlainTextEdit QTextEdit */
+
+/* QTabWidget */
+QTabWidget {
+    border: none;
+}
+
+QTabWidget::pane {
+    border: none;
+}
+/* End QTabWidget */
+
+/* QTabBar */
+QTabBar::tab {
+    color: @tabbar_fg;
+    background: @tabbar_bg;
+    border: none;
+    border-top: 2px solid transparent;
+    border-right: 1px solid @tabbar_border;
+    padding: 2px;
+}
+
+QTabBar::tab:selected {
+    color: @tabbar_selected_fg;
+    background: @tabbar_selected_bg;
+    border-top: 2px solid @master_bg;
+}
+
+QTabBar::tab:hover {
+    color: @tabbar_hover_fg;
+    background: @tabbar_hover_bg;
+}
+
+QTabBar::close-button {
+    image: url(close_grey.svg);
+}
+
+QTabBar::close-button:hover {
+    image: url(close.svg);
+}
+
+QTabBar::close-button:focus {
+    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);
+}
+/* End QTabBar */
+
+VSelectorItemWidget QLabel[SelectorItemShortcutLabel="true"] {
+    font: bold;
+    border: 2px solid @selectoritem_border;
+    padding: 3px;
+    border-radius: 5px;
+    background-color: @selectoritem_bg;
+    color: @selectoritem_fg;
+}
+
+VInsertSelector {
+    border: none;
+    background: @insertselector_bg;
+}
+
+/* QTreeView */
+QTreeView {
+    color: @treeview_fg;
+    background: @treeview_bg;
+    show-decoration-selected: 0;
+    border: none;
+    selection-background-color: transparent;
+    outline: none;
+}
+
+QTreeView::item {
+    padding-top: 5px;
+    padding-bottom: 5px;
+}
+
+QTreeView[ItemBorder="true"]::item {
+    padding-top: 5px;
+    padding-bottom: 5px;
+    border-bottom: 1px solid @treeview_item_border_bg;
+}
+
+QTreeView::item:hover {
+    color: @treeview_item_hover_fg;
+    background: @treeview_item_hover_bg;
+}
+
+QTreeView::item:selected {
+    color: @treeview_item_selected_fg;
+    background: @treeview_item_selected_bg;
+}
+
+QTreeView::item:selected:active {
+    color: @treeview_item_selected_active_fg;
+    background: @treeview_item_selected_active_bg;
+}
+
+QTreeView::item:selected:!active {
+    color: @treeview_item_selected_inactive_fg;
+    background: @treeview_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);
+}
+
+QTreeView[PlainTree="true"]::branch:has-siblings:!adjoins-item {
+    border-image: none;
+}
+
+QTreeView[PlainTree="true"]::branch:has-siblings:adjoins-item {
+    border-image: none;
+}
+
+QTreeView[PlainTree="true"]::branch:!has-children:!has-siblings:adjoins-item {
+    border-image: none;
+}
+
+QTreeView[PlainTree="true"]::branch:has-children:!has-siblings:closed,
+QTreeView[PlainTree="true"]::branch:closed:has-children:has-siblings {
+    border-image: none;
+    image: none;
+}
+
+QTreeView[PlainTree="true"]::branch:open:has-children:!has-siblings,
+QTreeView[PlainTree="true"]::branch:open:has-children:has-siblings  {
+    border-image: none;
+    image: none;
+}
+/* End QTreeView */
+
+/* QListView */
+QListView {
+    color: @listview_fg;
+    background: @listview_bg;
+    show-decoration-selected: 0;
+    border: none;
+    selection-background-color: transparent;
+    outline: none;
+}
+
+QListView::item {
+    padding-top: 5px;
+    padding-bottom: 5px;
+}
+
+QListView::item:hover {
+    color: @listview_item_hover_fg;
+    background: @listview_item_hover_bg;
+}
+
+QListView::item:selected {
+    color: @listview_item_selected_fg;
+    background: @listview_item_selected_bg;
+}
+
+QListView::item:selected:active {
+    color: @listview_item_selected_active_fg;
+    background: @listview_item_selected_active_bg;
+}
+
+QListView::item:selected:!active {
+    color: @listview_item_selected_inactive_fg;
+    background: @listview_item_selected_inactive_bg;
+}
+/* End QListView */
+
+/* QSplitter */
+QSplitter {
+    border: none;
+}
+
+QSplitter::handle {
+    background-color: @splitter_handle_bg;
+}
+
+QSplitter::handle:vertical {
+    height: 2px;
+}
+
+QSplitter::handle:horizontal {
+    width: 2px;
+}
+
+QSplitter#MainSplitter {
+    border: none;
+}
+/* End QSplitter */
+
+/* QStatusBar */
+QStatusBar {
+    color: @statusbar_fg;
+    background: @statusbar_bg;
+    border-top: 1px solid @statusbar_border;
+}
+/* End QStatusBar */
+
+QWidget[MainEditor="true"] {
+    border: none;
+}
+
+QDialog {
+    color: @base_fg;
+    background: @base_bg;
+}
+
+/* QScrollBar */
+QScrollBar::add-page, QScrollBar::sub-page {
+    background: @scrollbar_page_bg;
+}
+
+QScrollBar:vertical {
+    background: @scrollbar_bg;
+    width: 16px;
+    margin: 16px 0px 16px 0px;
+    padding: 0px 2px 0px 2px;
+    border: none;
+}
+
+QScrollBar::handle:vertical {
+    background: @scrollbar_handle_bg;
+    min-height: 16px;
+}
+
+QScrollBar::handle:vertical:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::handle:vertical:pressed {
+    background: @scrollbar_handle_pressed_bg;
+}
+
+QScrollBar::add-line:vertical {
+    border: none;
+    background: @scrollbar_bg;
+    width: 16px;
+    height: 16px;
+    subcontrol-position: bottom;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::add-line:vertical:pressed {
+    background: @scrollbar_handle_pressed_bg;
+}
+
+QScrollBar::sub-line:vertical {
+    border: none;
+    background: @scrollbar_bg;
+    width: 16px;
+    height: 16px;
+    subcontrol-position: top;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::sub-line:vertical:pressed {
+    background: @scrollbar_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: @scrollbar_bg;
+    height: 16px;
+    margin: 0px 16px 0px 16px;
+    padding: 2px 0px 2px 0px;
+    border: none;
+}
+
+QScrollBar::handle:horizontal {
+    background: @scrollbar_handle_bg;
+    min-width: 16px;
+}
+
+QScrollBar::handle:horizontal:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::handle:horizontal:pressed {
+    background: @scrollbar_handle_pressed_bg;
+}
+
+QScrollBar::add-line:horizontal {
+    border: none;
+    background: @scrollbar_bg;
+    width: 16px;
+    height: 16px;
+    subcontrol-position: right;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::add-line:horizontal:pressed {
+    background: @scrollbar_handle_pressed_bg;
+}
+
+QScrollBar::sub-line:horizontal {
+    border: none;
+    background: @scrollbar_bg;
+    width: 16px;
+    height: 16px;
+    subcontrol-position: left;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal:hover {
+    background: @scrollbar_handle_hover_bg;
+}
+
+QScrollBar::sub-line:horizontal:pressed {
+    background: @scrollbar_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;
+}
+/* End QScrollBar */
+
+/* QCheckBox */
+QCheckBox {
+    spacing: 5px;
+}
+
+QCheckBox::indicator {
+    width: 20px;
+    height: 20px;
+}
+
+QCheckBox::indicator:unchecked {
+    image: url(checkbox_unchecked.svg);
+}
+
+QCheckBox::indicator:unchecked:hover {
+    background: @checkbox_indicator_hover_bg;
+}
+
+QCheckBox::indicator:unchecked:pressed {
+    background: @checkbox_indicator_pressed_bg;
+}
+
+QCheckBox::indicator:checked {
+    image: url(checkbox_checked.svg);
+}
+
+QCheckBox::indicator:checked:hover {
+    background: @checkbox_indicator_hover_bg;
+}
+
+QCheckBox::indicator:checked:pressed {
+    background: @checkbox_indicator_pressed_bg;
+}
+
+QCheckBox::indicator:indeterminate:hover {
+    background: @checkbox_indicator_hover_bg;
+}
+
+QCheckBox::indicator:indeterminate:pressed {
+    background: @checkbox_indicator_pressed_bg;
+}
+/* End QCheckBox */
+
+/* QRadioButton */
+QRadioButton {
+    spacing: 5px;
+}
+
+QRadioButton::indicator {
+    width: 20px;
+    height: 20px;
+}
+
+QRadioButton::indicator:unchecked {
+    image: url(radiobutton_unchecked.svg);
+}
+
+QRadioButton::indicator:unchecked:hover {
+    background: @radiobutton_indicator_hover_bg;
+}
+
+QRadioButton::indicator:unchecked:pressed {
+    background: @radiobutton_indicator_pressed_bg;
+}
+
+QRadioButton::indicator:checked {
+    image: url(radiobutton_checked.svg);
+}
+
+QRadioButton::indicator:checked:hover {
+    background: @radiobutton_indicator_hover_bg;
+}
+
+QRadioButton::indicator:checked:pressed {
+    background: @radiobutton_indicator_pressed_bg;
+}
+/* End QRadioButton */
+
+/* QSpinBox */
+QSpinBox, QDoubleSpinBox {
+    border: 1px solid @spinbox_border;
+    color: @spinbox_fg;
+    background: @spinbox_bg;
+    padding-right: 25px;
+    min-height: 25px;
+    selection-color: @spinbox_selection_fg;
+    selection-background-color: @spinbox_selection_bg;
+}
+
+QSpinBox:focus, QDoubleSpinBox::focus {
+    border: 2px solid @spinbox_focus_border;
+    background: @spinbox_focus_bg;
+}
+
+QSpinBox::up-button, QDoubleSpinBox::up-button {
+    subcontrol-origin: border;
+    subcontrol-position: top right; /* position at the top right corner */
+    width: 25px;
+    border: none;
+    background: transparent;
+}
+
+QSpinBox::up-button:hover, QDoubleSpinBox::up-button:hover {
+    background: @spinbox_button_hover_bg;
+}
+
+QSpinBox::up-button:pressed, QDoubleSpinBox::up-button:pressed {
+    background: @spinbox_button_pressed_bg;
+}
+
+QSpinBox::up-arrow, QDoubleSpinBox::up-arrow {
+    image: url(up.svg);
+    width: 12px;
+    height: 12px;
+}
+
+QSpinBox::up-arrow:disabled, QSpinBox::up-arrow:off, QDoubleSpinBox::up-arrow:disabled, QDoubleSpinBox::up-arrow:off  {
+    image: url(up_disabled.svg);
+}
+
+QSpinBox::down-button, QDoubleSpinBox::down-button {
+    subcontrol-origin: border;
+    subcontrol-position: bottom right; /* position at the top right corner */
+    width: 25px;
+    border: none;
+    background: transparent;
+}
+
+QSpinBox::down-button:hover, QDoubleSpinBox::down-button:hover {
+    background: @spinbox_button_hover_bg;
+}
+
+QSpinBox::down-button:pressed, QDoubleSpinBox::down-button:pressed {
+    background: @spinbox_button_pressed_bg;
+}
+
+QSpinBox::down-arrow, QDoubleSpinBox::down-arrow {
+    image: url(down.svg);
+    width: 12px;
+    height: 12px;
+}
+
+QSpinBox::down-arrow:disabled, QSpinBox::down-arrow:off, QDoubleSpinBox::down-arrow:disabled, QDoubleSpinBox::down-arrow:off {
+    image: url(down_disabled.svg);
+}
+/* End QSpinBox */
+
+/* QHeaderView */
+QHeaderView::section {
+    background: @headerview_bg;
+    color: @headerview_fg;
+    padding-left: 4px;
+    border: none;
+    border-left: 1px solid @headerview_border;
+    border-bottom: 1px solid @headerview_border;
+}
+
+QHeaderView::section:checked
+{
+    color: @headerview_checked_fg;
+    background: @headerview_checked_bg;
+}
+
+/* style the sort indicator */
+QHeaderView::down-arrow {
+    image: url(down.svg);
+}
+
+QHeaderView::up-arrow {
+    image: url(up.svg);
+}
+/* End QHeaderView */
+
+QWidget#FindReplaceTitleWidget {
+    background: @title_bg;
+}
+
+QWidget[ToolBoxTitle="true"] {
+    border-bottom: 2px solid @toolbox_title_border;
+}
+
+QAbstractScrollArea::corner {
+    background: @scrollbar_bg;
+    border: none;
+}
+
+/* QProgressBar */
+QProgressBar {
+    background: @progressbar_bg;
+    border: 1px solid @progressbar_border_bg;
+    text-align: center;
+}
+
+QProgressBar::chunk {
+    background-color: @progressbar_chunk_bg;
+    width: 20px;
+}
+/* End QProgressBar */

+ 96 - 0
src/resources/themes/v_moonlight/v_moonlight_codeblock.css

@@ -0,0 +1,96 @@
+/*
+
+Atom One Dark by Daniel Gamage
+Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
+
+base:    #2c313a
+mono-1:  #abb2bf
+mono-2:  #818896
+mono-3:  #5c6370
+hue-1:   #56b6c2
+hue-2:   #61aeee
+hue-3:   #c678dd
+hue-4:   #98c379
+hue-5:   #e06c75
+hue-5-2: #be5046
+hue-6:   #d19a66
+hue-6-2: #e6c07b
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #abb2bf;
+  background: #2c313a;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #5c6370;
+  font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+  color: #c678dd;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+  color: #e06c75;
+}
+
+.hljs-literal {
+  color: #56b6c2;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+  color: #98c379;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+  color: #e6c07b;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+  color: #d19a66;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+  color: #61aeee;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}

+ 1 - 1
src/resources/themes/v_pure/arrow_dropdown.svg

@@ -4,6 +4,6 @@
 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 	 width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
 <g>
-	<polygon points="128,192 256,320 384,192 	"/>
+	<polygon fill="#333333" points="128,192 256,320 384,192 	"/>
 </g>
 </svg>

+ 1 - 1
src/resources/themes/v_pure/close.svg

@@ -3,7 +3,7 @@
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<path d="M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4
+<path style="fill:#333333" d="M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4
 	L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1
 	c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1
 	c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z"/>

+ 2 - 2
src/resources/themes/v_pure/float.svg

@@ -4,9 +4,9 @@
 <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 	 width="512px" height="512px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
 <g>
-	<path d="M64,144v304h303.9V144H64z M351.9,432H80V160h271.9V432z"/>
+	<path style="fill:#333333" d="M64,144v304h303.9V144H64z M351.9,432H80V160h271.9V432z"/>
 	<g>
-		<polygon points="448,64 144,64 144,128 160,128 160,80 432,80 432,352 384,352 384,368 448,368 		"/>
+		<polygon style="fill:#333333" points="448,64 144,64 144,128 160,128 160,80 432,80 432,352 384,352 384,368 448,368 		"/>
 	</g>
 </g>
 </svg>

+ 8 - 17
src/resources/themes/v_pure/v_pure.css

@@ -77,10 +77,9 @@ p, ul, ol {
 }
 
 pre {
-    background-color: #f8f8f8;
-    border-radius: 3px;
-    border: 1px solid #cccccc;
-    overflow: auto;
+    display: block;
+    overflow-y: hidden;
+    overflow-x: auto;
 }
 
 code {
@@ -94,8 +93,6 @@ pre code {
     margin: 0;
     padding: 0;
     border: none;
-    background: transparent;
-    overflow: auto;
     color: #363636;
 }
 
@@ -106,29 +103,23 @@ aside {
 }
 
 blockquote {
+    color: #666;
     border-left:.5em solid #7a7a7a;
     padding: 0 2em;
     margin-left:0;
 }
 
-blockquote  cite {
-    font-size:14px;
-    line-height:20px;
-    color:#bfbfbf;
-}
-
-blockquote cite:before {
-    content: '\2014 \00A0';
-}
-
 blockquote p {
     color: #666;
 }
 
 hr {
+    display: block;
     text-align: left;
     margin: 1em 0;
-    color: #999;
+    border: none;
+    height: 2px;
+    background: #999;
 }
 
 table {

+ 3 - 1
src/resources/themes/v_pure/v_pure.palette

@@ -60,6 +60,7 @@ edit_selection_fg=@edit_fg
 edit_selection_bg=@master_light_bg
 
 icon_fg=#222222
+icon_disabled_fg=@disabled_fg
 
 danger_fg=#F5F5F5
 danger_bg=#C9302C
@@ -131,6 +132,7 @@ tooltip_fg=@master_fg
 
 ; Toolbar.
 toolbar_bg=@main_bg
+toolbar_separator_bg=@separator_bg
 toolbutton_hover_bg=@hover_bg
 toolbutton_pressed_bg=@pressed_bg
 toolbutton_checked_bg=@selected_bg
@@ -256,7 +258,7 @@ tabbar_icon_fg=@icon_fg
 tabbar_icon_special_fg=@danger_bg
 
 ; SelectorItem.
-selectoritem_border=@base_fg
+selectoritem_border=@master_bg
 selectoritem_fg=@base_fg
 selectoritem_bg=@base_bg
 

+ 9 - 1
src/resources/themes/v_pure/v_pure.qss

@@ -9,6 +9,7 @@ QToolTip
 QWidget
 {
     color: @widget_fg;
+    font-family: "Hiragino Sans GB", "冬青黑体", "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[NotebookPanel="true"] {
@@ -107,6 +108,13 @@ QToolBar {
     background: @toolbar_bg;
 }
 
+QToolBar::separator {
+    width: 1px;
+    height: 1px;
+    border: none;
+    background: @toolbar_separator_bg;
+}
+
 /* QToolButton */
 QToolButton {
     border: none;
@@ -408,7 +416,7 @@ QPushButton[DangerBtn="true"]:disabled {
 }
 
 QPushButton[ToolBoxActiveBtn="true"] {
-    padding: 4px;
+    padding: 4px 10px 4px 4px;
     margin: 0px;
     border: none;
     color: @pushbutton_toolboxbtn_active_fg;

+ 8 - 17
src/resources/themes/v_white/v_white.css

@@ -76,10 +76,9 @@ p, ul, ol {
 }
 
 pre {
-    background-color: #f8f8f8;
-    border-radius: 3px;
-    border: 1px solid #cccccc;
-    overflow: auto;
+    display: block;
+    overflow-y: hidden;
+    overflow-x: auto;
 }
 
 code {
@@ -93,8 +92,6 @@ pre code {
     margin: 0;
     padding: 0;
     border: none;
-    background: transparent;
-    overflow: auto;
     color: #363636;
 }
 
@@ -105,29 +102,23 @@ aside {
 }
 
 blockquote {
+    color: #666;
     border-left:.5em solid #7a7a7a;
     padding: 0 2em;
     margin-left:0;
 }
 
-blockquote  cite {
-    font-size:14px;
-    line-height:20px;
-    color:#bfbfbf;
-}
-
-blockquote cite:before {
-    content: '\2014 \00A0';
-}
-
 blockquote p {
     color: #666;
 }
 
 hr {
+    display: block;
     text-align: left;
     margin: 1em 0;
-    color: #999;
+    border: none;
+    height: 2px;
+    background: #999;
 }
 
 table {

+ 1 - 0
src/resources/themes/v_white/v_white.palette

@@ -49,6 +49,7 @@ selection_fg=#000000
 selection_bg=#64b5f6
 
 icon_fg=#222222
+icon_disabled_fg=@disabled_fg
 
 danger_fg=#F5F5F5
 danger_bg=#C9302C

+ 1 - 0
src/resources/themes/v_white/v_white.qss

@@ -9,6 +9,7 @@ QToolTip
 QWidget
 {
     color: @widget_fg;
+    font-family: "Hiragino Sans GB", "冬青黑体", "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[NotebookPanel="true"] {

+ 16 - 2
src/utils/viconutils.cpp

@@ -13,7 +13,7 @@ VIconUtils::VIconUtils()
 
 }
 
-QIcon VIconUtils::icon(const QString &p_file, const QString &p_fg)
+QIcon VIconUtils::icon(const QString &p_file, const QString &p_fg, bool p_addDisabled)
 {
     QFileInfo fi(p_file);
     bool isSvg = fi.suffix().toLower() == "svg";
@@ -34,5 +34,19 @@ QIcon VIconUtils::icon(const QString &p_file, const QString &p_fg)
     QPixmap pixmap;
     pixmap.loadFromData(data, "svg");
 
-    return QIcon(pixmap);
+    // Disabled.
+    QPixmap disabledPixmap;
+    if (p_addDisabled) {
+        content.replace(reg, QString("\\1\\2\\3%1").arg(g_palette->color("icon_disabled_fg")));
+        data = content.toLocal8Bit();
+        disabledPixmap.loadFromData(data, "svg");
+    }
+
+    QIcon icon;
+    icon.addPixmap(pixmap, QIcon::Normal);
+    if (p_addDisabled) {
+        icon.addPixmap(disabledPixmap, QIcon::Disabled);
+    }
+
+    return icon;
 }

+ 3 - 1
src/utils/viconutils.h

@@ -13,7 +13,9 @@ class VIconUtils
 {
 public:
     // Get an icon from @p_file file. May change the foreground of the icon.
-    static QIcon icon(const QString &p_file, const QString &p_fg = QString());
+    static QIcon icon(const QString &p_file,
+                      const QString &p_fg = QString(),
+                      bool p_addDisabled = true);
 
     static QIcon toolButtonIcon(const QString &p_file)
     {

+ 2 - 0
src/vconfigmanager.cpp

@@ -1170,6 +1170,8 @@ void VConfigManager::initThemes()
     m_themes.insert(VPalette::themeName(file), file);
     file = ":/resources/themes/v_pure/v_pure.palette";
     m_themes.insert(VPalette::themeName(file), file);
+    file = ":/resources/themes/v_moonlight/v_moonlight.palette";
+    m_themes.insert(VPalette::themeName(file), file);
 
     /* NOT ready yet. Wait for author's tuning.
     file = ":/resources/themes/v_material/v_material.palette";

+ 3 - 0
src/vmdtab.cpp

@@ -379,6 +379,9 @@ void VMdTab::setupMarkdownViewer()
     m_webViewer->setPage(page);
     m_webViewer->setZoomFactor(g_config->getWebZoomFactor());
 
+    // Avoid white flash before loading content.
+    page->setBackgroundColor(Qt::transparent);
+
     m_document = new VDocument(m_file, m_webViewer);
 
     QWebChannel *channel = new QWebChannel(m_webViewer);

+ 2 - 2
src/vnote.cpp

@@ -122,8 +122,8 @@ void VNote::updateTemplate()
     }
 
     // Shoudl not display scrollbar in PDF.
-    cssStyle += "pre code { white-space: pre-wrap !important; "
-                           "word-break: break-all !important; }\n";
+    cssStyle += "pre { white-space: pre-wrap !important; "
+                      "word-break: break-all !important; }\n";
     if (!g_config->getEnableImageConstraint()) {
         // Constain the image width by force in PDF, otherwise, the PDF will
         // be cut off.

+ 25 - 0
src/vnote.qrc

@@ -193,5 +193,30 @@
         <file>resources/themes/v_material/v_material.palette</file>
         <file>resources/themes/v_material/v_material.qss</file>
         <file>resources/themes/v_material/v_material_codeblock.css</file>
+        <file>resources/themes/v_moonlight/arrow_dropdown.svg</file>
+        <file>resources/themes/v_moonlight/branch_closed.svg</file>
+        <file>resources/themes/v_moonlight/branch_open.svg</file>
+        <file>resources/themes/v_moonlight/checkbox_checked.svg</file>
+        <file>resources/themes/v_moonlight/checkbox_unchecked.svg</file>
+        <file>resources/themes/v_moonlight/close.svg</file>
+        <file>resources/themes/v_moonlight/close_grey.svg</file>
+        <file>resources/themes/v_moonlight/down.svg</file>
+        <file>resources/themes/v_moonlight/down_disabled.svg</file>
+        <file>resources/themes/v_moonlight/float.svg</file>
+        <file>resources/themes/v_moonlight/left.svg</file>
+        <file>resources/themes/v_moonlight/left_disabled.svg</file>
+        <file>resources/themes/v_moonlight/menu_checkbox.svg</file>
+        <file>resources/themes/v_moonlight/menu_radiobutton.svg</file>
+        <file>resources/themes/v_moonlight/radiobutton_checked.svg</file>
+        <file>resources/themes/v_moonlight/radiobutton_unchecked.svg</file>
+        <file>resources/themes/v_moonlight/right.svg</file>
+        <file>resources/themes/v_moonlight/right_disabled.svg</file>
+        <file>resources/themes/v_moonlight/up.svg</file>
+        <file>resources/themes/v_moonlight/up_disabled.svg</file>
+        <file>resources/themes/v_moonlight/v_moonlight.css</file>
+        <file>resources/themes/v_moonlight/v_moonlight.mdhl</file>
+        <file>resources/themes/v_moonlight/v_moonlight.palette</file>
+        <file>resources/themes/v_moonlight/v_moonlight.qss</file>
+        <file>resources/themes/v_moonlight/v_moonlight_codeblock.css</file>
     </qresource>
 </RCC>