fix(ui): space work-log rows by the column gap alone - #5637
Merged
Merged
Conversation
Astryx ChatReasoning and ChatToolCalls carry an intrinsic margin-block-start (--spacing-2) meant for Astryx's own ChatMessage composition (4px children gap, 12px ghost-bubble padding). Maka's processing body is a flex column with its own 8px gap and a flush assistant bubble, so the margin stacked on the gap: 16px above every reasoning/tool row but 8px above intermediate text, which grouped each text line with the row above it. The processing body now zeroes its children's block-start margin so the gap is the only spacing between rows. The first-child rule that spaces the body from its summary is unchanged. The NativeConversation story opens the multi-step work log and asserts every adjacent row gap equals the body's row-gap; it fails on main's styles (16px before tool and reasoning rows). Generated-by: Claude Code
jackwener
approved these changes
Sep 23, 2026
jackwener
left a comment
Member
There was a problem hiding this comment.
I reviewed 45b4ee6e3b7c918b4f0fb9a0d676eaf14366da71.
No P0–P2.
Astryx ChatReasoning and ChatToolCalls bring margin-block-start, which stacked on .maka-processing-body's 8px gap. Zeroing that margin on the body's children leaves gap as the only space between rows. The first-child rule still spaces the body from the summary.
Hosted test was still running at this review.
简体中文
我审查了 45b4ee6e3b7c918b4f0fb9a0d676eaf14366da71。没有 P0–P2。
过程记录里 Astryx 行自带上边距,叠在 8px gap 上。把子项 margin-block-start 清掉后只剩 gap。本审查时 hosted test 仍在跑。
Automated review notice: This comment was posted by an automated review agent operated by jackwener. It is not an independent human review and does not replace one.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rows in an expanded work log were not evenly spaced: 16px above every reasoning and tool row, but 8px above intermediate text. Each text line therefore read as attached to the row above it.
Root cause: Astryx
ChatReasoningandChatToolCallscarry an intrinsicmargin-block-start: var(--spacing-2). That default fits Astryx's ownChatMessagecomposition (4px children gap, ghost bubbles with 12px block padding). Maka's.maka-processing-bodyis a flex column with its own 8pxgapand a flush assistant bubble, so the component margin stacked on the gap.Fix: the processing body zeroes its children's block-start margin, making
gapthe only spacing between rows. The existing first-child rule that spaces the body from its summary is unchanged (still 8px).timeline-fold.tsonly lets text and processing entries reach.maka-assistant-answer-content, so reasoning and tool rows never sit directly in that column and it needs no rule.Alternatives not taken: Astryx's
xstyleseam needs a StyleX compile step Maka does not have; dropping the atom from the ejectedChatReasoningwould fix only reasoning rows and fork the copy from upstream.Verification
NativeConversationstoryplayopens the multi-step turn's work log and asserts every adjacent row gap equals the body'srow-gap. Built Storybook with the CSS rule disabled: the play fails (message-bubble → tool-calls: 16,tool-calls → reasoning: 16). With the fix it passes in light and dark throughsmokeStoryfromscripts/storybook-visual-smoke.mjs(play, console, AX audit).npm --workspace @maka/desktop run typecheck:stories,npm --workspace @maka/ui run build,npm run format,npm run lint: pass.Same story, same 1280px viewport; BEFORE from
main's storybook-static, AFTER from this branch's.AI use
Select exactly one:
Tool(s) and scope: Claude Code diagnosed the spacing, wrote the CSS fix and story assertion, and produced the comparison images.
Checklist
Does this PR entail a change in behavior?