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 @@ +
+ +
+
%7
+ %2 +

%1%6URL / 

+ %5 +
+ +
+ +
+ %4 +
+ +
\ 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
+        // alt
+        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 @@
- / %2%3
\ 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 @@
-
-
-
%7
- %2 -

%1%6 / URL

- %5 -
-
-
- %4 -
-
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 @@ -
+
%1 🔗URL %6
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);