The focused schema-sidebar panel border (ADR-0046 DC3) is drawn bold. Bold
box-drawing glyphs render as broken / gapped line-art in the asciinema player
used for the website casts (the vertical strokes don't connect and don't line
up with the corner glyphs), and bold box-art is fragile in some terminals too.
Switch the focus indicator from bold to a non-bold accent colour.
Discovered while reviewing the website schema-sidebar cast (website branch);
filing here because the fix is app-side on main.
Where
src/ui.rs, panel_border_style (~line 280):
fnpanel_border_style(theme: &Theme,focused: bool)-> Style{iffocused{Style::default().fg(theme.fg).add_modifier(Modifier::BOLD)// <- the problem
}else{Style::default().fg(theme.border)}}
Proposed change (option A, user-approved)
Drop Modifier::BOLD from the focused arm and rely on colour for the focus
cue. Two viable flavours — implementer's choice (a quick visual check decides):
Minimal: keep theme.fg (bright) without bold. The focused panel already
contrasts bright fg against the muted theme.border of the unfocused
panels, so a clear focus cue remains with no bold.
More pop: use an accent colour instead, e.g. theme.mode_simple (blue) or
another existing theme colour, non-bold — a stronger, lazygit-style focus
border.
Either way: no Modifier::BOLD on box-drawing borders.
Expected fallout (please handle as part of the change)
Tier-2 insta snapshots (src/snapshots/): the ADR-0046 focus / expand
snapshots encode the bold border attribute and will need re-accepting
(cargo insta review).
Tier-1 tests asserting panel_border_style (if any) that check for BOLD need updating.
Doc comment on panel_border_style ("an accented, bold border")
should be reworded.
ADR-0046 DC3 describes the focused panel as an accent (bold) border —
record the refinement (colour, not bold) as an amendment/note in the ADR, and
update docs/adr/README.md per the index-upkeep rule if the ADR status line
changes.
Website follow-up (tracked separately on the website branch)
After this lands and merges, the schema-sidebar cast (and likely all casts)
will be re-recorded against the updated binary — no action needed here.
## Summary
The focused schema-sidebar panel border (ADR-0046 DC3) is drawn **bold**. Bold
box-drawing glyphs render as broken / gapped line-art in the asciinema player
used for the website casts (the vertical strokes don't connect and don't line
up with the corner glyphs), and bold box-art is fragile in some terminals too.
Switch the focus indicator from **bold** to a **non-bold accent colour**.
Discovered while reviewing the website `schema-sidebar` cast (website branch);
filing here because the fix is app-side on `main`.
## Where
`src/ui.rs`, `panel_border_style` (~line 280):
```rust
fn panel_border_style(theme: &Theme, focused: bool) -> Style {
if focused {
Style::default()
.fg(theme.fg)
.add_modifier(Modifier::BOLD) // <- the problem
} else {
Style::default().fg(theme.border)
}
}
```
## Proposed change (option A, user-approved)
Drop `Modifier::BOLD` from the focused arm and rely on **colour** for the focus
cue. Two viable flavours — implementer's choice (a quick visual check decides):
- **Minimal:** keep `theme.fg` (bright) without bold. The focused panel already
contrasts bright `fg` against the muted `theme.border` of the unfocused
panels, so a clear focus cue remains with no bold.
- **More pop:** use an accent colour instead, e.g. `theme.mode_simple` (blue) or
another existing theme colour, non-bold — a stronger, lazygit-style focus
border.
Either way: **no `Modifier::BOLD` on box-drawing borders.**
## Expected fallout (please handle as part of the change)
- **Tier-2 `insta` snapshots** (`src/snapshots/`): the ADR-0046 focus / expand
snapshots encode the bold border attribute and will need re-accepting
(`cargo insta review`).
- **Tier-1 tests** asserting `panel_border_style` (if any) that check for
`BOLD` need updating.
- **Doc comment** on `panel_border_style` ("an accented, **bold** border")
should be reworded.
- **ADR-0046 DC3** describes the focused panel as an accent (bold) border —
record the refinement (colour, not bold) as an amendment/note in the ADR, and
update `docs/adr/README.md` per the index-upkeep rule if the ADR status line
changes.
## Website follow-up (tracked separately on the website branch)
After this lands and merges, the `schema-sidebar` cast (and likely all casts)
will be re-recorded against the updated binary — no action needed here.
panel_border_style now marks the focused sidebar panel with a non-bold accent colour (theme.mode_simple, blue) instead of bright fg + Modifier::BOLD. The unfocused border stays muted (theme.border). Bold is untouched on text spans (titles, key hints) — the constraint is specifically that box-drawing borders carry no bold attribute, so they render cleanly in the asciinema cast player.
One correction to the fallout list: the Tier-2 insta snapshots did not need re-accepting — render_to_string captures cell symbols only, not styles, so a bold→colour change is invisible to them (full suite confirms, no snapshot churn). The Tier-1 panel_border_style assertion was updated, and a new render-level test now inspects the actual buffer border cells (focused → mode_simple, never BOLD; nothing focused → no border cell wears the accent), covering both the inline panel and the DC2 expand-on-focus overlay.
Decision recorded as ADR-0046 Amendment 1 (focus accent is a colour, not bold). Full suite green (2425 pass, 1 ignored).
The website schema-sidebar cast re-recording is tracked separately on the website branch, as noted.
Fixed in `fde50ce` (user-confirmed visually).
`panel_border_style` now marks the focused sidebar panel with a **non-bold accent colour** (`theme.mode_simple`, blue) instead of bright `fg` + `Modifier::BOLD`. The unfocused border stays muted (`theme.border`). Bold is untouched on *text* spans (titles, key hints) — the constraint is specifically that **box-drawing borders carry no bold attribute**, so they render cleanly in the asciinema cast player.
**One correction to the fallout list:** the Tier-2 `insta` snapshots did **not** need re-accepting — `render_to_string` captures cell *symbols* only, not styles, so a bold→colour change is invisible to them (full suite confirms, no snapshot churn). The Tier-1 `panel_border_style` assertion was updated, and a new **render-level test** now inspects the actual buffer border cells (focused → `mode_simple`, never `BOLD`; nothing focused → no border cell wears the accent), covering both the inline panel and the DC2 expand-on-focus overlay.
Decision recorded as **ADR-0046 Amendment 1** (focus accent is a colour, not bold). Full suite green (2425 pass, 1 ignored).
The website `schema-sidebar` cast re-recording is tracked separately on the website branch, as noted.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The focused schema-sidebar panel border (ADR-0046 DC3) is drawn bold. Bold
box-drawing glyphs render as broken / gapped line-art in the asciinema player
used for the website casts (the vertical strokes don't connect and don't line
up with the corner glyphs), and bold box-art is fragile in some terminals too.
Switch the focus indicator from bold to a non-bold accent colour.
Discovered while reviewing the website
schema-sidebarcast (website branch);filing here because the fix is app-side on
main.Where
src/ui.rs,panel_border_style(~line 280):Proposed change (option A, user-approved)
Drop
Modifier::BOLDfrom the focused arm and rely on colour for the focuscue. Two viable flavours — implementer's choice (a quick visual check decides):
theme.fg(bright) without bold. The focused panel alreadycontrasts bright
fgagainst the mutedtheme.borderof the unfocusedpanels, so a clear focus cue remains with no bold.
theme.mode_simple(blue) oranother existing theme colour, non-bold — a stronger, lazygit-style focus
border.
Either way: no
Modifier::BOLDon box-drawing borders.Expected fallout (please handle as part of the change)
instasnapshots (src/snapshots/): the ADR-0046 focus / expandsnapshots encode the bold border attribute and will need re-accepting
(
cargo insta review).panel_border_style(if any) that check forBOLDneed updating.panel_border_style("an accented, bold border")should be reworded.
record the refinement (colour, not bold) as an amendment/note in the ADR, and
update
docs/adr/README.mdper the index-upkeep rule if the ADR status linechanges.
Website follow-up (tracked separately on the website branch)
After this lands and merges, the
schema-sidebarcast (and likely all casts)will be re-recorded against the updated binary — no action needed here.
Fixed in
fde50ce(user-confirmed visually).panel_border_stylenow marks the focused sidebar panel with a non-bold accent colour (theme.mode_simple, blue) instead of brightfg+Modifier::BOLD. The unfocused border stays muted (theme.border). Bold is untouched on text spans (titles, key hints) — the constraint is specifically that box-drawing borders carry no bold attribute, so they render cleanly in the asciinema cast player.One correction to the fallout list: the Tier-2
instasnapshots did not need re-accepting —render_to_stringcaptures cell symbols only, not styles, so a bold→colour change is invisible to them (full suite confirms, no snapshot churn). The Tier-1panel_border_styleassertion was updated, and a new render-level test now inspects the actual buffer border cells (focused →mode_simple, neverBOLD; nothing focused → no border cell wears the accent), covering both the inline panel and the DC2 expand-on-focus overlay.Decision recorded as ADR-0046 Amendment 1 (focus accent is a colour, not bold). Full suite green (2425 pass, 1 ignored).
The website
schema-sidebarcast re-recording is tracked separately on the website branch, as noted.