diff --git a/src/plugin/main.ts b/src/plugin/main.ts
index d4a4782..a4bec7f 100644
--- a/src/plugin/main.ts
+++ b/src/plugin/main.ts
@@ -9,6 +9,7 @@ import highlighterMenu from "src/ui/highlighterMenu";
import { createHighlighterIcons } from "src/icons/customIcons";
import { createStyles } from "src/utils/createStyles";
+import { log } from "console";
export default class HighlightrPlugin extends Plugin {
app: App;
editor: Editor;
@@ -33,12 +34,23 @@ export default class HighlightrPlugin extends Plugin {
name: "Open Highlightr",
icon: "highlightr-pen",
editorCallback: (editor) => {
- !document.querySelector(".menu.highlighterContainer")
- ? highlighterMenu(this.app, this, this.settings, editor)
- : true;
+ let obj = document.querySelector(".colorboard");
+ if (obj == null) {
+ highlighterMenu(this.app, this, this.settings, editor)
+ } else {
+ obj.parentNode.removeChild(obj);
+ }
},
});
+ let rightBarDOM = document.querySelector(".workspace-split, .mod-horizontal, .mod-right-split");
+ rightBarDOM.addEventListener("resize", function (e) {
+ console.log("resize");
+ console.log(e);
+
+ })
+
+
addEventListener("Highlightr-NewCommand", () => {
this.reloadStyles(this.settings);
this.generateCommands(this.editor);
@@ -117,11 +129,11 @@ export default class HighlightrPlugin extends Plugin {
}
(selectedText && sufFirst === " ") ||
- (!selectedText && sufFirst === " ")
+ (!selectedText && sufFirst === " ")
? editor.replaceSelection(`${prefix}${selectedText}${suffix}`)
: selectedText && sufFirst !== " "
- ? editor.replaceSelection(`${prefix}${selectedText}${suffix} `)
- : editor.replaceSelection(`${prefix}${selectedText}${suffix} `);
+ ? editor.replaceSelection(`${prefix}${selectedText}${suffix} `)
+ : editor.replaceSelection(`${prefix}${selectedText}${suffix} `);
return setCursor(1);
};
diff --git a/src/ui/highlighterMenu.ts b/src/ui/highlighterMenu.ts
index 80f1648..fcec89b 100644
--- a/src/ui/highlighterMenu.ts
+++ b/src/ui/highlighterMenu.ts
@@ -1,5 +1,5 @@
import type HighlightrPlugin from "src/plugin/main";
-import { App, Menu, Notice, Editor } from "obsidian";
+import { App, Menu, Notice, Editor, ButtonComponent } from "obsidian";
import { HighlightrSettings } from "src/settings/settingsData";
import { Coords } from "src/settings/types";
@@ -7,26 +7,20 @@ const highlighterMenu = (
app: App,
plugin: HighlightrPlugin,
settings: HighlightrSettings,
- editor: Editor,
- event: MouseEvent
+ editor: Editor
): void => {
if (editor && editor.hasFocus()) {
const cursor = editor.getCursor("from");
let coords: Coords;
const editorCli = editor as any;
- const menu = new Menu(plugin.app).addItem((item) => {
- const itemDom = (item as any).dom as HTMLElement;
- itemDom.setAttribute("style", "display: none");
- });
-
- const menuDom = (menu as any).dom as HTMLElement;
- menuDom.addClass("highlighterContainer");
+ const colorboard = createEl("div");
+ colorboard.setAttribute("class", "colorboard")
settings.highlighterOrder.forEach((highlighter) => {
- const colorButton = menuDom.createEl("div");
+ const colorButton = createEl('div')
+ colorboard.appendChild(colorButton)
colorButton.setAttribute("id", `${highlighter}`);
-
colorButton.addEventListener("click", function (event) {
(app as any).commands.executeCommandById(
`highlightr-plugin:${highlighter}`
@@ -58,11 +52,18 @@ const highlighterMenu = (
} else {
return;
}
+ console.log("ffzdebug colorboard showAtPosition");
+ console.log(colorboard);
- menu.showAtPosition({
- x: coords.right + 25,
- y: coords.top + 20,
- });
+ // colorboard.style.left = `${coords.right + 25}px`;
+ // colorboard.style.top = `${coords.top + 20}px`;
+
+ // menu.showAtPosition({
+ // x: coords.right + 25,
+ // y: coords.top + 20,
+ // });
+
+ document.body.appendChild(colorboard);
} else {
new Notice("Focus must be in editor");
}
diff --git a/styles.css b/styles.css
index 6f1d314..8f715c5 100644
--- a/styles.css
+++ b/styles.css
@@ -5,31 +5,23 @@
.highlightr-lowlight .markdown-preview-view mark {
--lowlight-background: var(--background-primary);
border-radius: 0;
- background-image: linear-gradient(
- 360deg,
- rgba(255, 255, 255, 0) 40%,
- var(--lowlight-background) 40%
- ) !important;
+ background-image: linear-gradient(360deg,
+ rgba(255, 255, 255, 0) 40%,
+ var(--lowlight-background) 40%) !important;
}
.highlightr-lowlight .workspace-split.mod-left-split mark,
.highlightr-lowlight .workspace-split.mod-left-split span.cm-highlight,
-.highlightr-lowlight
- .workspace-split.mod-left-split
- .markdown-preview-view
- mark,
+.highlightr-lowlight .workspace-split.mod-left-split .markdown-preview-view mark,
.highlightr-lowlight .workspace-split.mod-right-split mark,
.highlightr-lowlight .workspace-split.mod-right-split span.cm-highlight,
-.highlightr-lowlight
- .workspace-split.mod-right-split
- .markdown-preview-view
- mark {
+.highlightr-lowlight .workspace-split.mod-right-split .markdown-preview-view mark {
--lowlight-background: var(--background-secondary);
}
.highlightr-lowlight .admonition-content mark,
.highlightr-lowlight .admonition-content span.cm-highlight,
-.highlightr-lowlight .admonition-content > .markdown-preview-view mark {
+.highlightr-lowlight .admonition-content>.markdown-preview-view mark {
--lowlight-background: var(--background-primary-alt);
}
@@ -40,31 +32,23 @@
--floating-background: var(--background-primary);
border-radius: 0;
padding-bottom: 5px;
- background-image: linear-gradient(
- 360deg,
- rgba(255, 255, 255, 0) 28%,
- var(--floating-background) 28%
- ) !important;
+ background-image: linear-gradient(360deg,
+ rgba(255, 255, 255, 0) 28%,
+ var(--floating-background) 28%) !important;
}
.highlightr-floating .workspace-split.mod-left-split mark,
.highlightr-floating .workspace-split.mod-left-split span.cm-highlight,
-.highlightr-floating
- .workspace-split.mod-left-split
- .markdown-preview-view
- mark,
+.highlightr-floating .workspace-split.mod-left-split .markdown-preview-view mark,
.highlightr-floating .workspace-split.mod-right-split mark,
.highlightr-floating .workspace-split.mod-right-split span.cm-highlight,
-.highlightr-floating
- .workspace-split.mod-right-split
- .markdown-preview-view
- mark {
+.highlightr-floating .workspace-split.mod-right-split .markdown-preview-view mark {
--floating-background: var(--background-secondary);
}
.highlightr-floating .admonition-content mark,
.highlightr-floating .admonition-content span.cm-highlight,
-.highlightr-floating .admonition-content > .markdown-preview-view mark {
+.highlightr-floating .admonition-content>.markdown-preview-view mark {
--floating-background: var(--background-primary-alt);
}
@@ -88,7 +72,7 @@
font-weight: inherit;
}
-.highlightr-rounded .cm-highlight + span.cm-formatting-highlight {
+.highlightr-rounded .cm-highlight+span.cm-formatting-highlight {
padding-left: 0em;
padding-right: 0.15em;
-webkit-box-decoration-break: clone;
@@ -126,10 +110,7 @@
box-decoration-break: clone;
}
-.highlightr-realistic
- .cm-s-obsidian
- .cm-highlight
- + span.cm-formatting-highlight {
+.highlightr-realistic .cm-s-obsidian .cm-highlight+span.cm-formatting-highlight {
margin: 0 -0.05em 0 0;
padding: 0.15em 0.25em;
border-radius: 0 0.3em 0.8em 0;
@@ -174,12 +155,15 @@ details[open] summary.highlight-summary::before {
0% {
opacity: 0;
}
+
20% {
opacity: 0.9;
}
+
40% {
opacity: 0.95;
}
+
100% {
opacity: 1;
}
@@ -262,14 +246,12 @@ button.HighlightrSettingsButton svg {
grid-gap: 6px;
}
-.modal.mod-settings
- button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonAdd,
+.modal.mod-settings button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonAdd,
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonAdd {
background-color: var(--interactive-accent);
}
-.modal.mod-settings
- button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonDelete,
+.modal.mod-settings button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonDelete,
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonDelete {
background-color: #989cab;
}
@@ -342,7 +324,7 @@ HIGHLIGHTR SUPPORT
color: var(--text-normal);
}
-.pcr-app .pcr-swatches > button {
+.pcr-app .pcr-swatches>button {
padding: 0;
}
@@ -350,7 +332,7 @@ HIGHLIGHTR SUPPORT
margin-right: 0;
}
-.themed-color-wrapper > div {
+.themed-color-wrapper>div {
background: var(--background-primary);
padding: 10px;
display: flex;
@@ -358,7 +340,7 @@ HIGHLIGHTR SUPPORT
border-radius: 4px;
}
-.themed-color-wrapper > div + div {
+.themed-color-wrapper>div+div {
margin-top: 6px;
}
@@ -366,13 +348,13 @@ HIGHLIGHTR SUPPORT
display: block;
}
-.themed-color-wrapper .pickr-reset > button {
+.themed-color-wrapper .pickr-reset>button {
margin: 0 0 0 10px;
padding: 9px;
line-height: 1;
}
-.themed-color-wrapper .pickr-reset > button > svg {
+.themed-color-wrapper .pickr-reset>button>svg {
display: block;
}
@@ -382,12 +364,14 @@ HIGHLIGHTR SUPPORT
overflow: visible;
transform: translateY(0);
}
+
.pickr * {
box-sizing: border-box;
outline: none;
border: none;
-webkit-appearance: none;
}
+
.pickr .pcr-button {
position: relative;
height: 2em;
@@ -397,11 +381,11 @@ HIGHLIGHTR SUPPORT
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
"Helvetica Neue", Arial, sans-serif;
border-radius: 0.15em;
- background: url('data:image/svg+xml;utf8, ')
- no-repeat center;
+ background: url('data:image/svg+xml;utf8, ') no-repeat center;
background-size: 0;
transition: all 0.3s;
}
+
.pickr .pcr-button::before {
position: absolute;
content: "";
@@ -414,9 +398,11 @@ HIGHLIGHTR SUPPORT
border-radius: 0.15em;
z-index: -1;
}
+
.pickr .pcr-button::before {
z-index: initial;
}
+
.pickr .pcr-button::after {
position: absolute;
content: "";
@@ -428,18 +414,23 @@ HIGHLIGHTR SUPPORT
background: var(--pcr-color);
border-radius: 0.15em;
}
+
.pickr .pcr-button.clear {
background-size: 70%;
}
+
.pickr .pcr-button.clear::before {
opacity: 0;
}
+
.pickr .pcr-button.clear:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
}
+
.pickr .pcr-button.disabled {
cursor: not-allowed;
}
+
.pickr *,
.pcr-app * {
box-sizing: border-box;
@@ -447,6 +438,7 @@ HIGHLIGHTR SUPPORT
border: none;
-webkit-appearance: none;
}
+
.pickr input:focus,
.pickr input.pcr-active,
.pickr button:focus,
@@ -457,18 +449,21 @@ HIGHLIGHTR SUPPORT
.pcr-app button.pcr-active {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
}
+
.pickr .pcr-palette,
.pickr .pcr-slider,
.pcr-app .pcr-palette,
.pcr-app .pcr-slider {
transition: box-shadow 0.3s;
}
+
.pickr .pcr-palette:focus,
.pickr .pcr-slider:focus,
.pcr-app .pcr-palette:focus,
.pcr-app .pcr-slider:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25);
}
+
.pcr-app {
position: fixed;
display: flex;
@@ -485,19 +480,23 @@ HIGHLIGHTR SUPPORT
left: 0;
top: 0;
}
+
.pcr-app.visible {
transition: opacity 0.3s;
visibility: visible;
opacity: 1;
}
+
.pcr-app .pcr-swatches {
display: flex;
flex-wrap: wrap;
margin-top: 0.75em;
}
+
.pcr-app .pcr-swatches.pcr-last {
margin: 0;
}
+
@supports (display: grid) {
.pcr-app .pcr-swatches {
display: grid;
@@ -505,7 +504,8 @@ HIGHLIGHTR SUPPORT
grid-template-columns: repeat(auto-fit, 1.75em);
}
}
-.pcr-app .pcr-swatches > button {
+
+.pcr-app .pcr-swatches>button {
font-size: 1em;
position: relative;
width: calc(1.75em - 5px);
@@ -520,7 +520,8 @@ HIGHLIGHTR SUPPORT
background: transparent;
z-index: 1;
}
-.pcr-app .pcr-swatches > button::before {
+
+.pcr-app .pcr-swatches>button::before {
position: absolute;
content: "";
top: 0;
@@ -532,7 +533,8 @@ HIGHLIGHTR SUPPORT
border-radius: 0.15em;
z-index: -1;
}
-.pcr-app .pcr-swatches > button::after {
+
+.pcr-app .pcr-swatches>button::after {
content: "";
position: absolute;
top: 0;
@@ -544,21 +546,26 @@ HIGHLIGHTR SUPPORT
border-radius: 0.15em;
box-sizing: border-box;
}
-.pcr-app .pcr-swatches > button:hover {
+
+.pcr-app .pcr-swatches>button:hover {
filter: brightness(1.05);
}
-.pcr-app .pcr-swatches > button:not(.pcr-active) {
+
+.pcr-app .pcr-swatches>button:not(.pcr-active) {
box-shadow: none;
}
+
.pcr-app .pcr-interaction {
display: flex;
flex-wrap: wrap;
align-items: center;
margin: 0 -0.2em 0 -0.2em;
}
-.pcr-app .pcr-interaction > * {
+
+.pcr-app .pcr-interaction>* {
margin: 0 0.2em;
}
+
.pcr-app .pcr-interaction input {
letter-spacing: 0.07em;
font-size: 0.75em;
@@ -571,13 +578,16 @@ HIGHLIGHTR SUPPORT
padding: 0.45em 0.5em;
margin-top: 0.75em;
}
+
.pcr-app .pcr-interaction input:hover {
filter: brightness(0.975);
}
+
.pcr-app .pcr-interaction input:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85),
0 0 0 3px rgba(66, 133, 244, 0.75);
}
+
.pcr-app .pcr-interaction .pcr-result {
color: #75797e;
text-align: left;
@@ -588,46 +598,56 @@ HIGHLIGHTR SUPPORT
background: #f1f3f4;
cursor: text;
}
+
.pcr-app .pcr-interaction .pcr-result::-moz-selection {
background: #4285f4;
color: #fff;
}
+
.pcr-app .pcr-interaction .pcr-result::selection {
background: #4285f4;
color: #fff;
}
+
.pcr-app .pcr-interaction .pcr-type.active {
color: #fff;
background: #4285f4;
}
+
.pcr-app .pcr-interaction .pcr-save,
.pcr-app .pcr-interaction .pcr-cancel,
.pcr-app .pcr-interaction .pcr-clear {
color: #fff;
width: auto;
}
+
.pcr-app .pcr-interaction .pcr-save,
.pcr-app .pcr-interaction .pcr-cancel,
.pcr-app .pcr-interaction .pcr-clear {
color: #fff;
}
+
.pcr-app .pcr-interaction .pcr-save:hover,
.pcr-app .pcr-interaction .pcr-cancel:hover,
.pcr-app .pcr-interaction .pcr-clear:hover {
filter: brightness(0.925);
}
+
.pcr-app .pcr-interaction .pcr-save {
background: #4285f4;
}
+
.pcr-app .pcr-interaction .pcr-clear,
.pcr-app .pcr-interaction .pcr-cancel {
background: #f44250;
}
+
.pcr-app .pcr-interaction .pcr-clear:focus,
.pcr-app .pcr-interaction .pcr-cancel:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85),
0 0 0 3px rgba(244, 66, 80, 0.75);
}
+
.pcr-app .pcr-selection .pcr-picker {
position: absolute;
height: 18px;
@@ -639,6 +659,7 @@ HIGHLIGHTR SUPPORT
-ms-user-select: none;
user-select: none;
}
+
.pcr-app .pcr-selection .pcr-color-palette,
.pcr-app .pcr-selection .pcr-color-chooser,
.pcr-app .pcr-selection .pcr-color-opacity {
@@ -652,23 +673,28 @@ HIGHLIGHTR SUPPORT
cursor: grab;
cursor: -webkit-grab;
}
+
.pcr-app .pcr-selection .pcr-color-palette:active,
.pcr-app .pcr-selection .pcr-color-chooser:active,
.pcr-app .pcr-selection .pcr-color-opacity:active {
cursor: grabbing;
cursor: -webkit-grabbing;
}
+
.pcr-app[data-theme="nano"] {
width: 14.25em;
max-width: 95vw;
}
+
.pcr-app[data-theme="nano"] .pcr-swatches {
margin-top: 0.6em;
padding: 0 0.6em;
}
+
.pcr-app[data-theme="nano"] .pcr-interaction {
padding: 0 0.6em 0.6em 0.6em;
}
+
.pcr-app[data-theme="nano"] .pcr-selection {
display: grid;
grid-gap: 0.6em;
@@ -679,6 +705,7 @@ HIGHLIGHTR SUPPORT
width: 100%;
align-self: flex-start;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview {
grid-area: 2 / 1 / 4 / 1;
height: 100%;
@@ -688,13 +715,12 @@ HIGHLIGHTR SUPPORT
justify-content: center;
margin-left: 0.6em;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-last-color {
display: none;
}
-.pcr-app[data-theme="nano"]
- .pcr-selection
- .pcr-color-preview
- .pcr-current-color {
+
+.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-current-color {
position: relative;
background: var(--pcr-color);
width: 2em;
@@ -702,10 +728,8 @@ HIGHLIGHTR SUPPORT
border-radius: 50em;
overflow: hidden;
}
-.pcr-app[data-theme="nano"]
- .pcr-selection
- .pcr-color-preview
- .pcr-current-color::before {
+
+.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-current-color::before {
position: absolute;
content: "";
top: 0;
@@ -717,21 +741,21 @@ HIGHLIGHTR SUPPORT
border-radius: 0.15em;
z-index: -1;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette {
grid-area: 1 / 1 / 2 / 3;
width: 100%;
height: 100%;
z-index: 1;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette .pcr-palette {
border-radius: 0.15em;
width: 100%;
height: 100%;
}
-.pcr-app[data-theme="nano"]
- .pcr-selection
- .pcr-color-palette
- .pcr-palette::before {
+
+.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette .pcr-palette::before {
position: absolute;
content: "";
top: 0;
@@ -743,32 +767,50 @@ HIGHLIGHTR SUPPORT
border-radius: 0.15em;
z-index: -1;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser {
grid-area: 2 / 2 / 2 / 2;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity {
grid-area: 3 / 2 / 3 / 2;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity {
height: 0.5em;
margin: 0 0.6em;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-picker,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-picker {
top: 50%;
transform: translateY(-50%);
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-slider,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-slider {
flex-grow: 1;
border-radius: 50em;
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-slider {
background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red);
}
+
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-slider {
background: linear-gradient(to right, transparent, black),
url('data:image/svg+xml;utf8, ');
background-size: 100%, 0.25em;
}
+
+.colorboard {
+ position: absolute;
+ left: 75%;
+ top: 40%;
+}
+
+.colorboard div:hover span{
+ font-size: x-large;
+ transition: 0.3s;
+}
\ No newline at end of file