From 549aa678ab3dc13b1d57974efca9f08951679257 Mon Sep 17 00:00:00 2001 From: elkaix Date: Mon, 17 Aug 2026 02:47:59 -0400 Subject: [PATCH] feat(web): widen the reading column and soften the composer card The chat column was 760px and the composer card read as a small box with a fixed-height input. Widen `--read-max` to 928px, which the message list and the composer dock both derive from, so one value moves both. The card takes a 24px radius from the new `--r-xl` token, a translucent blurred surface, and a border that strengthens on hover and focus-within. The input grows with its content up to 384px and scrolls past that. Toolbar controls become 30px circles, with a divider after the attachment button and a 20px send glyph in 5px of padding. The send button keeps the theme accent rather than an inverted fill: the Pythinker theme defines that colour as its brand periwinkle. Behaviour is unchanged; this is geometry and colour only. --- .changeset/web-composer-shell.md | 5 ++ .../pythinker-web/src/components/ChatDock.vue | 5 +- .../pythinker-web/src/components/Composer.vue | 66 +++++++++------ .../src/components/ConversationPane.vue | 2 +- apps/pythinker-web/src/style.css | 26 +++--- apps/pythinker-web/test/composer.test.ts | 80 ++++++++++++++++++- 6 files changed, 145 insertions(+), 39 deletions(-) create mode 100644 .changeset/web-composer-shell.md diff --git a/.changeset/web-composer-shell.md b/.changeset/web-composer-shell.md new file mode 100644 index 00000000..cc0a9107 --- /dev/null +++ b/.changeset/web-composer-shell.md @@ -0,0 +1,5 @@ +--- +"@pymodel/pythinker-code": patch +--- + +Widen the chat reading column to 928px and restyle the composer card: a 24px radius, a translucent blurred surface, a border that strengthens on hover and focus, and an input that grows to 384px before it scrolls. The toolbar controls are 30px circles with a divider after the attachment button. diff --git a/apps/pythinker-web/src/components/ChatDock.vue b/apps/pythinker-web/src/components/ChatDock.vue index 242931fe..5cdbf9e4 100644 --- a/apps/pythinker-web/src/components/ChatDock.vue +++ b/apps/pythinker-web/src/components/ChatDock.vue @@ -332,8 +332,9 @@ defineExpose({ loadForEdit }); /* Use a different surface so the card radius reads against the page, especially in dark mode; --sh only exists on the modern and pythinker themes, hence the fallback. */ .chat-dock :deep(.composer-card) { - background: var(--panel); - box-shadow: var(--sh, 0 6px 18px rgba(0, 0, 0, 0.28)); + background: color-mix(in srgb, var(--panel) 78%, transparent); + backdrop-filter: blur(16px); + box-shadow: var(--sh, 0 6px 18px color-mix(in srgb, var(--ink) 28%, transparent)); } .chat-dock.align-center { margin-left: auto; margin-right: auto; } diff --git a/apps/pythinker-web/src/components/Composer.vue b/apps/pythinker-web/src/components/Composer.vue index ff1bf16e..2cfcc7a1 100644 --- a/apps/pythinker-web/src/components/Composer.vue +++ b/apps/pythinker-web/src/components/Composer.vue @@ -1078,6 +1078,7 @@ function selectModel(modelId: string): void { > +