Skip to content

Subtle elevation: one shared shadow scale, no big halos - #20519

Merged
teamleaderleo merged 31 commits into
feat-cmux-nextfrom
op-next-theme/subtle-elevation
Oct 14, 2026
Merged

teamleaderleo merged 31 commits into
feat-cmux-nextfrom
op-next-theme/subtle-elevation

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Menus, popovers, the composer, the New Tab box, find bars, palettes, sheets and the tab drag ghost each cast their own drop shadow, many of them big and soft (0 16px 34px at 28-30%, 0 12px 40px at 22%, an opaque 12 pt halo around a docked column). Every shadow now comes from one two-step scale, the same numbers on the web and in AppKit: a tight, low-alpha drop under the surface, with the thin rim carrying the edge. Nothing gets a new look; shadows only get smaller.

Built on current base, which has #20461 (one popup hairline) and #20481 (device-pixel rims). The rims are untouched; only the drops change.

Tokens

Step Web (pages/shared/desktop.css) Native (PopupStyle) Used by
--elevation-1 / .elevation1 0 1px 2px black 7% (dark 12%) offset 1, blur 2, alpha 0.07 rows, cards, inline surfaces, a selected segment, a switch knob
--elevation-2 / .elevation2 0 2px 6px black 11% (dark 16%) offset 2, blur 6, alpha 0.11 popovers, menus, palette, hover cards, composer, New Tab box, sheets, toasts, find bars, lifted tabs
  • Dark mode keeps the geometry and darkens the alpha a little (prefers-color-scheme: dark, or data-theme="dark" in the agent pane).
  • --ui-popup-drop is now var(--elevation-2), so --ui-popup-shadow and --acpmux-popup-elevation (every Base UI menu and pane popover) follow. Rims stay separate: webviews: popups draw one hairline, not two #20461's --ui-popup-edge hairline and Composer and New Tab rims draw one device pixel, concentric at every scale #20481's --cmux-hairline rings are untouched.
  • Native: Elevation (offset, blur, alpha, layerRadius = blur / 2 for Core Animation, layerOffset(flipped:), shadow() for NSShadow). PopupStyle.standard.elevation is .elevation2, and the old shadowOffset/shadowBlur/shadowAlpha/shadow() are gone, so no call site can keep its own numbers.
  • appearance.borders = none clears rims only, so shadows stay. Reduce Transparency and Increase Contrast behave as before.

Inventory (before → after)

Web (webviews/src):

Surface File Before After Owner
Every Base UI menu/popover, pane menus, model picker, omnibox, slash/@ menus, summary card, .nt-popover, .lg-palette ui/popupSurface.css --ui-popup-drop 0 2px 8px 12% --elevation-2 Leo 2841396b
Composer (rest and focus) acpmux/composerLocation.css 0 8px 24px 18% --elevation-2 Leo 0f8d6805 (#20303)
Permission card acpmux/composerLocation.css 0 4px 14px 10% --elevation-2 Leo 0f8d6805
New Tab box (rest and focus) acpmux/newtab/screen.css 0 12px 32px -18px 40% --elevation-2 Lawrence 663bd736
New Tab box (old pane) acpmux/styles.css 0 12px 32px -18px 40% --elevation-2 Leo b75d89c9
New Tab selected kind acpmux/styles.css 0 1px 2px 25% --elevation-1 Leo b75d89c9
File search palette acpmux/styles.css 0 16px 40px 35% --elevation-2 Leo e2e74d24
Pane sidebar overlay acpmux/styles.css 0 8px 24px 35% --elevation-2 Leo bd5b4722
Chat find bar acpmux/conversation/conversation.css fallback 0 4px 14px 18% fallback --elevation-2 Leo 622e57ee
Jump-to-latest button acpmux/conversation/conversation.css 0 4px 14px 14% + 0 1px 2px 10% --elevation-2 Leo 641a5af3
Minimap hover card acpmux/threadMinimap/threadMinimap.css 0 4px 14px 9% --elevation-2 Lawrence 225ea274
Handoff targets menu acpmux/handoff/styles.css 0 4px 16px 12% (text color) --elevation-2 Leo a15090ff
Add project dialog acpmux/addProject.css 0 12px 36px 27% --elevation-2 Leo 224eda31
PDF viewer / large page / page acpmux/composerAttachments.css 0 16px 44px 28% / 0 8px 24px 18% / 0 1px 2px 15% -2 / -2 / -1 Leo e08117d6
Effort slider thumb acpmux/composerControls.css 0 1px 3px 20% --elevation-1 Lawrence 8a44d921
Tooltips (Base UI and title) pages/shared/desktop.css 0 2px 8px 16% --elevation-2 Leo 66dd3104
Page menu pages/shared/pageBase.css 0 6px 24px 18% --elevation-2 Lawrence 82ae6117
Markdown link card/popover pages/markdown/styles.css 0 6px 24px 18% --elevation-2 Lawrence 68855685
Cloud create sheet pages/cloud/styles.css 0 12px 40px 22% --elevation-2 Lawrence bdaaf04c
Bottom sheet ui/ui.css .ui-sheet 0 -8px 30px 22% --elevation-2 Lawrence d5189aab
Channels side sheet pages/home-channels/ledger.css -12px 0 32px -16px 35% --elevation-2 Lawrence c93267a0
Channels message toolbar pages/home-channels/styles.css 0 2px 8px 12% --elevation-2 Lawrence 9f8d556c
Icon picker bar icon-picker/styles.css 0 4px 18px 16% --elevation-2 Lawrence 6d7b696a
Viewer picker viewer-empty/styles.css 0 14px 44px 24% --elevation-2 Lawrence 99df3371
Diff base picker, toolbar menu, diff find bar styles.css 0 16px 34px 28-30% --elevation-2 Lawrence 14aa604e
Diff file-tree context menu styles.css 0 8px 24px 18% --elevation-2 Lawrence d13dde39
Diff pill button styles.css 0 6px 18px 22% --elevation-2 Lawrence 14aa604e
Diff file search sidebar styles.css -18px 0 42px 34% --elevation-2 Lawrence b129a866
Diff comment card styles.css 0 1px 2px 10% + 0 2px 8px 6% --elevation-1 Lawrence ed02a990
Dev only: optchat tip, pane preview frame, gallery window, prototype various up to 0 24px 64px 50% --elevation-2 Lawrence, Leo

Native (Packages/macOS/CmuxNext):

Surface File Before After Owner
Popover host (hover cards, group editors, icon picker, omnibox suggestions, sidebar update notes, web popups) CmuxNextDesign/PopupStyle.swift PopupHostView blur 8, offset 2, 12% .elevation2 Leo e17da11b
Toast CmuxNextDesign/Toast/CmuxToastView.swift blur 8, 12% .elevation2 Leo
Command palette, page info bubble (NSShadow) CmuxNextPalette/PaletteContentView.swift, PageInfoPanel.swift (now drawn by PopupHostView) blur 8, 12% .elevation2 Leo
Omnibar card top CmuxNextBrowser/UI/OmnibarViews.swift blur 8, 12% .elevation2 Leo
Omnibar bar (opt-in shadow) CmuxNextBrowser/UI/OmnibarViews.swift CA radius 6 (≈ blur 12), 18% .elevation2 Lawrence ff755bea
Tab drag ghost CmuxNextApp/Drag/TabDragGhostPanel.swift CA radius 10 (≈ blur 20), offset 3, 28% .elevation2 Lawrence a367ef42
Lifted tab, group chip, sidebar drag lift TabCell.swift, TabGroupChipCell.swift, DragLiftView.swift CA radius 8 (≈ blur 16), 12% .elevation2 Leo 16566c51
Docked column backdrop CmuxNextLayout/Views/DockBackdropView.swift CA radius 12, offset 0, 100% of the theme shadow color .elevation2 Lawrence fa21a064
Task board card CmuxNextTasks/Views/TasksBoardView.swift radius 2 / 5 (hover), 30% / 60% .elevation1 / .elevation2 Lawrence 2964b216
Page info switch knob PageInfoToggle.swift CA radius 1, 18% .elevation1 Lawrence ddeefff0

Left as they are:

  • Cmd-hold shortcut hint chips (ShortcutHintChipView, Lawrence's): CA radius 2 at 22% black. Tight, so unchanged; the alpha is above the scale's 16% cap, noted here rather than changed.
  • Group editor bubble (sidebar groups and tab group chips): it has no shadow code of its own and draws through PopupHostView, so it follows the shared value swap. Its openers and code are untouched (deferred to Lawrence's chief).
  • Three directional shadows became the plain downward step: the bottom sheet (0 -8px 30px), the diff file-search drawer (-18px 0 42px) and the Channels side sheet (-12px 0 32px -16px). Their rims carry the edge now.
  • The OptChat inspector's tip (0 4px 14px 18%): a standalone page bundled into optchat-chief without the desktop layer, so the tokens are undefined there; the web ratchet skips it.
  • System window shadows (hasShadow = true on the native tooltip, Quick Composer, restart notice, feed, notifications, update sheet and onboarding drag panels): AppKit's own panel shadow.
  • Focus glows (PaneOverlayView ring glow, launch mark), which are colored rings, not elevation.
  • Sidebar notice card and terminal find bar: they cast no shadow today, so nothing to retoken. No sidebar layout changes.

Captures

Fleet DEV builds on a cua-4 capture slot, the same seeded window: before = feat-cmux-next 772b6ea30a5b (build nxtip3-v1), after = this branch 10d7d6927907 (build subtleelev2). Dark, light, and dark over a desktop wallpaper. Each still is before | after. The mini's host name is blurred.

The difference is easiest to see on the New Tab box (right pane: the soft 32px halo under it is gone), the model picker and the command palette (a tight edge instead of a spread). The hover card was already on the shared popup shadow, so it changes only slightly.

dark 1 composer

dark 2 model picker

dark 3 palette

dark 4 hover card

light 1 composer

light 2 model picker

light 3 palette

light 4 hover card

wallpaper 1 composer

wallpaper 2 model picker

wallpaper 3 palette

wallpaper 4 hover card

Recording (dark, 8 s, watched): the main window from both builds side by side. debug.window_record captures the main window only, so it shows the composer and New Tab box at rest; the menus, palette and hover card are in the stills above.

plan image 20519/dark-1-composer.jpg
plan image 20519/dark-2-model-picker.jpg
plan image 20519/dark-3-palette.jpg
plan image 20519/dark-4-hover-card.jpg
plan image 20519/light-1-composer.jpg
plan image 20519/light-2-model-picker.jpg
plan image 20519/light-3-palette.jpg
plan image 20519/light-4-hover-card.jpg
plan image 20519/wallpaper-1-composer.jpg
plan image 20519/wallpaper-2-model-picker.jpg
plan image 20519/wallpaper-3-palette.jpg
plan image 20519/wallpaper-4-hover-card.jpg
plan gif 20519/elevation-dark-before-after.gif (from elevation-dark-before-after.mp4)
plan video 20519/elevation-dark-before-after.mp4
uploaded 20519/dark-1-composer.jpg
uploaded 20519/dark-2-model-picker.jpg
uploaded 20519/dark-3-palette.jpg
uploaded 20519/dark-4-hover-card.jpg
uploaded 20519/light-1-composer.jpg
uploaded 20519/light-2-model-picker.jpg
uploaded 20519/light-3-palette.jpg
uploaded 20519/light-4-hover-card.jpg
uploaded 20519/wallpaper-1-composer.jpg
uploaded 20519/wallpaper-2-model-picker.jpg
uploaded 20519/wallpaper-3-palette.jpg
uploaded 20519/wallpaper-4-hover-card.jpg
uploaded 20519/elevation-dark-before-after.gif
uploaded 20519/elevation-dark-before-after.mp4

Full quality: elevation-dark-before-after.mp4

Not captured: a toast, a tab drag and a native context menu. A no-activate slot can't raise them without closing tabs. The toast, the tab drag ghost and the lifted tab are covered by SubtleElevationTests below.

Testing (red and green)

  • Web, heavy --mem 4G bun test test/subtle-elevation.test.ts: red on 2da8059cd2ac (38 of 39 failed: no tokens, 30+ literal blurred drops, every swept surface on its own shadow) → green on the head (39/39). It fails on any blurred drop that is not --elevation-1/2, on tokens over 8px blur or 16% alpha (light and dark), when the native numbers drift from the web ones, and when a swept surface stops naming the scale.
  • Native, fleet run-swift-testing-suites.sh Packages/macOS/CmuxNext (Xcode 26.6, aws-m4pro):
    • red on 2da8059cd2ac (step key op-next-theme-shadows-red-2da8059cd2ac…): SubtleElevationTests 7 of 8 failed with 18 issues, for example the drag ghost at radius 10 / 28%, a lifted tab at radius 8, and the palette NSShadow at blur 8 / 12%. Every other suite passed.
    • green on 10d7d6927907 (op-next-theme-shadows-green-10d7d6927907…): 291/291 suites PASS, SubtleElevationTests 8/8. The updated PolishCalmChromeTests, PaletteShadowTests and OmnibarCardElevationTests pass too.
    • Both steps exit 1 only on the fleet's same-tree guard (AcpmuxBundleReplacedTests skipped: the head's cmux-tui tree isn't published). That is unrelated to this change.
    • The dock backdrop check in noNativeShadowPassesTheCap was added after the red run, so its red is not recorded.
  • Also passing: popup-surface.test.ts (browser lane, CI only; it now reads elevation2) and ui-rules.
  • Guards:
    • Clean: check-theme-scope, check-system-blue, check-motion, crash_ratchet (ok), check-no-godfiles --base <merge-base> (no touched file flagged), vp check, type-scale, text-focus.
    • Base reds in files this PR doesn't touch:
      • check-concurrency (ControlWorkspaceInfoCache.swift)
      • lint-ios-package-conventions (PaneAnimationsSetting.swift)
      • check-layers (summary.css raw z-index)
  • A review subagent found three problems, now fixed: the test target didn't compile (TabCell isn't a view), the OptChat inspector's committed page went stale, and a host without desktop.css would lose the popup shadow and rim (--ui-popup-drop now falls back to the same step).

Changelog

Changed: Menus, popovers, cards and the composer use a subtle shadow instead of a large soft one.

🤖 Generated with Claude Code

teamleaderleo and others added 19 commits October 13, 2026 23:06
Red: --acpmux-popup-elevation stacks a composer-edge hairline on the one
already in --ui-popup-shadow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
--acpmux-popup-elevation stacked a 0.5px composer-edge hairline on the
hairline already in --ui-popup-shadow. It now is the shared popup shadow,
so every menu and popover has one edge. Increase Contrast colors that one
edge in the popup's ink, which the composer-edge hairline did before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- vp fmt webviews/src/agent-session/acpmux/modelPickerLayout.ts

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38520503432
… it under borders none

Red: the pages' .ui-popup and the chat find bar draw a border over the
--ui-popup-shadow hairline, and appearance.borders none leaves the
hairline drawn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s it

The pages' .ui-popup drew a 1px border over the --ui-popup-shadow
hairline; it now draws no border. The chat find bar keeps its border
(its focus cue) and casts --ui-popup-drop, the shadow without the
hairline. appearance.borders none sets --ui-popup-edge transparent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…irline

# Conflicts:
#	webviews/src/agent-session/acpmux/modelPickerLayout.ts
Keeps cmux-autofix's vp fmt of the base file, which the base merge
replaced with the unformatted copy; react-apps-check fails on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Red on base: the composer's 0.5px rim is half a device pixel at 1x and
0.625 at 1.25x, and it ignores appearance.borders none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The composer's and the New Tab box's rims were 0.5px inset box-shadows and
their focus rings 1px. macOS WebKit snaps an inset shadow's inner edge to
device pixels but not its rounded clip, so on a 1x display (and at a
fractional page zoom or uiScale) the rim lost whole edges and the arcs next
to them. desktop.ts now sets --cmux-hairline (one device pixel) and
--cmux-hairline-ring (the whole device pixels nearest 1px) from
devicePixelRatio and follows its changes; both rims and every composer focus
ring use them. The composer rim clears with appearance.borders none. The
composerStates.css base :focus-within rule, always overridden by
composerLocation.css, is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oncentric

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- vp fmt webviews/src/agent-session/acpmux/App.tsx
- vp fmt webviews/src/agent-session/acpmux/modelPickerLayout.ts
- vp fmt webviews/src/agent-session/acpmux/subagents/subagents.gallery.ts
- vp fmt webviews/src/agent-session/acpmux/summary/SubagentStatusList.tsx
- vp fmt webviews/src/agent-session/acpmux/summary/cardState.ts

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38525593431
Page zoom and uiScale changes resize the viewport but may not change the
resolution media query, so the tokens also update on resize. One query
is watched per document. The rim test now asserts the composer's rim and
focus-ring alphas and that the shell rim exists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ric' into op-next-theme/focus-ring-concentric
Web: subtle-elevation.test.ts reads every stylesheet and fails on any blurred
drop layer that is not --elevation-1/--elevation-2, on tokens past 8px blur or
16% alpha, and on the swept surfaces not naming the scale. Native: the scale
API (PopupStyle.elevation1/elevation2, not yet used) and SubtleElevationTests,
which fail while hover cards, toasts, the palette, tab lifts, the drag ghost
and the dock backdrop cast their own shadows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Web: --elevation-1 (0 1px 2px, 7%; 12% dark) and --elevation-2 (0 2px 6px,
11%; 16% dark) in pages/shared/desktop.css. --ui-popup-drop is the raised
step, so every menu and popover follows; the composer, New Tab box, find
bars, palettes, sheets, hover toolbars, dialogs and cards drop their own
0 8-16px 24-44px halos (up to 35%) for the scale, keeping their rims.

Native: PopupStyle.elevation1/elevation2 (same numbers) replace the
popup's own shadow values. Hover cards, toasts, the palette, page info,
the omnibar, a lifted tab, group chip or sidebar row, the tab drag ghost
(28% at radius 10), the dock backdrop (an opaque radius-12 halo), task
cards and the page-info switch knob all cast a step of the scale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 8f8b7c49-3c90-450e-8c9f-e9833e27beba

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

red: web / Web status; do not merge until green; see lane-rules
red: web / react-apps-check; do not merge until green; see lane-rules

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Unclear: web / react-apps-check failed: no known signature; failed step: Check webviews (Oxlint, Oxfmt, type check).

CI failed on d257570946 (run 38580942206 attempt 1): 1 unknown.
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped.

Job Verdict Why
web / react-apps-check unknown no known signature; failed step: Check webviews (Oxlint, Oxfmt, type check)

Not re-run automatically: web / react-apps-check is not a machine failure.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards failed on d257570946 (https://github.com/manaflow-ai/cmux/actions/runs/38580942206). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally. This comment is updated in place on each push.

…ecked

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-365xg created for this PR by the cmux coordinator.

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

cmux-next tour of a9c73666c3b5495f5c53ab02a1547d36ab98a928 (run)

The tour job failed before the tour ran (build or setup); the run log has the output.

The tour produced no media.

Tours are data in scripts/cmux-next/media/tours: add a step or a tour file to show your feature.

@blacksmith-sh

This comment has been minimized.

teamleaderleo and others added 3 commits October 14, 2026 02:07
- SubtleElevationTests: TabCell is not a view; walk its layer instead.
- Keep the OptChat inspector's own tip shadow: it is a standalone page
  bundled into optchat-chief without the desktop layer, so the scale's
  tokens are undefined there (and its committed page stays current).
- --ui-popup-drop and the gallery shell window fall back to the same
  step where desktop.css is not loaded, so an undefined token never drops
  a popup's whole shadow and rim; the sidebar prototype loads desktop.css.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…theme/subtle-elevation

# Conflicts:
#	webviews/src/agent-session/acpmux/composerLocation.css
#	webviews/src/agent-session/acpmux/newtab/screen.css
#	webviews/src/pages/shared/desktop.css
teamleaderleo and others added 4 commits October 14, 2026 04:13
…theme/subtle-elevation

# Conflicts:
#	Packages/macOS/CmuxNext/Sources/CmuxNextBrowser/PageInfo/UI/PageInfoPanel.swift
#	webviews/src/agent-session/acpmux/conversation/conversation.css
#	webviews/src/ui/popupSurface.css
#	webviews/test/popup-one-hairline.test.ts
@cursor

cursor Bot commented Oct 14, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

…theme/subtle-elevation

# Conflicts:
#	webviews/src/agent-session/acpmux/styles.css
@blacksmith-sh

blacksmith-sh Bot commented Oct 14, 2026

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
src/pages/settings/categories.test.ts/categories.test View Logs
src/pages/settings/categories.test.ts/categories.test View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

teamleaderleo and others added 3 commits October 14, 2026 07:05
- vp fmt webviews/src/pages/home-channels/AttachmentViews.tsx
- vp fmt webviews/src/pages/home-channels/Composer.tsx
- vp fmt webviews/src/pages/home-channels/HomeChannelsPage.tsx
- vp fmt webviews/src/pages/home-channels/attachmentService.ts
- vp fmt webviews/src/pages/home-channels/icons.tsx

Autofix-Run: https://github.com/manaflow-ai/cmux/actions/runs/38577497492
@teamleaderleo
teamleaderleo merged commit a661eeb into feat-cmux-next Oct 14, 2026
118 of 144 checks passed
@teamleaderleo
teamleaderleo deleted the op-next-theme/subtle-elevation branch October 14, 2026 14:40
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