Repository navigation
sidebar: group headers are vivid tinted glass with a rim; no color is untinted glass - #36225
Conversation
…e, no indent) Leo 2026-11-05: "if you're gonna allow the no color option, which is, like, I find kind of weird, you might as well have it be at least slightly distinguishing from, like, literally depicting it as if it were unhovered." A group with no color draws one faint neutral block (the theme ink at 3% dark, 2.5% light, under the rows' 6%/5% hover) behind its header and members, under every row so hover, selection and drop fills draw over it. The group's line view becomes the block, so it moves on the rows' springs through folds and drags. Debug `sidebar.noColorGroup` keeps glass, lit and plain (the look since #32198). A tab group with no color washes its tabs in sidebarStep. A colored group is unchanged; no hue comes back. Sidebar-Look: Leo 2026-11-05 "a grouped up thing" / "we're not necessarily into that indentation thing" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Gallery before/after for
States
Pick other states with a Default changesThis pull request changes 4 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
|
Found 3 test failures on Blacksmith runners: Failures
|
…e rows' size Leo 2026-11-05: "We can afford to put glass here, so why the f*** do we not have glass for this? ... still keeping the colors, it's just, like, but just make it glassier", "Why is it just one solid opaque block? Why does it not have any sort of rim at all?", and "this strange f***ing font of the group on the side ... it just looks sad". The band header draws a translucent pane of its color with the chroma raised (GroupTint.glassRGB), a hairline rim and the theme's ink, held at 4.5:1. The rail takes the same vivid color. Debug sidebar.groupGlass: glass (default), vivid, frost, solid (the bar before). The palette is unchanged. A group with no color is the same glass untinted (sidebar.noColorGroup glass). The header name was 11 pt medium in the bare system face, smaller than its rows; it is now titleFont's size, semibold. The gallery shows today and the three glass looks over a busy wallpaper, dark and light. Sidebar-Look: Leo 2026-11-05 "just make it glassier" / "Why does it not have any sort of rim at all?" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c94a5c495bc075ca7fff
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
…Reduce Transparency) real-glass-material (#36240) owns the glass tokens: the group header and the no-color pane now draw a new `group` role in schemas/surface-roles/surface-roles.json (Swift SurfaceRole/FloatingGlassStyle.group and the CSS --surface-group-* follow it, check-surface-roles.py passes), its rim through GlassRimView, and the role's opaque fallback under Reduce Transparency (ReduceTransparency.register(repainting:) repaints them on a change). sidebar.groupGlass now sets only the color's share of the veil; the sidebar-only rim and veil constants are gone. Sidebar-Look: Leo 2026-11-05 "Why does it not have any sort of rim at all?" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c94a5c495bc075ca7fff
…s-bar test to the solid bar The gallery (today, glass, vivid, frost over a busy wallpaper, dark and light) showed glass washing the colors out on dark and frost reading as no color; vivid kept every color readable with the rim and the name at 4.5:1. SidebarGroupLineLayoutTests' "the line is the bar's rest color" describes the solid bar; on glass the rail is the pane's vivid tint (GroupHeaderGlassTests). Sidebar-Look: Leo 2026-11-05 "we don't have vibrant group colors" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c94a5c495bc075ca7fff
|
Review (codex gpt-6.1-sol xhigh, router-review): BLOCK at 69318b2 BLOCK at 69318b2 Visual verdict: supplied dark/light gallery has no clipping or overflow.
Follow-ups:
|
… run on the solid bar Router review BLOCK at 69318b2: F1, SidebarGroupSolidHeaderTests and SidebarGroupChromeLookTests describe the solid bar's fill and ink, so they now run with sidebar.groupGlass solid (GroupHeaderGlassTests.onSolidBar). F2, a group's trailing Done, Archived and Show more rows sat outside its no-color pane; the pane now runs to the group's last row of any kind (the rail still ends at the last member). Regression: NoColorGroupBlockTests.thePaneRunsToTheGroupsFoldRows. Sidebar-Look: Leo 2026-11-05 "a grouped up thing" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c94a5c495bc075ca7fff
2ab9bfb to
0fc45a6
Compare
|
Review (codex, router-review): SHIP at 0fc45a6 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo ( SHIP at 0fc45a6 Visual verdict: native gallery shows the intended glass treatment; all 16 supplied web before/after pairs are identical.
Surface-role consistency passes. Native AppKit tests could not run in this Linux box. Follow-ups:
|
The group surface role follows the base's concentric corner rule: cornerDepth 0 (the sidebar rows' radius, Metrics.surfaceCornerRadius) in place of radius 6. Sidebar-Look: no-color and glass group headers, unchanged by the merge Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c94a5c495bc075ca7fff
|
Review (codex, router-review): SHIP at f542b86 Reviewer: codex gpt-6-astra high, fast tier. SHIP at f542b86 Visual verdict: gallery shows the intended dark/light group glass treatments without an obvious regression. Surface-role consistency passed; I traced block layout through folds, nesting, and drag lifts. Follow-ups: none |
Green-5 (a-group-bg-green-5 on 273887a) failed GroupHeaderGlassTests: Automatic drew glass only over a see-through sidebar, so it overrode Leo's #36225 default (vivid glass everywhere). Automatic now follows Debug sidebar.groupGlass; Glass and Solid force their look (Glass with a Debug solid draws vivid). Help text updated in all 21 locales. Sidebar-Look: Automatic follows Leo's glass default (#36225)
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-11-05, on the sidebar's group headers:
And on a group with no color:
What
groupsurface role, not an opaque bar. This is a new role inschemas/surface-roles/surface-roles.json, with its Swift and CSS copies kept in step bycheck-surface-roles.py, alongside the other glass roles cmux NEXT glass: one shared glass material, first on the composer (specular rim, sheen, depth) #36240 owns. The role's veil over the sidebar's own glass is tinted by the group's color with its chroma raised x1.3 (GroupTint.glassRGB), at 44% dark / 34% light. The role's specular rim is drawn withGlassRimView, and the name is in the theme's ink, held at 4.5:1. Under Reduce Transparency it's the role's opaque fallback with a hairline. The members' rail takes the same vivid color. It isn't a per-rowNSGlassEffectView, because that would put a second glass layer on the sidebar's own glass for every row, whichCardSurfaceViewrules out.TypeScale.emphasis), and followssidebar.textSize.SidebarGroupLine.isBlock), so it moves on the rows' springs through folds, drags and scrolls. It sits under every row, so hover, selection and drop fills draw over it. fix(groups): draw no color until one is chosen #32198 and sidebar: a group nobody colored draws no bar in the theme's color #32685 stand: no automatic hue comes back.sidebarStep. That's neutral, with no hue.sidebar.groupGlass:vivid(default),glass,frost,solid(the bar before this PR).sidebar.noColorGroup:glass(default),tray,lit,plain(the look before this PR).Pick
Gallery
AANoColorGroupGalleryTests, over a busy wallpaper behind the translucent sidebar. Columns are today, glass, vivid and frost, with dark on top and light below. Each column sets its ownsidebar.groupGlass/sidebar.noColorGroup, so this sheet (rendered at 92a39b1) shows the same pixels as the head.Picked: vivid (the new
sidebar.groupGlassdefault). Why:Verification
GroupHeaderGlassTests: every glass look is a translucent pane (alpha between 0.05 and 0.6) with thegrouprole's rim, and the name reads at 4.5:1 over it, in dark, light and wallpaper themes. The glass tint is more saturated than the line color. The rail is the pane's tint.vividis the default andsolidkeeps the opaque bar. Under Reduce Transparency the pane is opaque with a hairline and no rim. The name uses the rows' size, semibold.NoColorGroupBlockTests: checks the block's frame (no indent), that a collapsed group blocks its header, that the block is under every row, that a colored group keeps its rail, thatplaindraws nothing, that each look is thegrouprole's veil and never opaque (with the rim only inglass), and that Reduce Transparency draws the opaque fallback.GroupNoChosenColorTests,GroupPaletteDefaultTests(now pinned tosolid, the bar it describes),SidebarGridAlignmentTests(the header font).AANoColorGroupGalleryTests(CMUX_TEST_REQUIRE_GUI=1,no-color-group-gallery.tar).SidebarGroupLineLayoutTests"the line is the bar's rest color", which describes the solid bar; it's now pinned tosolid, and the glass rail has its own test. The head's run is listed below.scripts/web-lint.sh: the only failure,check-switch-fetchesatwebviews/src/agent-session/acpmux/flickerLog.ts:179(from Flicker log: off in gallery pages, and the ring stays under its bound after each write #36188), fails the same at base 1f7dbae. This PR doesn't touch it.Prior art acknowledged: #32198, #32156, #32685 and the sidebar PRs
prior-artlisted.Changelog
Agent session: agent session
🤖 Generated with Claude Code