From bfcaa2bcd03b508319057f06e9603187d46aac2e Mon Sep 17 00:00:00 2001
From: Tamara Steinwender <tamara.steinwender@tugraz.at>
Date: Mon, 24 Jan 2022 13:29:48 +0100
Subject: [PATCH] Add hover support

---
 packages/common/styles.js | 83 ++++++++++-----------------------------
 1 file changed, 20 insertions(+), 63 deletions(-)

diff --git a/packages/common/styles.js b/packages/common/styles.js
index 6f407cca..7ead096b 100644
--- a/packages/common/styles.js
+++ b/packages/common/styles.js
@@ -59,8 +59,8 @@ export function getThemeCSS() {
         --dbp-border-light: var(--dbp-override-border-light, 1px solid #ffffff);
         --dbp-border-dark: var(--dbp-override-border-dark, 1px solid #000000);
         --dbp-border-radius: var(--dbp-override-border-radius, 0px);
-        --dbp-hover-base: var(--dbp-override-hover-base, var(--dbp-override-dark, var(--dbp-base-light)));
-        --dbp-hover-text: var(--dbp-override-hover-text, var(--dbp-override-light, var(--dbp-base-dark)));
+        --dbp-hover-base: var(--dbp-override-hover-base, var(--dbp-override-dark));
+        --dbp-hover-text: var(--dbp-override-hover-text, var(--dbp-override-light));
         
         /* TODO check if there are any uses of this in other apps then remove it */
         --dbp-button-hover-base: var(--dbp-override-button-hover-base, var(--dbp-override-dark, #000000));
@@ -71,6 +71,10 @@ export function getThemeCSS() {
         background-color: var(--dbp-base-light);
     }
     
+    .dark {
+        background-color: var(--dbp-base-dark);
+    }
+    
     `;
 }
 
@@ -162,7 +166,7 @@ export function getGeneralCSS(doMarginPaddingReset = true) {
         }
 
         a.is-download:hover {
-            color: var(--dbp-hover-text);
+            color: var(--dbp-hover-text, var(--dbp-text-dark));
             background-color: var(--dbp-hover-base);
         }
 
@@ -447,30 +451,6 @@ export function getNotificationCSS() {
 }
 
 export function getButtonCSS() {
-    const docStyle = getComputedStyle(document.documentElement);
-    let hoverTextCheck = false;
-    let hoverBaseCheck = false;
-    if (docStyle) {
-        const hoverBase = docStyle.getPropertyValue('--dbp-override-hover-base');
-        hoverBaseCheck = hoverBase ? true : false;
-        const hoverText = docStyle.getPropertyValue('--dbp-override-hover-text');
-        hoverTextCheck = hoverText ? true : false;
-    }
-
-    let hoverTextStyle = css``;
-    let hoverBaseStyle = css``;
-
-    if (hoverTextCheck) {
-        hoverTextStyle = css`
-            color: var(--dbp-hover-text);
-        `;
-    }
-
-    if (hoverBaseCheck) {
-        hoverBaseStyle = css`
-            background-color: var(--dbp-hover-base);
-        `;
-    }
 
     // language=css
     return css`
@@ -494,8 +474,8 @@ export function getButtonCSS() {
         }
 
         button.button:hover:enabled, .button:hover:enabled, button.dt-button:hover:enabled, button.dt-button:hover:not(.disabled), .button:hover {
-            ${hoverTextStyle}
-            ${hoverBaseStyle}
+            color: var(--dbp-hover-text, var(--dbp-text-dark));
+            background-color: var(--dbp-hover-base);
         }
 
         button.button.is-small, .button.is-small {
@@ -505,10 +485,15 @@ export function getButtonCSS() {
 
         button.button.is-primary, .button.is-primary {
             background-color: var(--dbp-primary-dark);
-            border-color: var(--dbp-primary-dark);
+            border: var(--dbp-border-dark);
             color: var(--dbp-text-light);
         }
 
+        button.button.is-primary:hover {
+            background-color: var(--dbp-hover-base, var(--dbp-primary-dark));
+            color: var(--dbp-hover-text, var(--dbp-text-light));
+        }
+
         button.button.is-info, .button.is-info {
             background-color: var(--dbp-info-dark);
             border-color: var(--dbp-info-dark);
@@ -1140,35 +1125,6 @@ export function getActivityCSS() {
 }
 
 export function getLinkCss() {
-    const docStyle = getComputedStyle(document.documentElement);
-    let hoverTextCheck = false;
-    let hoverBaseCheck = false;
-    if (docStyle) {
-        const hoverBase = docStyle.getPropertyValue('--dbp-override-hover-base');
-        hoverBaseCheck = hoverBase ? true : false;
-        const hoverText = docStyle.getPropertyValue('--dbp-override-hover-text');
-        hoverTextCheck = hoverText ? true : false;
-    }
-
-    let hoverTextStyle = css``;
-    let hoverChevronStyle = css``;
-    let hoverBaseStyle = css``;
-
-    if (hoverTextCheck) {
-        hoverTextStyle = css`
-            color: var(--dbp-hover-text);
-            border-color: var(--dbp-hover-text);
-        `;
-        hoverChevronStyle = css`
-            background-color: var(--dbp-hover-text);
-        `;
-    }
-
-    if (hoverBaseCheck) {
-        hoverBaseStyle = css`
-            background-color: var(--dbp-hover-base);
-        `;
-    }
     // language=css
     return css`
         .int-link-external, .int-link-internal, .link, .link-without-hover {
@@ -1176,8 +1132,9 @@ export function getLinkCss() {
         }
 
         .int-link-external:hover, .int-link-internal:hover, .link:hover {
-            ${hoverTextStyle}
-            ${hoverBaseStyle}
+            color: var(--dbp-hover-text);
+            border-color: var(--dbp-hover-text);
+            background-color: var(--dbp-hover-base);
         }
 
         .int-link-external:after, .int-link-internal:after, .link:after, .link-without-hover:after {
@@ -1187,7 +1144,7 @@ export function getLinkCss() {
             mask-image: url('data:image/svg+xml;charset=utf-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Ebene_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20viewBox%3D%220%200%2022.7%2062.4%22%20style%3D%22enable-background%3Anew%200%200%2022.7%2062.4%3B%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cg%20transform%3D%22translate%28-382.21%20-336.98%29%22%3E%0A%09%3Cg%3E%0A%09%09%3Cpath%20d%3D%22M386.9%2C380.5c-0.2%2C0-0.4-0.1-0.6-0.3c-0.3-0.3-0.3-0.8%2C0.1-1.1l12.5-10.9l-12.5-10.9c-0.3-0.3-0.4-0.8-0.1-1.1%0A%09%09%09c0.3-0.3%2C0.8-0.4%2C1.1-0.1l13.1%2C11.5c0.2%2C0.2%2C0.3%2C0.4%2C0.3%2C0.6s-0.1%2C0.5-0.3%2C0.6l-13.1%2C11.5C387.3%2C380.4%2C387.1%2C380.5%2C386.9%2C380.5z%22%0A%09%09%09%2F%3E%0A%09%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A');
             -webkit-mask-repeat: no-repeat;
             mask-repeat: no-repeat;
-            -webkit-mask-position: center center;
+            -webkit-mask-position: center -2px;
             mask-position: center center;
             margin: 0 2px 0 4px;
             padding: 0 0 0.25% 0;
@@ -1196,7 +1153,7 @@ export function getLinkCss() {
         }
 
         .int-link-external:hover::after, .int-link-internal:hover::after, .link:hover::after{
-            ${hoverChevronStyle}
+            background-color: var(--dbp-hover-text, var(--dbp-text-dark));
         }
     `;
 }
-- 
GitLab