From e7dd34d3237a428ad8d42dbd45650b6bd92243d8 Mon Sep 17 00:00:00 2001 From: Olivier Date: Fri, 26 Sep 2025 20:30:23 -0400 Subject: [PATCH] refactor: replace 'accent' with 'hover-text' for consistency in color properties --- README.md | 8 ++++---- main.js | 15 ++++++++++++++- main.ts | 17 ++++++++++++++++- styles.css | 40 ++++++++++++++++++++-------------------- 4 files changed, 54 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 543eefb..fae8131 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Add color properties using YAML syntax: layout: default bg: #1a1a1a text: #ffffff -accent: #ff6b6b +hover-text: #ff6b6b border: #333333 [[Home]] [GitHub](https://github.com) @@ -96,8 +96,8 @@ border: #333333 ### Global Color Variables - `bg`: Background color - `text`: Text color -- `accent`: Hover/accent color - `border`: Border color +- `hover-text`: Hover text color - `hover-bg`: Hover background - `hover-border`: Hover border color - `font`: Font family @@ -124,7 +124,7 @@ external-font: "Georgia" - `{type}-bg`: Background color - `{type}-border`: Border color - `{type}-font`: Font family -- `{type}-accent`: Hover text color +- `{type}-hover-text`: Hover text color - `{type}-hover-bg`: Hover background - `{type}-hover-border`: Hover border color @@ -136,7 +136,7 @@ external-font: "Georgia" layout: horizon bg: linear-gradient(45deg, #667eea, #764ba2) text: white -accent: #ffd700 +hover-text: #ffd700 [[Dashboard]] [Projects](https://github.com) ``` diff --git a/main.js b/main.js index b9ab40c..f693d30 100644 --- a/main.js +++ b/main.js @@ -57,7 +57,11 @@ var MenuPlugin = class extends import_obsidian.Plugin { const container = el.createEl("div", { cls: `menu-container ${finalLayout}` }); if (Object.keys(colors).length > 0) { for (const [key, value] of Object.entries(colors)) { - container.style.setProperty(`--${key}`, value); + let cssKey = key.replace(/accent/g, "hover-text"); + container.style.setProperty(`--${cssKey}`, value); + } + if (colors["hover-text"]) { + container.style.setProperty("--hover-text", colors["hover-text"]); } } for (const link of links) { @@ -73,6 +77,14 @@ var MenuPlugin = class extends import_obsidian.Plugin { attr: { "data-href": href } }); a.addClass("menu-internal-link"); + a.style.cursor = "pointer"; + a.addEventListener("click", (e) => { + e.preventDefault(); + const vaultName = this.app.vault.getName(); + const encodedFile = encodeURIComponent(href); + const uri = `obsidian://open?vault=${encodeURIComponent(vaultName)}&file=${encodedFile}`; + window.open(uri); + }); } else if (link.match(/^\[.*\]\(.*\)$/)) { const match = link.match(/^\[(.*)\]\((.*)\)$/); if (match) { @@ -115,3 +127,4 @@ var MenuPlugin = class extends import_obsidian.Plugin { }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = {}); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAndXJsJztcclxuXHJcbmNvbnN0IHsgc2hlbGwgfSA9IHJlcXVpcmUoJ2VsZWN0cm9uJyk7XHJcblxyXG4vLyBTaW1wbGUgWUFNTCBwYXJzZXIgZm9yIGNvbG9yIHByb3BlcnRpZXNcclxuZnVuY3Rpb24gcGFyc2VZQU1MKHRleHQ6IHN0cmluZykge1xyXG5cdGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xyXG5cdGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgnXFxuJyk7XHJcblx0Zm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XHJcblx0XHRjb25zdCB0cmltbWVkID0gbGluZS50cmltKCk7XHJcblx0XHRpZiAodHJpbW1lZCAmJiB0cmltbWVkLmluY2x1ZGVzKCc6JykpIHtcclxuXHRcdFx0Y29uc3QgW2tleSwgLi4udmFsdWVQYXJ0c10gPSB0cmltbWVkLnNwbGl0KCc6Jyk7XHJcblx0XHRcdGNvbnN0IHZhbHVlID0gdmFsdWVQYXJ0cy5qb2luKCc6JykudHJpbSgpO1xyXG5cdFx0XHRpZiAoa2V5ICYmIHZhbHVlKSB7XHJcblx0XHRcdFx0cmVzdWx0W2tleS50cmltKCldID0gdmFsdWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudVBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XHJcblx0YXN5bmMgb25sb2FkKCkge1xyXG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKCdtZW51JywgKHNvdXJjZSwgZWwsIGN0eCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsaW5lcyA9IHNvdXJjZS50cmltKCkuc3BsaXQoJ1xcbicpO1xyXG5cdFx0XHRsZXQgbGF5b3V0ID0gJyc7XHJcblx0XHRcdGxldCBjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuXHRcdFx0Y29uc3QgbGlua3M6IHN0cmluZ1tdID0gW107XHJcblx0XHRcdFxyXG5cdFx0XHQvLyBQYXJzZSBZQU1MLWxpa2UgcHJvcGVydGllcyBhbmQgbGlua3NcclxuXHRcdFx0Zm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XHJcblx0XHRcdFx0Y29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpO1xyXG5cdFx0XHRcdGlmICh0cmltbWVkLnN0YXJ0c1dpdGgoJ2xheW91dDonKSB8fCB0cmltbWVkLnN0YXJ0c1dpdGgoJ2NsYXNzOicpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjb2xvbkluZGV4ID0gdHJpbW1lZC5pbmRleE9mKCc6Jyk7XHJcblx0XHRcdFx0XHRsYXlvdXQgPSB0cmltbWVkLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHJpbW1lZC5pbmNsdWRlcygnOicpICYmICF0cmltbWVkLnN0YXJ0c1dpdGgoJ1snKSAmJiAhdHJpbW1lZC5zdGFydHNXaXRoKCdbWycpKSB7XHJcblx0XHRcdFx0XHQvLyBQYXJzZSBjb2xvciBwcm9wZXJ0aWVzXHJcblx0XHRcdFx0XHRjb25zdCBba2V5LCAuLi52YWx1ZVBhcnRzXSA9IHRyaW1tZWQuc3BsaXQoJzonKTtcclxuXHRcdFx0XHRcdGNvbnN0IHZhbHVlID0gdmFsdWVQYXJ0cy5qb2luKCc6JykudHJpbSgpO1xyXG5cdFx0XHRcdFx0aWYgKGtleSAmJiB2YWx1ZSAmJiAha2V5LmluY2x1ZGVzKCcvLycpICYmICFrZXkuaW5jbHVkZXMoJ2h0dHAnKSkge1xyXG5cdFx0XHRcdFx0XHRjb2xvcnNba2V5LnRyaW0oKV0gPSB2YWx1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRyaW1tZWQgJiYgIXRyaW1tZWQuaW5jbHVkZXMoJzonKSkge1xyXG5cdFx0XHRcdFx0bGlua3MucHVzaCh0cmltbWVkKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRyaW1tZWQuc3RhcnRzV2l0aCgnWycpKSB7XHJcblx0XHRcdFx0XHRsaW5rcy5wdXNoKHRyaW1tZWQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Y29uc3QgZmluYWxMYXlvdXQgPSBsYXlvdXQgfHwgJ2RlZmF1bHQnO1xyXG5cdFx0XHRjb25zdCBjb250YWluZXIgPSBlbC5jcmVhdGVFbCgnZGl2JywgeyBjbHM6IGBtZW51LWNvbnRhaW5lciAke2ZpbmFsTGF5b3V0fWAgfSk7XHJcblx0XHRcdFxyXG5cdFx0XHQvLyBBcHBseSBjdXN0b20gY29sb3JzIGFzIENTUyB2YXJpYWJsZXNcclxuXHRcdFx0aWYgKE9iamVjdC5rZXlzKGNvbG9ycykubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbG9ycykpIHtcclxuXHRcdFx0XHRcdC8vIFJlcGxhY2UgJ2FjY2VudCcgd2l0aCAnaG92ZXItdGV4dCcgZm9yIGNvbnNpc3RlbmN5XHJcblx0XHRcdFx0XHRsZXQgY3NzS2V5ID0ga2V5LnJlcGxhY2UoL2FjY2VudC9nLCAnaG92ZXItdGV4dCcpO1xyXG5cdFx0XHRcdFx0Y29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KGAtLSR7Y3NzS2V5fWAsIHZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gRXhhbXBsZTogZW5zdXJlIGhvdmVyLXRleHQgaXMgc2V0IGFuZCBhZGQgYSBjb21tZW50IGZvciB1c2FnZVxyXG5cdFx0XHRcdGlmIChjb2xvcnNbJ2hvdmVyLXRleHQnXSkge1xyXG5cdFx0XHRcdFx0Y29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCctLWhvdmVyLXRleHQnLCBjb2xvcnNbJ2hvdmVyLXRleHQnXSk7XHJcblx0XHRcdFx0XHQvLyBUbyB1c2UgaW4gQ1NTOiBhOmhvdmVyIHsgY29sb3I6IHZhcigtLWhvdmVyLXRleHQpOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcbiBcclxuXHRcdFx0Ly8gUHJvY2VzcyBlYWNoIGxpbmtcclxuXHRcdFx0Zm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XHJcblx0XHRcdFx0aWYgKGxpbmsuc3RhcnRzV2l0aCgnW1snKSAmJiBsaW5rLmVuZHNXaXRoKCddXScpKSB7XHJcblx0XHRcdFx0XHQvLyBJbnRlcm5hbCBsaW5rXHJcblx0XHRcdFx0XHRjb25zdCBsaW5rQ29udGVudCA9IGxpbmsuc2xpY2UoMiwgLTIpO1xyXG5cdFx0XHRcdFx0bGV0IGhyZWYgPSBsaW5rQ29udGVudDtcclxuXHRcdFx0XHRcdGxldCB0ZXh0ID0gbGlua0NvbnRlbnQ7XHJcblx0XHRcdFx0XHRpZiAobGlua0NvbnRlbnQuaW5jbHVkZXMoJ3wnKSkge1xyXG5cdFx0XHRcdFx0XHRbaHJlZiwgdGV4dF0gPSBsaW5rQ29udGVudC5zcGxpdCgnfCcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3QgYSA9IGNvbnRhaW5lci5jcmVhdGVFbCgnYScsIHtcclxuXHRcdFx0XHRcdFx0dGV4dDogdGV4dCxcclxuXHRcdFx0XHRcdFx0YXR0cjogeyAnZGF0YS1ocmVmJzogaHJlZiB9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdGEuYWRkQ2xhc3MoJ21lbnUtaW50ZXJuYWwtbGluaycpO1xyXG5cdFx0XHRcdFx0YS5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XHJcblx0XHRcdFx0XHRhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcclxuXHRcdFx0XHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB2YXVsdE5hbWUgPSB0aGlzLmFwcC52YXVsdC5nZXROYW1lKCk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGVuY29kZWRGaWxlID0gZW5jb2RlVVJJQ29tcG9uZW50KGhyZWYpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB1cmkgPSBgb2JzaWRpYW46Ly9vcGVuP3ZhdWx0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhdWx0TmFtZSl9JmZpbGU9JHtlbmNvZGVkRmlsZX1gO1xyXG5cdFx0XHRcdFx0XHR3aW5kb3cub3Blbih1cmkpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChsaW5rLm1hdGNoKC9eXFxbLipcXF1cXCguKlxcKSQvKSkge1xyXG5cdFx0XHRcdFx0Ly8gRXh0ZXJuYWwgbGlua1xyXG5cdFx0XHRcdFx0Y29uc3QgbWF0Y2ggPSBsaW5rLm1hdGNoKC9eXFxbKC4qKVxcXVxcKCguKilcXCkkLyk7XHJcblx0XHRcdFx0XHRpZiAobWF0Y2gpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdGV4dCA9IG1hdGNoWzFdO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB1cmwgPSBtYXRjaFsyXTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYSA9IGNvbnRhaW5lci5jcmVhdGVFbCgnYScsIHtcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiB0ZXh0LFxyXG5cdFx0XHRcdFx0XHRcdGF0dHI6IHVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykgPyB7fSA6IHsgaHJlZjogdXJsLCB0YXJnZXQ6ICdfYmxhbmsnLCByZWw6ICdub29wZW5lciBub3JlZmVycmVyJyB9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRhLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJztcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC8vIEFkZCBhcHByb3ByaWF0ZSBjbGFzcyBiYXNlZCBvbiBsaW5rIHR5cGVcclxuXHRcdFx0XHRcdFx0aWYgKHVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcclxuXHRcdFx0XHRcdFx0XHRhLmFkZENsYXNzKCdtZW51LWZpbGUtbGluaycpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGEuYWRkQ2xhc3MoJ21lbnUtZXh0ZXJuYWwtbGluaycpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ29udmVydCBmaWxlIFVSTCB0byBwYXRoIGFuZCBoYW5kbGUgV2luZG93cyBwYXRoc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgZmlsZVBhdGggPSBkZWNvZGVVUklDb21wb25lbnQodXJsLnN1YnN0cmluZyg3KSk7IC8vIFJlbW92ZSAnZmlsZTovLydcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIFdpbmRvd3MgcGF0aHMgdGhhdCBzdGFydCB3aXRoIC9DOlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoZmlsZVBhdGguc3RhcnRzV2l0aCgnLycpICYmIGZpbGVQYXRoLmNoYXJBdCgyKSA9PT0gJzonKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoMSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ09wZW5pbmcgZmlsZSBwYXRoOicsIGZpbGVQYXRoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2hlbGwub3BlblBhdGgoZmlsZVBhdGgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcignRmFpbGVkIHRvIG9wZW4gZmlsZTonLCBlcnJvcik7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0b251bmxvYWQoKSB7XHJcblx0XHQvLyBDbGVhbnVwIGlmIG5lZWRlZFxyXG5cdH1cclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQXVCO0FBR3ZCLElBQU0sRUFBRSxNQUFNLElBQUksUUFBUSxVQUFVO0FBbUJwQyxJQUFxQixhQUFyQixjQUF3Qyx1QkFBTztBQUFBLEVBQzlDLE1BQU0sU0FBUztBQUNkLFNBQUssbUNBQW1DLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUTtBQUNwRSxZQUFNLFFBQVEsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQ3RDLFVBQUksU0FBUztBQUNiLFVBQUksU0FBaUMsQ0FBQztBQUN0QyxZQUFNLFFBQWtCLENBQUM7QUFHekIsaUJBQVcsUUFBUSxPQUFPO0FBQ3pCLGNBQU0sVUFBVSxLQUFLLEtBQUs7QUFDMUIsWUFBSSxRQUFRLFdBQVcsU0FBUyxLQUFLLFFBQVEsV0FBVyxRQUFRLEdBQUc7QUFDbEUsZ0JBQU0sYUFBYSxRQUFRLFFBQVEsR0FBRztBQUN0QyxtQkFBUyxRQUFRLFVBQVUsYUFBYSxDQUFDLEVBQUUsS0FBSztBQUFBLFFBQ2pELFdBQVcsUUFBUSxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLFdBQVcsSUFBSSxHQUFHO0FBRTFGLGdCQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsSUFBSSxRQUFRLE1BQU0sR0FBRztBQUM5QyxnQkFBTSxRQUFRLFdBQVcsS0FBSyxHQUFHLEVBQUUsS0FBSztBQUN4QyxjQUFJLE9BQU8sU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLEtB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 diff --git a/main.ts b/main.ts index 2480fec..1bf7e6c 100644 --- a/main.ts +++ b/main.ts @@ -54,7 +54,14 @@ export default class MenuPlugin extends Plugin { // Apply custom colors as CSS variables if (Object.keys(colors).length > 0) { for (const [key, value] of Object.entries(colors)) { - container.style.setProperty(`--${key}`, value); + // Replace 'accent' with 'hover-text' for consistency + let cssKey = key.replace(/accent/g, 'hover-text'); + container.style.setProperty(`--${cssKey}`, value); + } + // Example: ensure hover-text is set and add a comment for usage + if (colors['hover-text']) { + container.style.setProperty('--hover-text', colors['hover-text']); + // To use in CSS: a:hover { color: var(--hover-text); } } } @@ -73,6 +80,14 @@ export default class MenuPlugin extends Plugin { attr: { 'data-href': href } }); a.addClass('menu-internal-link'); + a.style.cursor = 'pointer'; + a.addEventListener('click', (e) => { + e.preventDefault(); + const vaultName = this.app.vault.getName(); + const encodedFile = encodeURIComponent(href); + const uri = `obsidian://open?vault=${encodeURIComponent(vaultName)}&file=${encodedFile}`; + window.open(uri); + }); } else if (link.match(/^\[.*\]\(.*\)$/)) { // External link const match = link.match(/^\[(.*)\]\((.*)\)$/); diff --git a/styles.css b/styles.css index 376ed52..400bc5c 100644 --- a/styles.css +++ b/styles.css @@ -54,7 +54,7 @@ font-family: var(--font, inherit); &:hover { - color: var(--accent, var(--text-accent)); + color: var(--hover-text, var(--accent, var(--text-accent))); border-color: var(--hover-border, var(--accent, var(--text-accent))); } @@ -65,7 +65,7 @@ font-family: var(--internal-font, var(--font, inherit)); &:hover { - color: var(--internal-accent, var(--accent, var(--text-accent))); + color: var(--internal-hover-text, var(--internal-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--internal-hover-bg, var(--hover-bg, transparent)); } @@ -78,7 +78,7 @@ font-family: var(--external-font, var(--font, inherit)); &:hover { - color: var(--external-accent, var(--accent, var(--text-accent))); + color: var(--external-hover-text, var(--external-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--external-hover-bg, var(--hover-bg, transparent)); } @@ -91,7 +91,7 @@ font-family: var(--file-font, var(--font, inherit)); &:hover { - color: var(--file-accent, var(--accent, var(--text-accent))); + color: var(--file-hover-text, var(--file-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--file-hover-bg, var(--hover-bg, transparent)); } @@ -132,7 +132,7 @@ &:hover { background-color: var(--hover-bg, var(--background-secondary)); - color: var(--accent, var(--text-accent)); + color: var(--hover-text, var(--accent, var(--text-accent))); } &.menu-internal-link { @@ -140,7 +140,7 @@ font-family: var(--internal-font, var(--font, inherit)); &:hover { - color: var(--internal-accent, var(--internal-hover, var(--text-accent-hover))); + color: var(--internal-hover-text, var(--internal-accent, var(--hover-text, var(--internal-hover, var(--text-accent-hover))))); background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-secondary))); } } @@ -150,7 +150,7 @@ font-family: var(--external-font, var(--font, inherit)); &:hover { - color: var(--external-accent, var(--external-hover, var(--text-normal))); + color: var(--external-hover-text, var(--external-accent, var(--hover-text, var(--external-hover, var(--text-normal))))); background-color: var(--external-hover-bg, var(--hover-bg, var(--background-secondary))); } } @@ -160,7 +160,7 @@ font-family: var(--file-font, var(--font, inherit)); &:hover { - color: var(--file-accent, var(--file-hover, var(--text-normal))); + color: var(--file-hover-text, var(--file-accent, var(--hover-text, var(--file-hover, var(--text-normal))))); background-color: var(--file-hover-bg, var(--hover-bg, var(--background-secondary))); } } @@ -189,7 +189,7 @@ &:hover { background-color: var(--hover-bg, var(--background-secondary)); - color: var(--accent, var(--text-accent)); + color: var(--hover-text, var(--accent, var(--text-accent))); border: 1px solid var(--hover-border, var(--accent, var(--text-accent))); } @@ -200,7 +200,7 @@ font-family: var(--internal-font, var(--font, inherit)); &:hover { - color: var(--internal-accent, var(--accent, var(--text-accent))); + color: var(--internal-hover-text, var(--internal-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-secondary))); } @@ -213,7 +213,7 @@ font-family: var(--external-font, var(--font, inherit)); &:hover { - color: var(--external-accent, var(--accent, var(--text-accent))); + color: var(--external-hover-text, var(--external-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--external-hover-bg, var(--hover-bg, var(--background-secondary))); } @@ -226,7 +226,7 @@ font-family: var(--file-font, var(--font, inherit)); &:hover { - color: var(--file-accent, var(--accent, var(--text-accent))); + color: var(--file-hover-text, var(--file-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--file-hover-bg, var(--hover-bg, var(--background-secondary))); } @@ -257,7 +257,7 @@ transition: 250ms; &:hover { - color: var(--accent, var(--orange-500, darkorange)); + color: var(--hover-text, var(--accent, var(--orange-500, darkorange))); border: 1px solid var(--hover-border, var(--accent, var(--orange-500, darkorange))); } @@ -268,7 +268,7 @@ font-family: var(--internal-font, var(--font, 'Space Grotesk', Inter, sans-serif)); &:hover { - color: var(--internal-accent, var(--accent, var(--orange-500, darkorange))); + color: var(--internal-hover-text, var(--internal-accent, var(--hover-text, var(--accent, var(--orange-500, darkorange))))); border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange)))); background-color: var(--internal-hover-bg, var(--hover-bg, transparent)); } @@ -281,7 +281,7 @@ font-family: var(--external-font, var(--font, 'Space Grotesk', Inter, sans-serif)); &:hover { - color: var(--external-accent, var(--accent, var(--orange-500, darkorange))); + color: var(--external-hover-text, var(--external-accent, var(--hover-text, var(--accent, var(--orange-500, darkorange))))); border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange)))); background-color: var(--external-hover-bg, var(--hover-bg, transparent)); } @@ -294,7 +294,7 @@ font-family: var(--file-font, var(--font, 'Space Grotesk', Inter, sans-serif)); &:hover { - color: var(--file-accent, var(--accent, var(--orange-500, darkorange))); + color: var(--file-hover-text, var(--file-accent, var(--hover-text, var(--accent, var(--orange-500, darkorange))))); border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--orange-500, darkorange)))); background-color: var(--file-hover-bg, var(--hover-bg, transparent)); } @@ -326,7 +326,7 @@ font-family: var(--font, inherit); &:hover { - color: var(--accent, var(--text-accent)); + color: var(--hover-text, var(--accent, var(--text-accent))); border-color: var(--hover-border, var(--accent, var(--text-accent))); background-color: var(--hover-bg, var(--background-modifier-hover)); } @@ -338,7 +338,7 @@ font-family: var(--internal-font, var(--font, inherit)); &:hover { - color: var(--internal-accent, var(--accent, var(--text-accent))); + color: var(--internal-hover-text, var(--internal-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--internal-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--internal-hover-bg, var(--hover-bg, var(--background-modifier-hover))); } @@ -351,7 +351,7 @@ font-family: var(--external-font, var(--font, inherit)); &:hover { - color: var(--external-accent, var(--accent, var(--text-accent))); + color: var(--external-hover-text, var(--external-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--external-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--external-hover-bg, var(--hover-bg, var(--background-modifier-hover))); } @@ -364,7 +364,7 @@ font-family: var(--file-font, var(--font, inherit)); &:hover { - color: var(--file-accent, var(--accent, var(--text-accent))); + color: var(--file-hover-text, var(--file-accent, var(--hover-text, var(--accent, var(--text-accent))))); border-color: var(--file-hover-border, var(--hover-border, var(--accent, var(--text-accent)))); background-color: var(--file-hover-bg, var(--hover-bg, var(--background-modifier-hover))); }