feat(sidepanel): outlined active state for left panel + settings nav#102
feat(sidepanel): outlined active state for left panel + settings nav#102BunsDev wants to merge 6 commits into
Conversation
Active toolbelt button on the left panel and active row in the settings sidebar now render with a thin theme.outline() border and no background fill, aligning with the shadcn-style nav pattern. The underlying shared button themes are untouched; the outline is applied as a local style override at the call sites. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Approved brainstorming output for an optional tweakcn-aligned ui: token block in the theme schema plus an in-settings CSS import flow. Implementation plan is still pending. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@copilot resolve the merge conflicts in this pull request |
|
@copilot resolve the merge conflicts in this pull request |
There was a problem hiding this comment.
Pull request overview
Updates active-state styling for navigation controls to use an outlined border (theme outline()) with no background fill, aligning left-panel toolbelt buttons and settings sidebar rows to a consistent “outlined active” pattern. The PR also adds a large forward-looking spec document about theme customization/import that is not directly tied to the sidepanel change.
Changes:
- Left panel toolbelt active button switches from background fill to a 1px outline border.
- Settings sidebar (top-level pages + umbrella subpages) active row switches from Accent variant fill to Text variant with a 1px outline border.
- Adds a new spec doc for deeper theme customization via tweakcn CSS import.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docs/superpowers/specs/2026-05-20-theme-customization-tweakcn-design.md | New planning/spec document for theme schema expansion and tweakcn import flow. |
| app/src/workspace/view/left_panel.rs | Changes toolbelt icon button active styling to outlined border and removes active background fill. |
| app/src/settings_view/settings_page.rs | Changes settings page nav button to outlined active border (Text variant + border). |
| app/src/settings_view/nav.rs | Changes settings umbrella subpage buttons to outlined active border (Text variant + border). |
Comments suppressed due to low confidence (2)
docs/superpowers/specs/2026-05-20-theme-customization-tweakcn-design.md:233
- These steps also refer to writing YAMLs under
~/.config/warp/themes/..., but the app useswarp_core::paths::themes_dir()for custom themes. Please update this section to match the actual themes directory used by the runtime, or describe it abstractly to stay accurate across OSes.
On save:
- Writes `~/.config/warp/themes/<slug>.yaml` for the dark block.
- Writes `~/.config/warp/themes/<slug>-light.yaml` for the light block if present.
- Re-runs the theme loader (`load_theme_configs()` in `app/src/user_config/native.rs:168`).
- Selects the new theme via `WorkspaceAction::ShowThemeChooser` → set-current.
docs/superpowers/specs/2026-05-20-theme-customization-tweakcn-design.md:240
- The migration section mentions existing user YAMLs under
~/.config/warp/themes/, but the runtime themes directory is derived fromwarp_core::paths::themes_dir()(data_dir/themes). Update this reference so the backward-compat story is accurate.
### 6. Migration / backward compatibility
- **Built-in themes** in `app/src/themes/default_themes.rs`: untouched. All existing accessors fall back to today's derivation when `ui` is `None`.
- **Existing user YAMLs** in `~/.config/warp/themes/`: untouched. Same fallback.
- **Pixel parity test** (see §7) locks down that any theme without a `ui:` block renders identically to today.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Release scope note: deferred from v0.0.6. This is UI/theme follow-up work and is currently dirty against main, so it should not block the OSS release unless Val explicitly retargets it. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Closing as superseded — the work in this branch has already landed on main via separate commits:
Diffing this branch against current main shows |
Active toolbelt button on the left panel and active row in the settings sidebar now render with a thin theme.outline() border and no background fill, aligning with the shadcn-style nav pattern. The underlying shared button themes are untouched; the outline is applied as a local style override at the call sites.