Skip to content

feat(ui): add borderless chrome mode#481

Open
eduwass wants to merge 1 commit into
modem-dev:mainfrom
eduwass:feat/borderless-chrome
Open

feat(ui): add borderless chrome mode#481
eduwass wants to merge 1 commit into
modem-dev:mainfrom
eduwass:feat/borderless-chrome

Conversation

@eduwass

@eduwass eduwass commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

What

Adds an opt-in "borderless" chrome mode that replaces drawn borders and
separators with filled background bands derived from the active theme. The diff
still reads as distinct regions — file headers, the unchanged-lines band,
sidebar, popups, and comment boxes — but through layered surfaces instead of
lines, for a cleaner, modern look.

Bordered chrome remains the default; nothing changes unless you opt in.

How to toggle

  • --borderless / --no-borderless CLI flags
  • borderless config key
  • View → Borderless chrome menu entry
  • Shift+B keybinding (listed in the ? help)

Demo

2026.06.23.17.11.19.mp4

How it works

Each theme gains a derived surface elevation ladder (ChromeSurfaces)
mapped from its existing semantic palette (editor / panel / titlebar tokens), so
authored themes look native and adjacent levels stay visually distinct. A small
set of primitives centralizes the border-vs-band decision so the choice never
scatters across components:

  • chromeSurfaceBg(theme, level) — resolve a surface background by ladder level
  • overlaySurfaceStyle(theme) — bordered box vs filled band for popups/dialogs
  • railGlyph(theme) / ChromeSeparator — diff rails and separators

Touched chrome: menu bar, status bar, file-section headers, sidebar, diff rails,
menus/dialogs/popups, agent comment cards, and the pane divider (which still
reveals a rule while dragging to resize).

Tests

  • Cross-theme guardrail asserting adjacent surface levels stay distinguishable
    on every bundled theme
  • Keybinding guard (Shift+B stays out of the page-up alias)
  • Updated menu/help dialog coverage

Replace drawn borders and separators with filled background bands derived
from the active theme. Add a theme surface elevation ladder (code,
contextBand, sidebar, sectionHeader, overlay, note, selection) so file
headers, the unchanged-lines band, popups, and comment boxes stay visually
distinct without lines. Route chrome through chromeSurfaceBg/overlaySurfaceStyle
helpers and a ChromeSeparator primitive; the divider reveals an accent rule only
while resizing. Toggle via the View menu, the borderless config key, or
--borderless. A surfaces test asserts adjacent ladder levels stay distinct
across every bundled theme.
@greptile-apps

greptile-apps Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

PR author is not in the allowed authors list.

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