Added color options
This commit is contained in:
62
styles.css
62
styles.css
@@ -195,3 +195,65 @@
|
|||||||
border-radius: var(--radius-s);
|
border-radius: var(--radius-s);
|
||||||
border-left: 3px solid var(--text-error);
|
border-left: 3px solid var(--text-error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.taskweaver-color-picker-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--size-4-3);
|
||||||
|
margin-top: var(--size-4-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-preset-colors {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(6, 1fr);
|
||||||
|
gap: var(--size-4-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-color-option {
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
cursor: pointer;
|
||||||
|
border: 2px solid transparent;
|
||||||
|
transition: all 0.2s;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-color-option:hover {
|
||||||
|
transform: scale(1.1);
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-color-option.selected {
|
||||||
|
border-color: var(--text-normal);
|
||||||
|
box-shadow: 0 0 0 2px var(--background-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-custom-color {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--size-4-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-custom-color label {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-custom-color input[type="color"] {
|
||||||
|
width: 50px;
|
||||||
|
height: 36px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
cursor: pointer;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-custom-color input[type="color"]::-webkit-color-swatch-wrapper {
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.taskweaver-custom-color input[type="color"]::-webkit-color-swatch {
|
||||||
|
border: none;
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
}
|
||||||
|
|||||||
47
view.ts
47
view.ts
@@ -306,14 +306,45 @@ class ManageCategoriesModal extends Modal {
|
|||||||
categoryName = value;
|
categoryName = value;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
new Setting(contentEl)
|
const colorSetting = new Setting(contentEl)
|
||||||
.setName("Color")
|
.setName("Color");
|
||||||
.addText(text => text
|
|
||||||
.setValue(categoryColor)
|
const colorContainer = colorSetting.settingEl.createDiv({ cls: "taskweaver-color-picker-container" });
|
||||||
.setPlaceholder("#4a9eff")
|
|
||||||
.onChange(value => {
|
const presetColors = [
|
||||||
categoryColor = value;
|
"#4a9eff", "#ff6b6b", "#51cf66", "#ffd43b",
|
||||||
}));
|
"#ff8787", "#cc5de8", "#339af0", "#ff922b",
|
||||||
|
"#20c997", "#e599f7", "#74c0fc", "#a9e34b"
|
||||||
|
];
|
||||||
|
|
||||||
|
const presetContainer = colorContainer.createDiv({ cls: "taskweaver-preset-colors" });
|
||||||
|
|
||||||
|
presetColors.forEach(color => {
|
||||||
|
const colorOption = presetContainer.createDiv({ cls: "taskweaver-color-option" });
|
||||||
|
colorOption.style.backgroundColor = color;
|
||||||
|
if (color === categoryColor) {
|
||||||
|
colorOption.addClass("selected");
|
||||||
|
}
|
||||||
|
colorOption.onclick = () => {
|
||||||
|
categoryColor = color;
|
||||||
|
presetContainer.querySelectorAll(".taskweaver-color-option").forEach(el =>
|
||||||
|
el.removeClass("selected")
|
||||||
|
);
|
||||||
|
colorOption.addClass("selected");
|
||||||
|
colorPicker.value = color;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
const customColorContainer = colorContainer.createDiv({ cls: "taskweaver-custom-color" });
|
||||||
|
customColorContainer.createEl("label", { text: "Custom: " });
|
||||||
|
const colorPicker = customColorContainer.createEl("input", { type: "color" });
|
||||||
|
colorPicker.value = categoryColor;
|
||||||
|
colorPicker.oninput = () => {
|
||||||
|
categoryColor = colorPicker.value;
|
||||||
|
presetContainer.querySelectorAll(".taskweaver-color-option").forEach(el =>
|
||||||
|
el.removeClass("selected")
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
new Setting(contentEl)
|
new Setting(contentEl)
|
||||||
.setName("Emoji (optional)")
|
.setName("Emoji (optional)")
|
||||||
|
|||||||
Reference in New Issue
Block a user