Skip to content

fix: mark the current sibling in the crumb menu with a bar - #4

Open
huntharo wants to merge 2 commits into
mainfrom
fix/sibling-menu-check
Open

huntharo wants to merge 2 commits into
mainfrom
fix/sibling-menu-check

Conversation

@huntharo

@huntharo huntharo commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Problem

The breadcrumb sibling menu marked the current folder only in bold, and
each row had both the keyboard highlight fill and an independent hover
fill. With the pointer on another row, two rows were filled and bold alone
did not say which folder you were in.

Fix

  • The current row keeps an accent bar before its name, like the one beside
    the name in the Selection panel (w(space::XS), h(text::BODY),
    theme.accent); the bold stays. Every row has the bar's lane, so names
    line up.
  • The separate .hover fill is gone. Entering a row with the pointer moves
    the single CrumbMenu::highlighted the arrow keys move, so only one row
    is ever filled. Only entering a row moves it: a pointer resting on a row
    does not take the highlight back after arrow-key navigation. (The menu
    scrolls, but keyboard navigation does not scroll the highlight into view
    today, so there is nothing for the pointer to fight.)
  • size::SIBLING_MENU goes from 24 to 25 rem: the bar's lane plus its
    gap, so names keep the room they had.

Why a bar and not a check

The first version used a check, as the Power Efficiency menu does (#2).
There a check means the saved choice, as in any menu. This menu is for
moving around, though, and a check beside a folder reads as picked, which
is the wrong message in an app for picking what to delete. The removal
log also already uses a check beside a path to mean removed.

Before / after

Current folder Projects, pointer on Music.

Before: Projects and Music both filled

After: only Music filled, Projects keeps its bar

Verification

  • cargo xtask lint and cargo xtask test green.
  • a_crumb_lists_its_siblings_and_jumps_sideways now reopens the menu,
    moves the pointer onto a non-current row, and asserts the highlight
    moved there and sibling-here lies inside the current row.
  • Checked in a cargo xtask bundle build against a small demo tree
    (screenshots above).

Bold alone lost to the hover fill: with the pointer on another row, two
rows were filled and nothing said which folder you were in. The current
sibling now keeps a check wherever the highlight goes, and the pointer
moves the same single highlight the arrow keys do. The menu is wider by
the check lane and its gap, so names keep the room they had.
A check beside a folder read as picked, which in an app for picking what
to delete is the wrong message, and the removal log already uses a check
to mean removed. The current sibling now keeps an accent bar like the
Selection panel's. The bar's lane is narrower than the check's, so the
menu gives back the difference.
@huntharo huntharo changed the title fix: keep a check on the current sibling in the crumb menu fix: mark the current sibling in the crumb menu with a bar Sep 30, 2026
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