Skip to content

refactor(web): add density to ComboboxItem, SelectItem and MenuRadioItem - #13007

Closed
juliusmarminge wants to merge 1 commit into
restyle/scroll-areafrom
restyle/item-density
Closed

juliusmarminge wants to merge 1 commit into
restyle/scroll-areafrom
restyle/item-density

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Twelve list rows re-declared min-h-7 py-1 text-xs (compact) or py-2
(roomy) through className. Expose density="compact|default|roomy" to
match MenuItem's vocabulary and migrate them.

Visible effect: the project-scope and base-ref pickers had pinned their
rows to 32px; they now use the default row (28px on desktop) like every
other combobox.

Lowers the no-restyle ceiling from 802 to 784.

Part of the components/ui className cleanup (audit and guardrail: #12982). Each layer of stack #12993 lowers the shadcn/no-restyle ceiling; CI fails if the count rises.

Written by Claude Fable 5 in Claude Code.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Improved spacing and sizing consistency across comboboxes, menus, and selection controls.
    • Added compact and roomy density options for supported dropdown items.
    • Applied more compact layouts to sorting, keybinding, pull request, and project selection controls.
    • Added roomier layouts to runtime mode and default permission selectors.
    • Preserved existing selection behavior and control widths while refining vertical spacing and text sizing.

@juliusmarminge
juliusmarminge added this pull request to stack #12993 September 22, 2026 05:42
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Sep 22, 2026
@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 13.5 KiB — 15.1 KiB ✅
Codex Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Codex Live turn WebSocket wire — 6.5 KiB — 7.8 KiB ✅
Codex Live turn WebSocket decoded — 56.3 KiB — 66.4 KiB ✅
Codex Live turn messages — 10 — 21 ✅
Claude Total thread wire — 13.5 KiB — 15.1 KiB ✅
Claude Thread snapshot wire — 7.1 KiB — 7.3 KiB ✅
Claude Live turn WebSocket wire — 6.4 KiB — 7.8 KiB ✅
Claude Live turn WebSocket decoded — 57.0 KiB — 66.4 KiB ✅
Claude Live turn messages — 9 — 21 ✅

Baseline: unavailable · PR result: 8e43b21 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 29bbcfd

Macroscope's review found this PR approvable — This is a contained UI refactor that centralizes dropdown density styling and replaces repeated classes at a handful of call sites. Its runtime effect is limited to row sizing and typography, with no schema, data-flow, security, billing, or deployment impact.

No code changes detected at 8e43b21. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: a244a02f-cf64-4630-bfd7-e5f38606eb82

📥 Commits

Reviewing files that changed from the base of the PR and between 29bbcfd and bc47417.

📒 Files selected for processing (1)
  • apps/web/src/components/ui/menu.tsx

Limit details: You’ve used all 10 included reviews currently available.


📝 Walkthrough

Walkthrough

The UI item primitives now support density variants. Selectors, menus, comboboxes, and related controls use shared compact or roomy settings instead of local sizing classes. The restyle lint ceiling is reduced from 802 to 784.

Changes

UI density standardization

Layer / File(s) Summary
Density variants in UI primitives
apps/web/src/components/ui/combobox.tsx, apps/web/src/components/ui/menu.tsx, apps/web/src/components/ui/select.tsx
UI item components accept density options, apply corresponding sizing classes, and expose the selected density through data attributes.
Density adoption across controls
apps/web/src/components/DiffPanel.tsx, apps/web/src/components/LegacySidebar.tsx, apps/web/src/components/Sidebar.tsx, apps/web/src/components/chat/ChatComposer.tsx, apps/web/src/components/pullRequest/PullRequestCandidatePicker.tsx, apps/web/src/components/settings/*
Existing controls use compact or roomy density settings and remove local height, padding, and text-size classes.
Restyle lint threshold
scripts/lint-restyle-ceiling.ts
The restyle findings ceiling changes from 802 to 784.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: maria-rcks, t3dotgg

Merge Risk: ⚪ Minimal · up to bc474

This change standardizes list-row density and makes selected picker rows use the shared default sizing. No actionable merge-blocking risk is identified, so it is mergeable with normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 11 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main change: adding density support to ComboboxItem, SelectItem, and MenuRadioItem.
Description check ✅ Passed The description explains what changed, why it changed, the visible UI effect, and the restyle-ceiling update. It omits the template headings, checklist, and before/after screenshots for the UI changes…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

@juliusmarminge
juliusmarminge force-pushed the restyle/item-density branch 2 times, most recently from bc47417 to 2be88bc Compare September 22, 2026 05:57
Twelve list rows re-declared min-h-7 py-1 text-xs (compact) or py-2
(roomy) through className. Expose density="compact|default|roomy" to
match MenuItem's vocabulary and migrate them.

Visible effect: the project-scope and base-ref pickers had pinned their
rows to 32px; they now use the default row (28px on desktop) like every
other combobox.

Lowers the no-restyle ceiling from 802 to 784.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@juliusmarminge

Copy link
Copy Markdown
Member Author

Superseded by the reworked stack (#12993 v2). After review feedback the layers were rebuilt to add fewer props and take more opinions in the base; see the new stack for the replacement.

@juliusmarminge
juliusmarminge deleted the restyle/item-density branch September 22, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant