From d5709392530b2d6a555e2144153345ba02700032 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 20 Jul 2026 13:20:04 -0400 Subject: [PATCH] =?UTF-8?q?ui:=20capture=20polish=20=E2=80=94=20auto-grow?= =?UTF-8?q?=20quick-add=20+=20per-card=20color=20popover?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QuickAdd body textarea auto-grows to fit content (min ~3 rows, capped with scroll) instead of a fixed 3 rows. NoteCard's hover toolbar gains a color dot that opens a swatch popover to recolor the note in place (outside-click closes it; listener attached only while open). Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm --- frontend/src/components/NoteCard.vue | 61 +++++++++++++++++++++++++++- frontend/src/components/QuickAdd.vue | 14 ++++++- 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/NoteCard.vue b/frontend/src/components/NoteCard.vue index aee9ec9..49ff9a2 100644 --- a/frontend/src/components/NoteCard.vue +++ b/frontend/src/components/NoteCard.vue @@ -1,7 +1,14 @@ + +
+
diff --git a/frontend/src/components/QuickAdd.vue b/frontend/src/components/QuickAdd.vue index 7792f77..982fda1 100644 --- a/frontend/src/components/QuickAdd.vue +++ b/frontend/src/components/QuickAdd.vue @@ -20,6 +20,7 @@ async function open() { expanded.value = true; await nextTick(); bodyInput.value?.focus(); + autoGrow(); } function hasContent(): boolean { @@ -32,6 +33,14 @@ function clearFields() { color.value = "default"; } +// Grow the composer textarea to fit its content (up to a capped max height). +function autoGrow() { + const el = bodyInput.value; + if (!el) return; + el.style.height = "auto"; + el.style.height = `${el.scrollHeight}px`; +} + async function persist(): Promise { if (!hasContent()) return; saving.value = true; @@ -57,6 +66,7 @@ async function commitAndContinue() { clearFields(); await nextTick(); bodyInput.value?.focus(); + autoGrow(); } function onDocumentMousedown(e: MouseEvent) { @@ -100,9 +110,9 @@ defineExpose({ open });