From 5f8b824523ab2947ad097b1a49447aec607c2e39 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 1 Aug 2026 22:53:13 -0400 Subject: [PATCH] refactor(ui): the remaining views migrate; 2 dead classes, 2 off-palette hovers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Twelve more files onto the shared buttons. What the pass turned up: DEAD, verified not merely unnamed: - .btn-reconsolidate (TaskEditorView). A comment eleven hundred lines up in the same file says the feature was removed in Phase 8. The CSS outlived it. - .btn-remove-slot (SettingsView), style rules only, no template anywhere. OFF-PALETTE, the #2319 shape: TrashView's restore and purge hovers used `var(--color-primary, #6366f1)` and `var(--color-danger, #ef4444)` — Tailwind indigo and Tailwind red, from no palette in this system. The fallback is what renders if the token is ever absent, and it renders something plausible forever. Now the action and destructive colours, no fallback. A REAL BREAKAGE MY OWN CHECK COULD NOT SEE, worth recording. Deleting a rule whose selector was part of a comma-separated group left the leading selectors behind: .btn-log-edit, .log-textarea { … } which silently swallows the next rule. Brace counting passed — there are no braces in a dangling fragment. Found by scanning for selector lines ending in `,` not followed by another selector; three instances across two files, one of them interleaved with comments so the first sweep missed it. The sweep is now part of the verification, not a one-off. Kept bespoke, deliberately: .btn-pin/.btn-unpin (pill-shaped history badges), .btn-add-share and .btn-new-note (gradient CTAs — brand moments, which the house style does sanction), .btn-icon/.btn-bell (icon buttons, a different component), .btn-add-system/.btn-add-milestone (dashed "add" affordances). These are not drift; they are other things wearing a btn- prefix. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01UaYUaouG9jjhATyuxCKrQs --- frontend/src/components/HistoryPanel.vue | 15 +- .../src/components/NotificationsPanel.vue | 37 +---- frontend/src/components/ShareDialog.vue | 40 +---- frontend/src/components/SystemsSection.vue | 57 +------ frontend/src/components/TaskLogSection.vue | 63 +------- frontend/src/views/KnowledgeView.vue | 42 +---- frontend/src/views/LogsView.vue | 15 +- frontend/src/views/NoteViewerView.vue | 79 +-------- frontend/src/views/ProjectView.vue | 152 +----------------- frontend/src/views/TaskEditorView.vue | 72 +-------- frontend/src/views/TaskViewerView.vue | 87 +--------- frontend/src/views/TrashView.vue | 24 +-- 12 files changed, 45 insertions(+), 638 deletions(-) diff --git a/frontend/src/components/HistoryPanel.vue b/frontend/src/components/HistoryPanel.vue index a4c72ba..a4ddd89 100644 --- a/frontend/src/components/HistoryPanel.vue +++ b/frontend/src/components/HistoryPanel.vue @@ -281,7 +281,7 @@ onMounted(loadVersions); - +
No unread notifications
@@ -108,21 +108,6 @@ onMounted(() => store.fetchAll()) font-size: 0.9rem; } -.btn-mark-all { - background: none; - border: none; - color: var(--color-primary); - font-size: 0.78rem; - cursor: pointer; - padding: 0; -} -.btn-mark-all:hover { text-decoration: underline; } - -.notif-list { - list-style: none; - padding: 0; - margin: 0; -} .notif-item { display: flex; @@ -148,22 +133,4 @@ onMounted(() => store.fetchAll()) } .notif-time { font-size: 0.75rem; color: var(--color-muted); } -.btn-notif-close { - background: none; - border: none; - color: var(--color-muted); - cursor: pointer; - font-size: 0.8rem; - padding: 0.1rem 0.25rem; - flex-shrink: 0; - transition: color 0.1s; -} -.btn-notif-close:hover { color: var(--color-text); } - -.notif-empty { - padding: 1.5rem; - text-align: center; - color: var(--color-muted); - font-size: 0.88rem; -} diff --git a/frontend/src/components/ShareDialog.vue b/frontend/src/components/ShareDialog.vue index 808c71c..a76278d 100644 --- a/frontend/src/components/ShareDialog.vue +++ b/frontend/src/components/ShareDialog.vue @@ -117,7 +117,7 @@ onMounted(async () => {