Settings: Move from modal to chrome surface#2890
Draft
shaunandrews wants to merge 2 commits intotrunkfrom
Draft
Conversation
Introduce CSS custom properties for the chrome surface (--color-chrome-*) and map them to Tailwind color utilities. Add .settings-chrome-surface class that remaps both Studio frame tokens and WordPress component tokens to work on the dark chrome background. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the floating Modal-based settings with a panel that renders directly on the dark chrome backdrop. Sidebar and frame slide offscreen to reveal it, with coordinated transitions on the topbar. - Add SettingsPanelProvider context for shared open/close state - Create SettingsPanel with two-column nav + content layout - Refactor sidebar toggle to use transform+margin (no text reflow) - Add overflow-hidden to MainSidebar to clip content during slides - Fade topbar controls when settings is open Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fc67596 to
0797ebd
Compare
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.
Proposed Changes
Right now, app settings live in a small floating modal. It works, but it's cramped — and as we add more settings (AI agents, skills, MCP, and whatever comes next), that modal is going to feel increasingly inadequate.
This PR moves settings out of the modal and onto a full-screen "chrome surface." The chrome is the dark background area behind the sidebar and content frame — it's always been there, we just haven't used it for anything interactive before.
When you open settings, the sidebar slides left and the content frame slides right, revealing the settings panel underneath. It gets the full viewport to breathe. Closing settings reverses the animation and everything slides back into place.
What's here:
SettingsPanelProvider— shared context for settings open/close state, replaces the old IPC-listener + local state approachSettingsPanel— new two-column layout (nav + content) rendered directly on the chrome surface, reusing all existing tab components--color-chrome-*CSS custom properties and matching Tailwind utilities, plus a.settings-chrome-surfaceclass that remaps both Studio and WordPress component tokens for dark-background renderingtransform+ negativemargininstead of width transitions, which eliminates text reflow during collapseWhat's NOT here:
UserSettingsmodal component still exists (unused) — can be removed once this direction is confirmedFuture thinking:
How AI was used in this PR
This was a vibe-coded exploration with Claude Code. I directed the design and interaction decisions, Claude helped implement.
Testing Instructions
Cmd+,, or the "Howdy, [name]" buttonEscape, orCmd+,again — everything should slide backPre-merge Checklist