Skip to content

feat(web): widen the reading column and soften the composer card - #108

Closed
elkaix wants to merge 1 commit into
mainfrom
feat/web-composer-shell
Closed

feat(web): widen the reading column and soften the composer card#108
elkaix wants to merge 1 commit into
mainfrom
feat/web-composer-shell

Conversation

@elkaix

@elkaix elkaix commented Aug 17, 2026

Copy link
Copy Markdown
Member

Related Issue

No issue. The problem is described below.

Problem

The chat reading column was 760px, which leaves the composer feeling narrow on any normal window, and the composer card read as a small box: a 16px radius, a flat opaque fill, and an input pinned to a fixed 56px height that never grew with the text.

What changed

  • --read-max goes from 760px to 928px. The message list and the composer dock both derive their width from that one variable, so nothing else needed a width of its own.
  • The composer card takes a 24px radius from a new --r-xl token, a translucent surface with a backdrop blur, and a border that strengthens on hover and on :focus-within.
  • The input grows with its content up to 384px, then scrolls.
  • Toolbar controls become 30px circles, with a divider after the attachment button, and the send glyph is 20px inside 5px of padding.

Behaviour is untouched — drafts, history recall, IME handling, attachments and slash commands all work exactly as before. This is geometry and colour.

Two things worth calling out:

  • The send button keeps --blue, the theme accent. The design reference this port follows uses a monochrome inverted fill, and the first pass carried that across. That is wrong here: the Pythinker theme defines --blue as its brand periwinkle and the stylesheet cites a design spec for it. The geometry change stayed, the colour change was reverted, and the test now asserts the accent rather than a monochrome fill.
  • The input uses field-sizing: content. Where that is unsupported the input stays at its 56px minimum and scrolls, which is the behaviour it had before this change, so the degradation is graceful.

Verified locally: 334 web tests, typecheck and lint all pass, and the suite passes again after the pre-commit autofix. Every new assertion was mutation-checked.

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue, or explained the problem above.
  • I have added tests that prove my feature works.
  • Ran gen-changesets skill, or this PR needs no changeset.
  • Ran gen-docs skill, or this PR needs no doc update.

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.
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@elkaix, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 24 minutes

Limit details: You’ve used all 3 included reviews currently available under your plan.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 61026ff3-71a2-4a09-a471-2766d170fb40

📥 Commits

Reviewing files that changed from the base of the PR and between f97b801 and 549aa67.

📒 Files selected for processing (6)
  • .changeset/web-composer-shell.md
  • apps/pythinker-web/src/components/ChatDock.vue
  • apps/pythinker-web/src/components/Composer.vue
  • apps/pythinker-web/src/components/ConversationPane.vue
  • apps/pythinker-web/src/style.css
  • apps/pythinker-web/test/composer.test.ts

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Aug 17, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@pymodel/pythinker-code@549aa67
npx https://pkg.pr.new/@pymodel/pythinker-code@549aa67

commit: 549aa67

@elkaix

elkaix commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

Closing: merged locally into main; a new PR will follow.

@elkaix elkaix closed this Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant