From 0f2519a349452979b4353fb4db951940ff318e2d Mon Sep 17 00:00:00 2001 From: amosblomqvist Date: Thu, 8 Oct 2026 18:45:49 +0300 Subject: [PATCH] =?UTF-8?q?ui:=20round=20five=20=E2=80=94=20no=20band=20in?= =?UTF-8?q?=20cards,=20the=20rail=20narrows=20again?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Owner verdict on the accent step: way too light - in-card thinking drops the band entirely (rail only, identical heights). The rail narrows again: 14px gap inside the 3ch inset (rail calc(3ch-14px), about 8px) - the wide rail was distracting. Total inset still 3ch, chevron law intact. --- components/answered-card.tsx | 5 ++--- components/chat.tsx | 2 +- components/thinking-block.tsx | 30 ++++++++++++-------------- tests/render-cards.test.tsx | 9 ++++---- tests/render-md-blocks.test.tsx | 10 ++++----- tests/render-practice-surface.test.tsx | 2 +- 6 files changed, 27 insertions(+), 31 deletions(-) diff --git a/components/answered-card.tsx b/components/answered-card.tsx index 303cd80..9afc4c2 100644 --- a/components/answered-card.tsx +++ b/components/answered-card.tsx @@ -144,9 +144,8 @@ export function AnsweredCard({ answer }: { answer: QuestionAnswerData }) { {(answer.thinking ?? answer.note) && ( /* The SAME unified row (owner round, 2026-10-05): the quiz answer's thinking is the identical collapsible ThinkingBlock — one - geometry, and since owner round four (2026-10-07) the band steps - to accent on the card's surface (the same one-step lift the chat - band gets). Collapsed thinking matches in height everywhere. */ + geometry, but NO band on the card (owner round five, 2026-10-07: + the accent lift read too light); rail only, heights identical. */ {/* The rail GROUPS (owner round 4, 2026-10-05): the YOU heading sits INSIDE the rail, same mono-xs register and same 1ch diff --git a/components/thinking-block.tsx b/components/thinking-block.tsx index b0ca95b..484030b 100644 --- a/components/thinking-block.tsx +++ b/components/thinking-block.tsx @@ -24,14 +24,13 @@ import { cn } from "@/lib/utils"; * band padding is a tight 5px (round three: halved — subtle, not tall), * and the left gap MATCHES it, so the rail fills the rest of the 3ch * inset — total inset stays 3ch (the chevron-alignment law with the - * agent's flush rows survives). Round four tunes the split: rail - * thinner (gap 8px, rail calc(3ch-8px)), band padding down to 4px, and - * pr-4 so the expanded text wraps EARLY — the band has a clear right - * edge and text hugging it looks odd. In-card rows (on the card's own - * background) take bg-accent — the same ONE-STEP lift the chat band - * gets (background→card); card→accent (`inCard`). `defaultOpen` marks - * transcript rows, which arrive EXPANDED (clearly conveyed that the - * thinking was sent). + * agent's flush rows survives). Round five (owner, 2026-10-07): the + * rail narrows again (gap 14px, rail calc(3ch-14px) — the wide rail + * was distracting); band padding 4px; pr-4 so the expanded text wraps + * EARLY. In-card rows (on the card's own background) take NO band — + * the accent step read too light (owner verdict); rail only, identical + * heights (`inCard`). `defaultOpen` marks transcript rows, which + * arrive EXPANDED (clearly conveyed that the thinking was sent). * * ⌘T (toggle-user-thinking) sets EVERY row to one state via the module * store below — one source of truth, no provider tree: rows subscribe on @@ -80,7 +79,7 @@ export function ThinkingBlock({ dataCommit?: boolean; /** Transcript rows arrive expanded (owner, 2026-10-07). */ defaultOpen?: boolean; - /** On the card's own background: the band steps to accent (one lift). */ + /** On the card's own background: no band (the accent read too light). */ inCard?: boolean; }) { const [open, setOpen] = useState(() => resolveUserThinkingOpen(defaultOpen)); @@ -105,13 +104,12 @@ export function ThinkingBlock({ data-testid={testId} data-commit={dataCommit === undefined ? undefined : dataCommit ? "true" : "false"} className={cn( - // Round four (owner, 2026-10-07): total inset still 3ch (the - // chevron law); rail thinner (8px gap), padding 4px, and pr-4 — - // the text wraps EARLY, never hugging the band's right edge. - // In-card rows step the band to accent: the same one-step lift - // the chat band gets (background→card → card→accent). - "lh-card-enter my-2 w-full border-l-[calc(3ch-8px)] border-muted-foreground/30 py-1 pl-[8px] pr-4 font-ui text-xs", - inCard ? "bg-accent" : "bg-card", + // Round five (owner, 2026-10-07): total inset still 3ch (the + // chevron law); the rail narrows (14px gap), padding 4px, pr-4 + // keeps the text off the band's right edge. In-card rows take + // NO band — the accent lift read too light; rail only. + "lh-card-enter my-2 w-full border-l-[calc(3ch-14px)] border-muted-foreground/30 py-1 pl-[14px] pr-4 font-ui text-xs", + inCard ? "" : "bg-card", )} >