Skip to content

Rounded Panels Bugs We Fixed

github-actions[bot] edited this page Oct 18, 2026 · 1 revision

The bugs found in rounded panels, what caused each, and why we fixed it the way we did. The user side is in Rounded panels.

The editor did not stand out in Nibtree Dark. In Nibtree Light the editor's tab strip showed as a white rounded panel on the grey window. In Nibtree Dark the frame and the editor were both #1e1f22, so the tabs and the top of the editor melted into the window and only the file toolbar showed. The frame was only checked against --panel, but in rounded mode the tab strip and the code take --editor-bg. The fix sets the Nibtree Dark frame to #131416 (darker) and makes frameColor() and its test keep the frame apart from the editor color too. That also fixed Dusk, Nord, Gruvbox Dark and Rose Pine. Dark themes shade the darker surface, so the frame sits below both.

The Changes tab lost the line between its list and the diff. Its handle sits inside one panel but took the gap margins, pulling the diff 6px over the list's border. ResizeHandle now takes inPanel to keep its normal size, a prop so any handle inside a panel can opt out.

The activity bars got a border and stood off the window edge. After the move to the UI library, each bar showed a line beside the panel and a strip of frame between it and the window edge. The old app styles that put the bars on the frame went away with the app files, and AppShell had no rule for them. AppShell now pulls the first and last bar out to the window edge and gives the bar the frame color with no border, so every app built on the shell gets the same look.

No line between the tabs and the code in dark themes. A rounded editor needs a thin line under its tabs; ours showed none in Nibtree Dark. The rounded TabStrip drew its bottom border in --border, which in dark themes is the editor color itself, and the strip sits on the editor color too. The rounded look now keeps the strip's --border-strong line, the one the flat look uses, so it shows on every theme without a new color token.

The merge banner ran edge to edge. In the rounded look, "Merging feature into main" was a flat bar across the whole window, touching its sides and the panels under it. AppShell rendered the banners straight into the shell, outside the body that gives panels their gap and corners. The shell now puts the banners in their own box, and in the rounded look each banner gets the panel gap at its sides and below, the panel radius and no border. The flat look keeps the full-width bar. Doing it in the shell covers every banner (merge, rebase, bisect) at once.

Home

Using Nibtree

Developers

How features work

Clone this wiki locally