diff --git a/frontend/src/components/WorkspaceNoteEditor.vue b/frontend/src/components/WorkspaceNoteEditor.vue index ee3a7b5..f44855f 100644 --- a/frontend/src/components/WorkspaceNoteEditor.vue +++ b/frontend/src/components/WorkspaceNoteEditor.vue @@ -314,14 +314,14 @@ defineExpose({ reload: loadProjectNotes }); @keydown.enter="createNote" @keydown.escape="cancelNewNote" /> - - + @@ -333,7 +333,7 @@ defineExpose({ reload: loadProjectNotes }); type="search" aria-label="Search notes" /> - +
Loading…
@@ -358,12 +358,12 @@ defineExpose({ reload: loadProjectNotes });
-
@@ -382,7 +382,7 @@ defineExpose({ reload: loadProjectNotes }); Unsaved Saving… - + @@ -400,7 +400,7 @@ defineExpose({ reload: loadProjectNotes });
- +
@@ -429,8 +429,8 @@ defineExpose({ reload: loadProjectNotes }); - - + +
@@ -484,26 +484,6 @@ defineExpose({ reload: loadProjectNotes }); flex: 1; } -.btn-new-note { - background: none; - border: 1px solid var(--color-border); - border-radius: 4px; - padding: 0.15rem 0.4rem; - font-size: 0.7rem; - color: var(--color-text-muted); - cursor: pointer; - white-space: nowrap; -} -.btn-new-note:hover { border-color: var(--color-primary); color: var(--color-primary); } - -.rail-search { - display: flex; - align-items: center; - gap: 0.2rem; - padding: 0.3rem 0.5rem; - border-bottom: 1px solid var(--color-border); - flex-shrink: 0; -} .rail-search-input { flex: 1; @@ -517,17 +497,8 @@ defineExpose({ reload: loadProjectNotes }); .rail-search-input:focus { outline: none; } .rail-search-input::-webkit-search-cancel-button { display: none; } -.btn-search-clear { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.68rem; - cursor: pointer; - padding: 0; - line-height: 1; - flex-shrink: 0; -} -.btn-search-clear:hover { color: var(--color-text); } +/* Sits inside the search field: no padding, and must not flex. */ +.btn-search-clear { padding: 0; flex-shrink: 0; } .rail-state { padding: 1rem 0.65rem; @@ -617,99 +588,7 @@ defineExpose({ reload: loadProjectNotes }); align-items: center; } -.btn-delete { - background: none; - border: none; - color: var(--color-text-muted); - cursor: pointer; - padding: 0.1rem; - border-radius: 3px; - opacity: 0; - transition: opacity 0.1s, color 0.1s; - display: flex; - align-items: center; -} .note-row:hover .btn-delete { opacity: 1; } -.btn-delete:hover { color: var(--color-action-destructive); } - -.btn-confirm-delete { - background: none; - border: 1px solid var(--color-action-destructive); - color: var(--color-action-destructive); - font-size: 0.65rem; - font-weight: 500; - cursor: pointer; - padding: 0.1rem 0.3rem; - border-radius: 3px; - transition: background 0.15s, color 0.15s; -} -.btn-confirm-delete:hover:not(:disabled) { background: var(--color-action-destructive); color: var(--fs-text-on-action); } -.btn-confirm-delete:disabled { opacity: 0.5; cursor: default; } - -.btn-cancel-delete { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.7rem; - cursor: pointer; - padding: 0.1rem; -} -.btn-cancel-delete:hover { color: var(--color-text); } - -/* Inline new note */ -.new-note-input { - flex: 1; - background: var(--color-input-bg, var(--color-bg)); - border: 1px solid var(--color-primary); - border-radius: 4px; - padding: 0.15rem 0.35rem; - font-size: 0.78rem; - color: var(--color-text); - min-width: 0; -} -.new-note-input:focus { outline: none; } - -.btn-confirm { - background: var(--color-action-primary); - color: var(--fs-text-on-action); - border: none; - border-radius: 4px; - padding: 0.15rem 0.35rem; - font-size: 0.85rem; - cursor: pointer; - flex-shrink: 0; - line-height: 1; -} -.btn-confirm:disabled { opacity: 0.4; cursor: default; } - -.btn-cancel { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.72rem; - cursor: pointer; - padding: 0.1rem; - flex-shrink: 0; -} -.btn-cancel:hover { color: var(--color-text); } - -/* ── Right editor pane ── */ -.note-editor-pane { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; - min-width: 0; -} - -.editor-empty-state { - flex: 1; - display: flex; - align-items: center; - justify-content: center; - color: var(--color-text-muted); - font-size: 0.85rem; -} /* Editor UI */ .panel-header { @@ -731,23 +610,6 @@ defineExpose({ reload: loadProjectNotes }); .saving-txt { font-size: 0.72rem; color: var(--color-primary); } /* Moss action-primary per Hybrid */ -.btn-save { - background: var(--color-action-primary); - color: var(--fs-text-on-action); - border: none; - border-radius: 5px; - padding: 0.25rem 0.7rem; - font-size: 0.8rem; - cursor: pointer; - transition: background 0.15s; -} -.btn-save:hover:not(:disabled) { background: var(--color-action-primary-hover); } -.btn-save:disabled { opacity: 0.4; cursor: default; } - -.note-title-row { - padding: 0.9rem 1.1rem 0.5rem; - flex-shrink: 0; -} .note-title-input { width: 100%; @@ -775,20 +637,7 @@ defineExpose({ reload: loadProjectNotes }); } .tag-row > :first-child { flex: 1; min-width: 0; } -.btn-suggest-tags { - background: none; - border: 1px solid var(--color-border); - border-radius: 5px; - padding: 0.25rem 0.55rem; - font-size: 0.75rem; - color: var(--color-text-muted); - cursor: pointer; - white-space: nowrap; - flex-shrink: 0; - align-self: center; -} -.btn-suggest-tags:hover:not(:disabled) { border-color: var(--color-primary); color: var(--color-primary); } -.btn-suggest-tags:disabled { opacity: 0.5; cursor: default; } +.btn-suggest-tags { flex-shrink: 0; align-self: center; } .tag-suggestions { display: flex; @@ -817,21 +666,6 @@ defineExpose({ reload: loadProjectNotes }); color: var(--color-primary); } -.btn-dismiss-suggestions { - background: none; - border: none; - color: var(--color-text-muted); - cursor: pointer; - font-size: 0.75rem; - margin-left: auto; - padding: 0.1rem 0.3rem; -} -.btn-dismiss-suggestions:hover { color: var(--color-text); } - -.toolbar-row { - padding: 0.3rem 0.6rem; - flex-shrink: 0; -} .link-suggest-strip { display: flex; @@ -865,21 +699,4 @@ defineExpose({ reload: loadProjectNotes }); } .btn-chip-link:hover { background: color-mix(in srgb, var(--color-primary) 15%, transparent); } -.btn-link-all { - background: none; - border: 1px solid var(--color-border); - border-radius: 4px; - padding: 0.1rem 0.4rem; - font-size: 0.7rem; - color: var(--color-text-muted); - cursor: pointer; - margin-left: 0.1rem; -} -.btn-link-all:hover { border-color: var(--color-primary); color: var(--color-primary); } - -.editor-area { - flex: 1; - overflow-y: auto; - padding: 0.5rem 0.6rem; -} diff --git a/frontend/src/components/WorkspaceTaskPanel.vue b/frontend/src/components/WorkspaceTaskPanel.vue index dff15cd..4f6d305 100644 --- a/frontend/src/components/WorkspaceTaskPanel.vue +++ b/frontend/src/components/WorkspaceTaskPanel.vue @@ -232,7 +232,7 @@ defineExpose({ reload: loadAll }); placeholder="New task..." @keydown.enter="addTask" /> - +
Loading...
@@ -293,18 +293,18 @@ defineExpose({ reload: loadAll });
- Edit ↗ + Edit ↗ {{ STATUS_ICON[activeTask.status] ?? "○" }} {{ activeTask.status.replace("_", " ") }} - - +

{{ activeTask.title }}

@@ -396,17 +396,7 @@ defineExpose({ reload: loadAll }); } .task-add-input:focus { outline: none; border-color: var(--color-primary); } -.btn-add { - background: var(--color-action-primary); - color: var(--fs-text-on-action); - border: none; - border-radius: 5px; - padding: 0.28rem 0.55rem; - font-size: 1rem; - cursor: pointer; - line-height: 1; -} -.btn-add:disabled { opacity: 0.4; cursor: default; } +.btn-add { font-size: 1rem; } /* a '+' glyph, not a label */ .groups-scroll { flex: 1; @@ -534,17 +524,7 @@ defineExpose({ reload: loadAll }); .status-badge.status-in_progress { border-color: var(--color-primary); color: var(--color-primary); background: color-mix(in srgb, var(--color-primary) 10%, transparent); } .status-badge.status-done { border-color: var(--color-success, #27ae60); color: var(--color-success, #27ae60); background: color-mix(in srgb, var(--color-success, #27ae60) 10%, transparent); } -.btn-edit-task { - background: none; - border: none; - color: var(--color-primary); - font-size: 0.78rem; - cursor: pointer; - padding: 0.1rem 0.3rem; - border-radius: 3px; - text-decoration: none; - flex-shrink: 0; -} +.btn-edit-task { margin-left: 0.25rem; } .btn-edit-task:hover { text-decoration: underline; } .detail-body { @@ -566,51 +546,11 @@ defineExpose({ reload: loadAll }); color: var(--color-text); } -.btn-delete-task { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.8rem; - cursor: pointer; - padding: 0.15rem 0.3rem; - border-radius: 3px; - margin-left: 0.25rem; -} +.btn-delete-task { margin-left: 0.25rem; } .btn-delete-task:hover { color: var(--color-action-destructive); } -.btn-delete-confirm { - background: none; - border: 1px solid var(--color-action-destructive); - color: var(--color-action-destructive); - font-size: 0.72rem; - font-weight: 500; - cursor: pointer; - padding: 0.15rem 0.5rem; - border-radius: 4px; - margin-left: 0.25rem; - transition: background 0.15s, color 0.15s; -} -.btn-delete-confirm:hover:not(:disabled) { background: var(--color-action-destructive); color: var(--fs-text-on-action); } -.btn-delete-confirm:disabled { opacity: 0.5; cursor: default; } +.btn-delete-confirm { margin-left: 0.25rem; } -.btn-delete-cancel { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.75rem; - cursor: pointer; - padding: 0.1rem 0.3rem; -} -.btn-delete-cancel:hover { color: var(--color-text); } - -.detail-title { - padding: 0.75rem 0.75rem 0.25rem; - font-size: 0.95rem; - font-weight: 500; - margin: 0; - color: var(--color-text); - flex-shrink: 0; -} .detail-meta { display: flex; @@ -679,15 +619,5 @@ defineExpose({ reload: loadAll }); } /* Close detail button */ -.btn-close-detail { - background: none; - border: none; - color: var(--color-text-muted); - font-size: 0.75rem; - cursor: pointer; - padding: 0.15rem 0.3rem; - border-radius: 3px; - margin-left: 0.2rem; -} -.btn-close-detail:hover { color: var(--color-text); } +.btn-close-detail { margin-left: 0.2rem; }