diff --git a/.gitignore b/.gitignore
index 6265b37da..c630ebfa2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,4 +24,5 @@
*.autosave
*.user*
localization/*qm
-*.TMP
\ No newline at end of file
+*.TMP
+resources/skins/*/*.map
\ No newline at end of file
diff --git a/resources/rssguard.qrc b/resources/rssguard.qrc
index cef7b8859..5f4e6c42f 100644
--- a/resources/rssguard.qrc
+++ b/resources/rssguard.qrc
@@ -81,13 +81,20 @@
skins/vergilius/metadata.xml
skins/vergilius/qt_style.qss
- skins/nudus/html_adblocked.html
- skins/nudus/html_enclosure_every.html
- skins/nudus/html_enclosure_image.html
- skins/nudus/html_single_message.html
- skins/nudus/html_wrapper.html
- skins/nudus/metadata.xml
- skins/nudus/qt_style.qss
+ skins/nudus-base/html_adblocked.html
+ skins/nudus-base/html_enclosure_every.html
+ skins/nudus-base/html_enclosure_image.html
+ skins/nudus-base/html_single_message.html
+ skins/nudus-base/html_wrapper.html
+
+ skins/nudus-dark/html_wrapper.html
+ skins/nudus-dark/html_style.css
+ skins/nudus-dark/metadata.xml
+ skins/nudus-dark/qt_style.qss
+
+ skins/nudus-light/html_style.css
+ skins/nudus-light/metadata.xml
+ skins/nudus-light/qt_style.qss
initial_feeds/feeds-en.opml
diff --git a/resources/skins/nudus/html_adblocked.html b/resources/skins/nudus-base/html_adblocked.html
similarity index 100%
rename from resources/skins/nudus/html_adblocked.html
rename to resources/skins/nudus-base/html_adblocked.html
diff --git a/resources/skins/nudus-base/html_enclosure_every.html b/resources/skins/nudus-base/html_enclosure_every.html
new file mode 100644
index 000000000..72c33ecae
--- /dev/null
+++ b/resources/skins/nudus-base/html_enclosure_every.html
@@ -0,0 +1 @@
+ / %2%3
\ No newline at end of file
diff --git a/resources/skins/nudus/html_enclosure_image.html b/resources/skins/nudus-base/html_enclosure_image.html
similarity index 100%
rename from resources/skins/nudus/html_enclosure_image.html
rename to resources/skins/nudus-base/html_enclosure_image.html
diff --git a/resources/skins/nudus-base/html_single_message.html b/resources/skins/nudus-base/html_single_message.html
new file mode 100644
index 000000000..33e813da3
--- /dev/null
+++ b/resources/skins/nudus-base/html_single_message.html
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/resources/skins/nudus-base/html_style_base.scss b/resources/skins/nudus-base/html_style_base.scss
new file mode 100644
index 000000000..ec97b3aa8
--- /dev/null
+++ b/resources/skins/nudus-base/html_style_base.scss
@@ -0,0 +1,432 @@
+// ___________________________
+// < I'm an expert in my field. >
+// ---------------------------
+// \ ^__^
+// \ (oo)\_______
+// (__)\ )\/\
+// ||----w |
+// || ||
+
+//
+// Variables
+//
+
+$base-unit: 10px !default;
+
+//
+// Styling
+//
+
+// Let the font be customised via RSS Guard settings
+// Note: Font size there related **only** to that font alone, it is
+// not absolute, and nothing else can be done from my side
+// E.g. "Roboto 10" <-- something like this is send from RSS Guard side
+* {
+ font-family: inherit;
+}
+
+//
+// Reset some basic elements
+//
+
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+ margin: 0;
+ padding: 0;
+}
+
+//
+// Add some basic styling
+//
+
+body {
+ background-color: $cbg00;
+
+ box-sizing: border-box;
+ color: $cfg00;
+ //cursor: default;
+ -webkit-text-size-adjust: 100%;
+ -webkit-font-feature-settings: "kern" 1;
+ font-feature-settings: "kern" 1;
+ font-kerning: normal;
+ min-height: 100vh;
+}
+
+::selection {
+ background-color: $clink;
+ text-shadow: none;
+}
+
+h1, h2, h3, h4, h5, h6,
+p, blockquote, pre,
+ul, ol, dl, figure,
+details {
+ margin-bottom: $base-unit;
+}
+
+hr {
+ background-color: $cbor2;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: $base-unit 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 600 !important;
+}
+
+h1 { font-size: 1.25rem !important; }
+h2 { font-size: 1.20rem !important; }
+h3 { font-size: 1.15rem !important; }
+h4 { font-size: 1.1rem !important; }
+h5 { font-size: 1rem !important; }
+h6 { font-size: .95rem !important; }
+
+b {
+ font-weight: bold !important;
+}
+
+i {
+ font-style: italic !important;
+}
+
+strong {
+ font-weight: 800 !important;
+}
+
+em {
+ font-style: oblique !important;
+}
+
+mark {
+ background-color: $cmark;
+}
+
+sub,
+sup {
+ font-size: .8rem !important;
+}
+
+small {
+ font-size: .9rem !important;
+}
+
+abbr {
+ cursor: help;
+ font-style: italic !important;
+ font-weight: 100 !important;
+}
+
+q {
+ font-style: italic !important;
+
+ &::before {
+ content: '“';
+ }
+
+ &::after {
+ content: '”';
+ }
+}
+
+time {
+ font-weight: 450 !important;
+}
+
+var {
+ font-style: oblique !important;
+ font-weight: 500 !important;
+}
+
+a {
+ color: $clink;
+
+ &:hover {
+ text-decoration: none;
+ }
+
+ &:focus {
+ box-shadow: none;
+ outline: none;
+ }
+}
+
+cite {
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+figure > img {
+ display: block;
+}
+
+figcaption {
+ font-size: .8rem !important;
+}
+
+blockquote {
+ border-left: .3em solid $cbor2;
+ margin-left: 0;
+ padding: 0 $base-unit;
+
+ &,
+ p {
+ color: $cfg11;
+ }
+}
+
+pre,
+code {
+ border: 1px solid $cbor3;
+ border-radius: $radius-unit;
+ color: $cfg10;
+ // cursor: text;
+}
+
+code {
+ background-color: $ccode;
+ padding: 0 .25em;
+ word-break: break-word;
+}
+
+pre {
+ background-color: $ccodeblock;
+ overflow-x: auto;
+ padding: 7px 13px;
+ tab-size: 2;
+ // For
+ white-space: pre !important;
+
+ // For
+ width: unset !important;
+
+ > code {
+ background-color: unset;
+ border: none;
+ color: unset;
+ padding-right: 0;
+ padding-left: 0;
+ tab-size: 2;
+ }
+}
+
+kbd {
+ background: $ccode;
+ border: 1px solid $cbor3;
+ border-bottom: 3px solid darken($cbor3, 3%);
+ border-radius: $radius-unit;
+ box-shadow:
+ 0 2px 4px darken($cbg00, 6%),
+ inset 0 1px $cbg00
+ ;
+ font-size: .9rem !important;
+ padding: .1em .4em .2em .4em;
+}
+
+select {
+ background-color: $ccodeblock;
+ border: 1px solid $cbor3;
+ border-radius: $radius-unit;
+ color: $cfg00;
+ padding: .04em .25em;
+ // Do not use max-width here
+ width: 100%;
+
+ &:focus {
+ box-shadow: none;
+ outline: none;
+
+ background-color: $cbg00;
+ }
+
+ > option {
+ background-color: $cbg00;
+ }
+}
+
+table {
+ border-collapse: collapse;
+ // `!important` is set to override something like
+ width: 100% !important;
+}
+
+// Return this if something goes wrong, and return the JS override for dark theme
+//table,
+//th,
+//td {
+// color: $cfg00;
+//}
+
+li {
+ display: list-item;
+}
+
+ul,
+ol {
+ padding-left: 1.5em;
+}
+
+ul {
+ list-style-type: disc;
+
+ li ul {
+ list-style-type: square;
+ }
+}
+
+ol {
+ list-style-type: decimal;
+
+ li ol {
+ list-style-type: lower-roman;
+ }
+}
+
+img {
+ // Let the width be defined (see .rssguard-mbody img), but keep aspect ratio
+ height: auto;
+ // `width auto` creates many problems even if set as a fallback
+ //width: auto;
+}
+
+details {
+ border: 1px solid $ccodeblock;
+ border-radius: $radius-unit;
+ padding: .5em .5em 0;
+
+ > summary {
+ background-color: $ccodeblock;
+ border-radius: $radius-unit * 0.9;
+ cursor: pointer;
+ margin: -.5em -.5em 0;
+ padding-left: .5em;
+
+ &:focus {
+ box-shadow: none;
+ outline: none;
+ }
+ }
+
+ & *:last-child {
+ margin-bottom: 0;
+ }
+}
+
+details[open] {
+ border-color: $cbor3;
+ padding: .5em;
+
+ > summary {
+ border-bottom: 1px solid $cbor3;
+ border-radius: ($radius-unit * 0.9) ($radius-unit * 0.9) 0 0;
+ margin-bottom: .5em;
+ }
+}
+
+iframe {
+ max-width: 100%;
+ height: auto;
+ width: auto;
+}
+
+a,
+select,
+summary {
+
+ &:focus {
+ background-color: $cbor3;
+ text-shadow: 0 -1px $cbg00;
+ }
+}
+
+:target {
+ outline: 1px solid $clink;
+}
+
+// m* == message*
+body:hover .rssguard-mwrapper .rssguard-mhead .mwrapurl {
+
+ a,
+ span {
+ visibility: visible;
+ }
+}
+
+.rssguard-mwrapper .rssguard-mhead .mwrapurl a:focus {
+
+ &,
+ & + span {
+ visibility: visible !important;
+ }
+}
+
+.rssguard-mwrapper {
+ padding: $base-unit !important;
+
+ .rssguard-mhead {
+
+ .msmall,
+ .mlinks {
+ opacity: .8;
+ }
+
+ > h1 {
+ margin: 0;
+ }
+
+ .msmall {
+ font-size: .9em;
+ }
+
+ .mlinks {
+
+ .menc {
+ word-break: break-word;
+ }
+
+ .mwrapurl {
+ display: inline-flex;
+
+ a {
+ order: 1;
+ }
+
+ a,
+ span {
+ visibility: hidden;
+ }
+ }
+ }
+ }
+
+ .rssguard-mbody img {
+ // Needs to be `!important` when max-width is defined by image style
+ //
+ max-width: 450px !important;
+ // For cases when they both are set
+ max-height: unset !important;
+
+ @media only screen and (max-width: 800px) {
+ // `!important` to override `!important` that is set above
+ max-width: 100% !important;
+ }
+ }
+}
+
+//
+// Other
+//
+
+// For articles without any html elements;
+// If not applied to _all_, *must* be applied to links in mbody
+// mbody == article body
+.rssguard-mbody {
+ word-break: break-word;
+}
+
+// Fix at least some mess produced by above
+table {
+ word-break: normal;
+}
diff --git a/resources/skins/nudus-base/html_wrapper.html b/resources/skins/nudus-base/html_wrapper.html
new file mode 100644
index 000000000..a85c25b83
--- /dev/null
+++ b/resources/skins/nudus-base/html_wrapper.html
@@ -0,0 +1,16 @@
+
+
+
+%1
+
+
+
+
+
+
+%2
+
+
+
\ No newline at end of file
diff --git a/resources/skins/nudus-dark/html_style.css b/resources/skins/nudus-dark/html_style.css
new file mode 100644
index 000000000..7b34533d3
--- /dev/null
+++ b/resources/skins/nudus-dark/html_style.css
@@ -0,0 +1,505 @@
+@charset "UTF-8";
+* {
+ font-family: inherit;
+}
+
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ background-color: #373A3D;
+ box-sizing: border-box;
+ color: #f5f5f5;
+ -webkit-text-size-adjust: 100%;
+ -webkit-font-feature-settings: "kern" 1;
+ font-feature-settings: "kern" 1;
+ font-kerning: normal;
+ min-height: 100vh;
+}
+
+::selection {
+ background-color: #8291AD;
+ text-shadow: none;
+}
+
+h1, h2, h3, h4, h5, h6,
+p, blockquote, pre,
+ul, ol, dl, figure,
+details {
+ margin-bottom: 10px;
+}
+
+hr {
+ background-color: #545556;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 10px 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 600 !important;
+}
+
+h1 {
+ font-size: 1.25rem !important;
+}
+
+h2 {
+ font-size: 1.20rem !important;
+}
+
+h3 {
+ font-size: 1.15rem !important;
+}
+
+h4 {
+ font-size: 1.1rem !important;
+}
+
+h5 {
+ font-size: 1rem !important;
+}
+
+h6 {
+ font-size: .95rem !important;
+}
+
+b {
+ font-weight: bold !important;
+}
+
+i {
+ font-style: italic !important;
+}
+
+strong {
+ font-weight: 800 !important;
+}
+
+em {
+ font-style: oblique !important;
+}
+
+mark {
+ background-color: #f8d08c66;
+}
+
+sub,
+sup {
+ font-size: .8rem !important;
+}
+
+small {
+ font-size: .9rem !important;
+}
+
+abbr {
+ cursor: help;
+ font-style: italic !important;
+ font-weight: 100 !important;
+}
+
+q {
+ font-style: italic !important;
+}
+q::before {
+ content: '“';
+}
+q::after {
+ content: '”';
+}
+
+time {
+ font-weight: 450 !important;
+}
+
+var {
+ font-style: oblique !important;
+ font-weight: 500 !important;
+}
+
+a {
+ color: #8291AD;
+}
+a:hover {
+ text-decoration: none;
+}
+a:focus {
+ box-shadow: none;
+ outline: none;
+}
+
+cite {
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+figure > img {
+ display: block;
+}
+
+figcaption {
+ font-size: .8rem !important;
+}
+
+blockquote {
+ border-left: 0.3em solid #545556;
+ margin-left: 0;
+ padding: 0 10px;
+}
+blockquote,
+blockquote p {
+ color: #D8D8D8;
+}
+
+pre,
+code {
+ border: 1px solid #282a2c;
+ border-radius: 0.3em;
+ color: #D8D8D8;
+}
+
+code {
+ background-color: rgba(33, 35, 39, 0.4);
+ padding: 0 .25em;
+ word-break: break-word;
+}
+
+pre {
+ background-color: rgba(33, 35, 39, 0.4);
+ overflow-x: auto;
+ padding: 7px 13px;
+ tab-size: 2;
+ white-space: pre !important;
+ width: unset !important;
+}
+pre > code {
+ background-color: unset;
+ border: none;
+ color: unset;
+ padding-right: 0;
+ padding-left: 0;
+ tab-size: 2;
+}
+
+kbd {
+ background: rgba(33, 35, 39, 0.4);
+ border: 1px solid #282a2c;
+ border-bottom: 3px solid #212224;
+ border-radius: 0.3em;
+ box-shadow: 0 2px 4px #282b2d, inset 0 1px #373A3D;
+ font-size: .9rem !important;
+ padding: .1em .4em .2em .4em;
+}
+
+select {
+ background-color: rgba(33, 35, 39, 0.4);
+ border: 1px solid #282a2c;
+ border-radius: 0.3em;
+ color: #f5f5f5;
+ padding: .04em .25em;
+ width: 100%;
+}
+select:focus {
+ box-shadow: none;
+ outline: none;
+ background-color: #373A3D;
+}
+select > option {
+ background-color: #373A3D;
+}
+
+table {
+ border-collapse: collapse;
+ width: 100% !important;
+}
+
+li {
+ display: list-item;
+}
+
+ul,
+ol {
+ padding-left: 1.5em;
+}
+
+ul {
+ list-style-type: disc;
+}
+ul li ul {
+ list-style-type: square;
+}
+
+ol {
+ list-style-type: decimal;
+}
+ol li ol {
+ list-style-type: lower-roman;
+}
+
+img {
+ height: auto;
+}
+
+details {
+ border: 1px solid rgba(33, 35, 39, 0.4);
+ border-radius: 0.3em;
+ padding: .5em .5em 0;
+}
+details > summary {
+ background-color: rgba(33, 35, 39, 0.4);
+ border-radius: 0.27em;
+ cursor: pointer;
+ margin: -.5em -.5em 0;
+ padding-left: .5em;
+}
+details > summary:focus {
+ box-shadow: none;
+ outline: none;
+}
+details *:last-child {
+ margin-bottom: 0;
+}
+
+details[open] {
+ border-color: #282a2c;
+ padding: .5em;
+}
+details[open] > summary {
+ border-bottom: 1px solid #282a2c;
+ border-radius: 0.27em 0.27em 0 0;
+ margin-bottom: .5em;
+}
+
+iframe {
+ max-width: 100%;
+ height: auto;
+ width: auto;
+}
+
+a:focus,
+select:focus,
+summary:focus {
+ background-color: #282a2c;
+ text-shadow: 0 -1px #373A3D;
+}
+
+:target {
+ outline: 1px solid #8291AD;
+}
+
+body:hover .rssguard-mwrapper .rssguard-mhead .mwrapurl a,
+body:hover .rssguard-mwrapper .rssguard-mhead .mwrapurl span {
+ visibility: visible;
+}
+
+.rssguard-mwrapper .rssguard-mhead .mwrapurl a:focus, .rssguard-mwrapper .rssguard-mhead .mwrapurl a:focus + span {
+ visibility: visible !important;
+}
+
+.rssguard-mwrapper {
+ padding: 10px !important;
+}
+.rssguard-mwrapper .rssguard-mhead .msmall,
+.rssguard-mwrapper .rssguard-mhead .mlinks {
+ opacity: .8;
+}
+.rssguard-mwrapper .rssguard-mhead > h1 {
+ margin: 0;
+}
+.rssguard-mwrapper .rssguard-mhead .msmall {
+ font-size: .9em;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .menc {
+ word-break: break-word;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl {
+ display: inline-flex;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl a {
+ order: 1;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl a,
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl span {
+ visibility: hidden;
+}
+.rssguard-mwrapper .rssguard-mbody img {
+ max-width: 450px !important;
+ max-height: unset !important;
+}
+@media only screen and (max-width: 800px) {
+ .rssguard-mwrapper .rssguard-mbody img {
+ max-width: 100% !important;
+ }
+}
+
+.rssguard-mbody {
+ word-break: break-word;
+}
+
+table {
+ word-break: normal;
+}
+
+html::before,
+html::after,
+body::before,
+body::after {
+ content: "";
+ background-color: #282a2c;
+ display: block;
+ position: fixed;
+ z-index: 5;
+}
+
+html::before {
+ height: 1px;
+ left: 0;
+ right: 0;
+ top: 0;
+}
+
+html::after {
+ width: 1px;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+body::before {
+ height: 1px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+body::after {
+ width: 1px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+}
+
+::-webkit-scrollbar {
+ height: 13px;
+ width: 14px;
+}
+
+::-webkit-scrollbar-track,
+::-webkit-scrollbar-corner {
+ background-color: #37393c;
+ box-shadow: inset 1px 1px #323437;
+}
+
+::-webkit-scrollbar-corner {
+ border-radius: 0 0 0.3em 0;
+}
+
+::-webkit-scrollbar-thumb {
+ box-shadow: inset 1px 1px #565a5f, inset -1px -1px #565a5f, inset 0px 1px #565a5f, inset 0px -1px #565a5f, inset 1px 0px #565a5f, inset 1px -1px #565a5f, inset -1px 0px #565a5f, inset -1px 1px #565a5f;
+}
+::-webkit-scrollbar-thumb:horizontal {
+ background-image: linear-gradient(#414347 5%, #3c3e42);
+ min-width: 25px;
+}
+::-webkit-scrollbar-thumb:horizontal:hover {
+ background-image: linear-gradient(#43464a 25%, #3c3e42);
+}
+::-webkit-scrollbar-thumb:vertical {
+ background-image: linear-gradient(to right, #414347 5%, #3c3e42);
+ min-height: 25px;
+}
+::-webkit-scrollbar-thumb:vertical:hover {
+ background-image: linear-gradient(to right, #43464a 25%, #3c3e42);
+}
+::-webkit-scrollbar-thumb:active {
+ background-image: linear-gradient(#3c3e42, #3c3e42) !important;
+}
+
+:not(body)::-webkit-scrollbar-thumb:horizontal {
+ box-shadow: inset 1px 1px #565a5f, inset -1px -1px #565a5f, inset 0px 1px #565a5f, inset 0px -1px #565a5f, inset 1px 0px #565a5f, inset 1px -1px #565a5f, inset -1px 0px #565a5f, inset -1px 1px #565a5f, 1px 0px #282a2c, 1px 1px #282a2c, -1px 1px #282a2c, -1px 0px #282a2c;
+}
+:not(body)::-webkit-scrollbar-thumb:vertical {
+ box-shadow: inset 1px 1px #565a5f, inset -1px -1px #565a5f, inset 0px 1px #565a5f, inset 0px -1px #565a5f, inset 1px 0px #565a5f, inset 1px -1px #565a5f, inset -1px 0px #565a5f, inset -1px 1px #565a5f, 0px -1px #282a2c, 1px -1px #282a2c, 1px 1px #282a2c, 0px 1px #282a2c;
+}
+
+::-webkit-scrollbar-thumb:horizontal,
+::-webkit-scrollbar-track:horizontal {
+ border-top: 1px solid #282a2c;
+}
+::-webkit-scrollbar-thumb:vertical,
+::-webkit-scrollbar-track:vertical {
+ border-left: 1px solid #282a2c;
+}
+
+body::-webkit-scrollbar-thumb:horizontal, body::-webkit-scrollbar-thumb:vertical,
+body::-webkit-scrollbar-track:horizontal,
+body::-webkit-scrollbar-track:vertical {
+ border: 1px solid #282a2c;
+}
+body::-webkit-scrollbar-thumb:horizontal,
+body::-webkit-scrollbar-track:horizontal {
+ border-top: none;
+}
+body::-webkit-scrollbar-thumb:vertical,
+body::-webkit-scrollbar-track:vertical {
+ border-left: none;
+}
+
+body::-webkit-scrollbar-corner {
+ border: 1px solid #282a2c;
+ border-top: none;
+ border-left: none;
+}
+
+::-webkit-scrollbar-track:corner-present:horizontal,
+::-webkit-scrollbar-thumb:corner-present:horizontal {
+ border-radius: 0 0 0 0.3em;
+}
+::-webkit-scrollbar-track:corner-present:vertical,
+::-webkit-scrollbar-thumb:corner-present:vertical {
+ border-radius: 0 0.3em 0 0;
+}
+::-webkit-scrollbar-track:horizontal,
+::-webkit-scrollbar-thumb:horizontal {
+ border-radius: 0 0 0.3em 0.3em;
+}
+::-webkit-scrollbar-track:vertical,
+::-webkit-scrollbar-thumb:vertical {
+ border-radius: 0 0.3em 0.3em 0;
+}
+
+/* Please enable JS for additional font-colouring features */
+:root {
+ --rssguard-red: 0;
+ --rssguard-green: 0;
+ --rssguard-blue: 0;
+ --rssguard-threshold: 0.5;
+}
+
+:root {
+ --rssguard-r: calc(var(--rssguard-red) * 0.2126);
+ --rssguard-g: calc(var(--rssguard-green) * 0.7152);
+ --rssguard-b: calc(var(--rssguard-blue) * 0.0722);
+ --rssguard-sum:
+ calc(
+ var(--rssguard-r) +
+ var(--rssguard-g) +
+ var(--rssguard-b)
+ );
+ --rssguard-perceived-lightness: calc(var(--rssguard-sum) / 255);
+}
+
+body,
+::selection,
+mark, code, pre, pre > code,
+blockquote {
+ color: hsla(0, 0%, calc( ( var(--rssguard-perceived-lightness) - var(--rssguard-threshold) ) * -10000000% ), 0.9);
+}
+
+/*# sourceMappingURL=html_style.css.map */
diff --git a/resources/skins/nudus-dark/html_style.scss b/resources/skins/nudus-dark/html_style.scss
new file mode 100644
index 000000000..6f4ccb00f
--- /dev/null
+++ b/resources/skins/nudus-dark/html_style.scss
@@ -0,0 +1,313 @@
+@charset "utf-8";
+
+$qtbg-base: #373A3D !default; // clr_basbg
+$qtbg-button: #323437 !default; // clr_altbg // button bg (scrollbar, alt bg)
+$qcselbg: #8291AD !default; // clr_selbg
+
+//
+// Emulate fusion colour processing (dark only)
+//
+
+//
+// Scrollbar colours
+//
+
+//$qcbgbg: lighten($qtbg-button, 6%); // See toolbar bg
+$bgscroll: lighten($qtbg-button, 2%) !default; // track and corner bg
+$tr-border: darken($qtbg-button, 4%) !default; // track brdr
+
+//
+// Scrollbar thumb
+//
+
+// bg gradient
+
+// Normal
+$thscrlin: lighten($qtbg-button, 6%) !default;
+$thscrlout: lighten($qtbg-button, 4%) !default;
+
+// Hover
+$thscrlhvin: lighten($qtbg-button, 7%) !default;
+$thscrlhvout: $thscrlout;
+
+// Light outline
+$th-border: lighten($qtbg-button, 15%) !default;
+
+//
+// HTML palette (Colours)
+//
+
+$cbg00: $qtbg-base;
+
+// Irrelevant, because fg is overridden by the switcher ~~~
+$cfg00: #f5f5f5 !default;
+$cfg10: #D8D8D8 !default;
+$cfg11: $cfg10;
+// ~~~
+
+$cbor2: #545556 !default;
+
+$ccodeblock: rgba(33, 35, 39, 0.4) !default;
+$ccode: $ccodeblock;
+$cbor3: $tr-border;
+$cmark: #f8d08c66 !default; // 40% transparency
+
+$clink: $qcselbg;
+
+//
+// Other
+//
+
+$radius-unit: .3em !default;
+
+@import
+ "../nudus-base/html_style_base"
+;
+
+//
+// Dark HTML-style has following additions:
+//
+
+//
+// Border around viewport
+
+// https://csswizardry.com/2010/12/simplified-page-borders-in-pure-css/
+//
+
+html::before,
+html::after,
+body::before,
+body::after {
+ content: "";
+ background-color: $tr-border;
+ display: block;
+ position: fixed;
+ z-index: 5;
+}
+
+html::before {
+ height: 1px;
+ left: 0;
+ right: 0;
+ top: 0;
+}
+
+html::after {
+ width: 1px;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+body::before {
+ height: 1px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+body::after {
+ width: 1px;
+ top: 0;
+ bottom: 0;
+ left: 0;
+}
+
+//
+// Enhanced scrollbar
+//
+
+::-webkit-scrollbar {
+ height: 13px;
+ width: 14px;
+}
+
+::-webkit-scrollbar-track,
+::-webkit-scrollbar-corner {
+ background-color: $bgscroll;
+ box-shadow: inset 1px 1px lighten($tr-border, 4%);
+}
+
+// Part where vertical and horizontal scrollbars meet
+::-webkit-scrollbar-corner {
+ border-radius: 0 0 $radius-unit 0;
+}
+
+// TODO: Can be simplified to @include and function
+$th-outline:
+ inset 1px 1px $th-border,
+ inset -1px -1px $th-border,
+
+ inset 0px 1px $th-border,
+ inset 0px -1px $th-border,
+
+ inset 1px 0px $th-border,
+ inset 1px -1px $th-border,
+
+ inset -1px 0px $th-border,
+ inset -1px 1px $th-border
+;
+
+::-webkit-scrollbar-thumb {
+ $th-min-unit: 25px;
+ box-shadow: $th-outline;
+
+ &:horizontal {
+ background-image: linear-gradient($thscrlin 5%, $thscrlout);
+ min-width: $th-min-unit;
+
+ &:hover {
+ background-image: linear-gradient($thscrlhvin 25%, $thscrlhvout);
+ }
+ }
+
+ &:vertical {
+ background-image: linear-gradient(to right, $thscrlin 5%, $thscrlout);
+ min-height: $th-min-unit;
+
+ &:hover {
+ background-image: linear-gradient(to right, $thscrlhvin 25%, $thscrlhvout);
+ }
+ }
+
+ &:active {
+ background-image: linear-gradient($thscrlout, $thscrlout) !important;
+ }
+}
+
+// Light and dark borders to outline the thumb
+// Clockwise (x y)
+:not(body)::-webkit-scrollbar-thumb {
+
+ &:horizontal {
+ box-shadow:
+ $th-outline,
+ 1px 0px $tr-border,
+ 1px 1px $tr-border,
+ -1px 1px $tr-border,
+ -1px 0px $tr-border
+ ;
+ }
+
+ &:vertical {
+ box-shadow:
+ $th-outline,
+ 0px -1px $tr-border,
+ 1px -1px $tr-border,
+ 1px 1px $tr-border,
+ 0px 1px $tr-border
+ ;
+ }
+}
+
+::-webkit-scrollbar-thumb,
+::-webkit-scrollbar-track {
+
+ &:horizontal {
+ border-top: 1px solid $tr-border;
+ }
+
+ &:vertical {
+ border-left: 1px solid $tr-border;
+ }
+}
+
+// More complete borders for `body` scrollbar
+body::-webkit-scrollbar-thumb,
+body::-webkit-scrollbar-track {
+
+ &:horizontal,
+ &:vertical {
+ border: 1px solid $tr-border;
+ }
+
+ &:horizontal {
+ border-top: none;
+ }
+
+ &:vertical {
+ border-left: none;
+ }
+}
+
+body::-webkit-scrollbar-corner {
+ border: 1px solid $tr-border;
+ border-top: none;
+ border-left: none;
+}
+
+::-webkit-scrollbar-track,
+::-webkit-scrollbar-thumb {
+
+ &:corner-present {
+
+ &:horizontal {
+ border-radius: 0 0 0 $radius-unit;
+ }
+
+ &:vertical {
+ border-radius: 0 $radius-unit 0 0;
+ }
+ }
+
+ &:horizontal {
+ border-radius: 0 0 $radius-unit $radius-unit;
+ }
+
+ &:vertical {
+ border-radius: 0 $radius-unit $radius-unit 0;
+ }
+}
+
+//
+// Font colour switcher
+
+// Thank you so much!!
+// https://css-tricks.com/switch-font-color-for-different-backgrounds-with-css/
+//
+
+/* Please enable JS for additional font-colouring features */
+:root {
+ // Default RGB values for background colour
+ --rssguard-red: 0;
+ --rssguard-green: 0;
+ --rssguard-blue: 0;
+ // The threshold at which colours are considered "light
+ // Range: decimals from 0 to 1, recommended 0.5 - 0.6
+ --rssguard-threshold: 0.5;
+}
+
+:root {
+ // Calculates perceived lightness using the sRGB Luma method
+ // Luma = (red * 0.2126 + green * 0.7152 + blue * 0.0722) / 255
+ --rssguard-r: calc(var(--rssguard-red) * 0.2126);
+ --rssguard-g: calc(var(--rssguard-green) * 0.7152);
+ --rssguard-b: calc(var(--rssguard-blue) * 0.0722);
+ --rssguard-sum:
+ calc(
+ var(--rssguard-r) +
+ var(--rssguard-g) +
+ var(--rssguard-b)
+ );
+ --rssguard-perceived-lightness: calc(var(--rssguard-sum) / 255);
+}
+
+// Shows either white or black colour depending on perceived lightness
+body,
+::selection,
+mark, code, pre, pre > code,
+blockquote {
+ color:
+ hsla(
+ 0,
+ 0%,
+ calc(
+ (
+ var(--rssguard-perceived-lightness) -
+ var(--rssguard-threshold)
+ ) *
+ -10000000%
+ ),
+ .9
+ );
+}
diff --git a/resources/skins/nudus-dark/html_wrapper.html b/resources/skins/nudus-dark/html_wrapper.html
new file mode 100644
index 000000000..e9f5b6666
--- /dev/null
+++ b/resources/skins/nudus-dark/html_wrapper.html
@@ -0,0 +1,29 @@
+
+
+
+%1
+
+
+
+
+
+
+%2
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/skins/nudus-dark/metadata.xml b/resources/skins/nudus-dark/metadata.xml
new file mode 100644
index 000000000..57a3ebb36
--- /dev/null
+++ b/resources/skins/nudus-dark/metadata.xml
@@ -0,0 +1,13 @@
+
+
+
+ akinokonomi
+
+
+ #85ACF6
+ #D9E3F7
+ #DF5656
+ #910303
+ #44AA44
+
+
diff --git a/resources/skins/nudus-dark/qt_style.qss b/resources/skins/nudus-dark/qt_style.qss
new file mode 100644
index 000000000..e8a66b4e5
--- /dev/null
+++ b/resources/skins/nudus-dark/qt_style.qss
@@ -0,0 +1,32 @@
+QListWidget,
+QScrollArea {
+ border: 1px solid palette(dark);
+}
+
+
+QPlainTextEdit:focus {
+ border: 1px solid palette(highlight);
+}
+
+QToolTip {
+ background-color: palette(window);
+ border: 1px solid palette(dark);
+ border-radius: 2px;
+}
+
+/* TODO: Fine for now, may be improved in future */
+QProgressBar {
+ background-color: palette(highlight);
+ color: palette(window);
+}
+
+QSplitter::handle {
+ background: palette(dark);
+}
+
+/*
+ * For `qt5-styleplugins`: motif, cde, gtk2, etc.
+ */
+QStatusBar::item {
+ border: none;
+}
diff --git a/resources/skins/nudus-light/html_style.css b/resources/skins/nudus-light/html_style.css
new file mode 100644
index 000000000..72dce3e0c
--- /dev/null
+++ b/resources/skins/nudus-light/html_style.css
@@ -0,0 +1,353 @@
+@charset "UTF-8";
+* {
+ font-family: inherit;
+}
+
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ background-color: #FBFBFB;
+ box-sizing: border-box;
+ color: #000000;
+ -webkit-text-size-adjust: 100%;
+ -webkit-font-feature-settings: "kern" 1;
+ font-feature-settings: "kern" 1;
+ font-kerning: normal;
+ min-height: 100vh;
+}
+
+::selection {
+ background-color: #5D88D2;
+ text-shadow: none;
+}
+
+h1, h2, h3, h4, h5, h6,
+p, blockquote, pre,
+ul, ol, dl, figure,
+details {
+ margin-bottom: 10px;
+}
+
+hr {
+ background-color: #CFCFCF;
+ border: none;
+ display: block;
+ height: 2px;
+ margin: 10px 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 600 !important;
+}
+
+h1 {
+ font-size: 1.25rem !important;
+}
+
+h2 {
+ font-size: 1.20rem !important;
+}
+
+h3 {
+ font-size: 1.15rem !important;
+}
+
+h4 {
+ font-size: 1.1rem !important;
+}
+
+h5 {
+ font-size: 1rem !important;
+}
+
+h6 {
+ font-size: .95rem !important;
+}
+
+b {
+ font-weight: bold !important;
+}
+
+i {
+ font-style: italic !important;
+}
+
+strong {
+ font-weight: 800 !important;
+}
+
+em {
+ font-style: oblique !important;
+}
+
+mark {
+ background-color: #FFECCC;
+}
+
+sub,
+sup {
+ font-size: .8rem !important;
+}
+
+small {
+ font-size: .9rem !important;
+}
+
+abbr {
+ cursor: help;
+ font-style: italic !important;
+ font-weight: 100 !important;
+}
+
+q {
+ font-style: italic !important;
+}
+q::before {
+ content: '“';
+}
+q::after {
+ content: '”';
+}
+
+time {
+ font-weight: 450 !important;
+}
+
+var {
+ font-style: oblique !important;
+ font-weight: 500 !important;
+}
+
+a {
+ color: #5D88D2;
+}
+a:hover {
+ text-decoration: none;
+}
+a:focus {
+ box-shadow: none;
+ outline: none;
+}
+
+cite {
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+figure > img {
+ display: block;
+}
+
+figcaption {
+ font-size: .8rem !important;
+}
+
+blockquote {
+ border-left: 0.3em solid #CFCFCF;
+ margin-left: 0;
+ padding: 0 10px;
+}
+blockquote,
+blockquote p {
+ color: #343434;
+}
+
+pre,
+code {
+ border: 1px solid #DEDEDE;
+ border-radius: 0.1em;
+ color: #343434;
+}
+
+code {
+ background-color: #F1F1F1;
+ padding: 0 .25em;
+ word-break: break-word;
+}
+
+pre {
+ background-color: #F1F1F1;
+ overflow-x: auto;
+ padding: 7px 13px;
+ tab-size: 2;
+ white-space: pre !important;
+ width: unset !important;
+}
+pre > code {
+ background-color: unset;
+ border: none;
+ color: unset;
+ padding-right: 0;
+ padding-left: 0;
+ tab-size: 2;
+}
+
+kbd {
+ background: #F1F1F1;
+ border: 1px solid #DEDEDE;
+ border-bottom: 3px solid #d6d6d6;
+ border-radius: 0.1em;
+ box-shadow: 0 2px 4px #ececec, inset 0 1px #FBFBFB;
+ font-size: .9rem !important;
+ padding: .1em .4em .2em .4em;
+}
+
+select {
+ background-color: #F1F1F1;
+ border: 1px solid #DEDEDE;
+ border-radius: 0.1em;
+ color: #000000;
+ padding: .04em .25em;
+ width: 100%;
+}
+select:focus {
+ box-shadow: none;
+ outline: none;
+ background-color: #FBFBFB;
+}
+select > option {
+ background-color: #FBFBFB;
+}
+
+table {
+ border-collapse: collapse;
+ width: 100% !important;
+}
+
+li {
+ display: list-item;
+}
+
+ul,
+ol {
+ padding-left: 1.5em;
+}
+
+ul {
+ list-style-type: disc;
+}
+ul li ul {
+ list-style-type: square;
+}
+
+ol {
+ list-style-type: decimal;
+}
+ol li ol {
+ list-style-type: lower-roman;
+}
+
+img {
+ height: auto;
+}
+
+details {
+ border: 1px solid #F1F1F1;
+ border-radius: 0.1em;
+ padding: .5em .5em 0;
+}
+details > summary {
+ background-color: #F1F1F1;
+ border-radius: 0.09em;
+ cursor: pointer;
+ margin: -.5em -.5em 0;
+ padding-left: .5em;
+}
+details > summary:focus {
+ box-shadow: none;
+ outline: none;
+}
+details *:last-child {
+ margin-bottom: 0;
+}
+
+details[open] {
+ border-color: #DEDEDE;
+ padding: .5em;
+}
+details[open] > summary {
+ border-bottom: 1px solid #DEDEDE;
+ border-radius: 0.09em 0.09em 0 0;
+ margin-bottom: .5em;
+}
+
+iframe {
+ max-width: 100%;
+ height: auto;
+ width: auto;
+}
+
+a:focus,
+select:focus,
+summary:focus {
+ background-color: #DEDEDE;
+ text-shadow: 0 -1px #FBFBFB;
+}
+
+:target {
+ outline: 1px solid #5D88D2;
+}
+
+body:hover .rssguard-mwrapper .rssguard-mhead .mwrapurl a,
+body:hover .rssguard-mwrapper .rssguard-mhead .mwrapurl span {
+ visibility: visible;
+}
+
+.rssguard-mwrapper .rssguard-mhead .mwrapurl a:focus, .rssguard-mwrapper .rssguard-mhead .mwrapurl a:focus + span {
+ visibility: visible !important;
+}
+
+.rssguard-mwrapper {
+ padding: 10px !important;
+}
+.rssguard-mwrapper .rssguard-mhead .msmall,
+.rssguard-mwrapper .rssguard-mhead .mlinks {
+ opacity: .8;
+}
+.rssguard-mwrapper .rssguard-mhead > h1 {
+ margin: 0;
+}
+.rssguard-mwrapper .rssguard-mhead .msmall {
+ font-size: .9em;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .menc {
+ word-break: break-word;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl {
+ display: inline-flex;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl a {
+ order: 1;
+}
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl a,
+.rssguard-mwrapper .rssguard-mhead .mlinks .mwrapurl span {
+ visibility: hidden;
+}
+.rssguard-mwrapper .rssguard-mbody img {
+ max-width: 450px !important;
+ max-height: unset !important;
+}
+@media only screen and (max-width: 800px) {
+ .rssguard-mwrapper .rssguard-mbody img {
+ max-width: 100% !important;
+ }
+}
+
+.rssguard-mbody {
+ word-break: break-word;
+}
+
+table {
+ word-break: normal;
+}
+
+::selection {
+ color: #F1F1F1;
+}
+
+/*# sourceMappingURL=html_style.css.map */
diff --git a/resources/skins/nudus-light/html_style.scss b/resources/skins/nudus-light/html_style.scss
new file mode 100644
index 000000000..f6aa22d7d
--- /dev/null
+++ b/resources/skins/nudus-light/html_style.scss
@@ -0,0 +1,39 @@
+@charset "utf-8";
+
+//
+// Colours
+//
+
+$cbg00: #FBFBFB !default; // Background // Qt5 fusion bg light toolbar-grey
+
+$cfg00: #000000 !default;
+//$cfg10: #A23542 !default; // TODO: fg for code
+$cfg11: #343434 !default; // Lighter fg for blockquote
+$cfg10: $cfg11;
+
+$cbor2: #CFCFCF !default; // hr and blockquote border
+
+$ccodeblock: #F1F1F1 !default; // bg for `pre > code` and `details > summ`
+$ccode: $ccodeblock !default; // bg for `code`
+$cbor3: #DEDEDE !default; // code/pre border
+$cmark: #FFECCC !default;
+
+$clink: #5D88D2 !default; // Else use steelblue
+
+//
+// Other
+//
+
+$radius-unit: .1em !default;
+
+@import
+ "../nudus-base/html_style_base"
+;
+
+//
+// Light style has following additions:
+//
+
+::selection {
+ color: #F1F1F1;
+}
diff --git a/resources/skins/nudus-light/metadata.xml b/resources/skins/nudus-light/metadata.xml
new file mode 100644
index 000000000..d26cbaed0
--- /dev/null
+++ b/resources/skins/nudus-light/metadata.xml
@@ -0,0 +1,13 @@
+
+
+
+ akinokonomi
+
+
+ #3A6FE4
+ #F0F2FC
+ #E74343
+ #FFD7D7
+ #77dd77
+
+
diff --git a/resources/skins/nudus-light/qt_style.qss b/resources/skins/nudus-light/qt_style.qss
new file mode 100644
index 000000000..c6342bc9c
--- /dev/null
+++ b/resources/skins/nudus-light/qt_style.qss
@@ -0,0 +1,14 @@
+QPlainTextEdit:focus {
+ border: 1px solid palette(highlight);
+}
+
+QSplitter::handle {
+ background: palette(dark);
+}
+
+/*
+ * For `qt5-styleplugins`: motif, cde, gtk2, etc.
+ */
+QStatusBar::item {
+ border: none;
+}
diff --git a/resources/skins/nudus/html_enclosure_every.html b/resources/skins/nudus/html_enclosure_every.html
deleted file mode 100644
index c1827e96e..000000000
--- a/resources/skins/nudus/html_enclosure_every.html
+++ /dev/null
@@ -1 +0,0 @@
- /
\ No newline at end of file
diff --git a/resources/skins/nudus/html_single_message.html b/resources/skins/nudus/html_single_message.html
deleted file mode 100644
index 4bb7d2c83..000000000
--- a/resources/skins/nudus/html_single_message.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/resources/skins/nudus/html_wrapper.html b/resources/skins/nudus/html_wrapper.html
deleted file mode 100644
index c227d95d7..000000000
--- a/resources/skins/nudus/html_wrapper.html
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-
-
-
-
-
-
- %1
-
-
-
- %2
-
-
-
diff --git a/resources/skins/nudus/metadata.xml b/resources/skins/nudus/metadata.xml
deleted file mode 100644
index 7fd862261..000000000
--- a/resources/skins/nudus/metadata.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- Maki Blackwell
-
-
- #3A4EE4
- #ff66cc
- #4EE43A
- #ff99ff
- #00ff99
-
-
\ No newline at end of file
diff --git a/resources/skins/nudus/qt_style.qss b/resources/skins/nudus/qt_style.qss
deleted file mode 100644
index 656bfe9c8..000000000
--- a/resources/skins/nudus/qt_style.qss
+++ /dev/null
@@ -1,11 +0,0 @@
-QTextEdit {
- selection-background-color: #4861f0;
-}
-
-QStatusBar::item {
- border: none;
-}
-
-QSplitter::handle {
- background: rgba(117, 117, 117, 0.5);
-}
diff --git a/resources/skins/vergilius/html_single_message.html b/resources/skins/vergilius/html_single_message.html
index 2f4f60b60..95119a5ad 100644
--- a/resources/skins/vergilius/html_single_message.html
+++ b/resources/skins/vergilius/html_single_message.html
@@ -1,4 +1,4 @@
-
+
diff --git a/resources/skins/vergilius/metadata.xml b/resources/skins/vergilius/metadata.xml
index 78fb75561..8f5188f57 100644
--- a/resources/skins/vergilius/metadata.xml
+++ b/resources/skins/vergilius/metadata.xml
@@ -1,13 +1,13 @@
-
+
Martin Rotter
- #3A4EE4
- #ff66cc
- #4EE43A
- #ff99ff
- #00ff99
+ #3A4EE4
+ #F0F2FC
+ #DF5656
+ #FFD7D7
+ #77dd77
\ No newline at end of file
diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp
index e63973c3e..d06929087 100644
--- a/src/librssguard/miscellaneous/skinfactory.cpp
+++ b/src/librssguard/miscellaneous/skinfactory.cpp
@@ -68,36 +68,40 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
qDebugNN << LOGSEC_GUI << "Activating dark palette for Fusion style.";
QPalette fusion_palette = qApp->palette();
- QColor clr_bg(QSL("#2D2F32"));
+ QColor clr_maibg(QSL("#2D2F32"));
+ QColor clr_basbg(QSL("#373A3D"));
QColor clr_altbg(QSL("#323437"));
QColor clr_selbg(QSL("#8291AD"));
- QColor clr_fg(QSL("#D8D8D8"));
- QColor clr_brdr(QSL("#585C65"));
- QColor clr_tooltip_brdr(QSL("#707580"));
- QColor clr_link(QSL("#a1acc1"));
- QColor clr_dis_fg(QSL("#727272"));
+ QColor clr_selfg(QSL("#FFFFFF"));
+ QColor clr_btnfg(QSL("#E7E7E7"));
+ QColor clr_dibfg(QSL("#A7A7A7"));
+ QColor clr_winfg(QSL("#D8D8D8"));
+ QColor clr_diwfg(QSL("#999999"));
+ QColor clr_brdbg(QSL("#202224")); // Use colour picker on dark brdr under list header for this one
+ QColor clr_wlink(QSL("#a1acc1"));
//
// Normal state.
//
// Backgrounds & bases.
- fusion_palette.setColor(QPalette::ColorRole::Window, clr_bg);
- fusion_palette.setColor(QPalette::ColorRole::Base, clr_bg);
- fusion_palette.setColor(QPalette::ColorRole::Dark, clr_bg);
+ fusion_palette.setColor(QPalette::ColorRole::Window, clr_maibg);
+ fusion_palette.setColor(QPalette::ColorRole::Base, clr_basbg);
+ fusion_palette.setColor(QPalette::ColorRole::Dark, clr_brdbg);
fusion_palette.setColor(QPalette::ColorRole::AlternateBase, clr_altbg);
- fusion_palette.setColor(QPalette::ColorRole::Button, clr_altbg);
- fusion_palette.setColor(QPalette::ColorRole::Highlight, clr_selbg);
+ fusion_palette.setColor(QPalette::ColorRole::Button, clr_altbg);
+ fusion_palette.setColor(QPalette::ColorRole::Light, clr_altbg); // Bright
+ fusion_palette.setColor(QPalette::ColorRole::Highlight, clr_selbg);
// Texts.
- fusion_palette.setColor(QPalette::ColorRole::WindowText, clr_fg);
- fusion_palette.setColor(QPalette::ColorRole::ButtonText, clr_fg);
- fusion_palette.setColor(QPalette::ColorRole::BrightText, clr_fg);
- fusion_palette.setColor(QPalette::ColorRole::Text, clr_fg);
- fusion_palette.setColor(QPalette::ColorRole::PlaceholderText, clr_fg);
- fusion_palette.setColor(QPalette::ColorRole::Link, clr_link);
- fusion_palette.setColor(QPalette::ColorRole::LinkVisited, clr_link);
- fusion_palette.setColor(QPalette::ColorRole::HighlightedText, clr_fg);
+ fusion_palette.setColor(QPalette::ColorRole::ButtonText, clr_btnfg);
+ fusion_palette.setColor(QPalette::ColorRole::WindowText, clr_winfg);
+ fusion_palette.setColor(QPalette::ColorRole::BrightText, clr_basbg);
+ fusion_palette.setColor(QPalette::ColorRole::Text, clr_winfg); // Normal text
+ fusion_palette.setColor(QPalette::ColorRole::PlaceholderText, clr_dibfg);
+ fusion_palette.setColor(QPalette::ColorRole::Link, clr_wlink);
+ fusion_palette.setColor(QPalette::ColorRole::LinkVisited, clr_wlink);
+ fusion_palette.setColor(QPalette::ColorRole::HighlightedText, clr_selfg);
//
// Inactive state.
@@ -112,29 +116,30 @@ void SkinFactory::loadSkinFromData(const Skin& skin) {
//
// Backgrounds & bases.
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Window, clr_altbg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Base, clr_altbg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Dark, clr_altbg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Window, clr_maibg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Base, clr_basbg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Dark, clr_brdbg);
fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::AlternateBase, clr_altbg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Button, Qt::GlobalColor::red);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Highlight, clr_selbg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Button, clr_altbg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Light, clr_altbg); // Bright
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Highlight, clr_selbg);
// Texts.
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::WindowText, clr_dis_fg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::ButtonText, clr_dis_fg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::BrightText, clr_fg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Text, clr_dis_fg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::PlaceholderText, clr_fg);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Link, clr_link);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::LinkVisited, clr_link);
- fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::HighlightedText, clr_fg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::ButtonText, clr_dibfg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::WindowText, clr_diwfg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::BrightText, clr_basbg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Text, clr_diwfg); // Normal text
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::PlaceholderText, clr_dibfg);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::Link, clr_wlink);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::LinkVisited, clr_wlink);
+ fusion_palette.setColor(QPalette::ColorGroup::Disabled, QPalette::ColorRole::HighlightedText, clr_selfg);
//
// Tooltips.
//
- fusion_palette.setColor(QPalette::ColorGroup::All, QPalette::ColorRole::ToolTipBase, clr_bg);
- fusion_palette.setColor(QPalette::ColorGroup::All, QPalette::ColorRole::ToolTipText, clr_fg);
+ fusion_palette.setColor(QPalette::ColorGroup::All, QPalette::ColorRole::ToolTipBase, clr_maibg);
+ fusion_palette.setColor(QPalette::ColorGroup::All, QPalette::ColorRole::ToolTipText, clr_winfg);
QToolTip::setPalette(fusion_palette);
qApp->setPalette(fusion_palette);