Move the sidebar star from a hover button to the row menu #119

Merged
kleb merged 2 commits from feature/sidebar-star-menu into main 2026-08-26 08:18:52 +02:00
Collaborator

Every folder and project row in the sidebar reserved a fixed-width star button that stayed opacity-0 until the row was hovered. It cost horizontal space in every row whether or not the item was starred, and it was undiscoverable without a mouse landing on the row first.

Change

  • The toggle moves into the row's existing dropdown, alongside the other actions, followed by a separator.
  • Starred state is now shown by a small StarIcon beside the name, rendered only when starred.
  • The group class comes off both row containers, since nothing keys off group-hover: any more.

Same shape in FolderNode and ProjectNode. Net -19 lines. No new translation keys: sidebar.folder.star / unstar and sidebar.project.star / unstar already existed for the old button.

Worth a reviewer's opinion

The removed button carried aria-pressed, aria-label, and title. The replacement indicator is aria-hidden, so starred state is now visual-only. The action is still reachable through the labelled menu item, but the state is no longer announced to a screen reader. If that matters here, a visually-hidden label on starred rows would restore it. Flagging rather than deciding, since the icon-only presentation may be intentional.

Verification

typecheck, oxlint, eslint (--max-warnings=0), and format:check all clean. Full vitest suite passes: 70 files, 224 tests. There are no FolderNode/ProjectNode component tests in the repository, so nothing covers these two files directly.

Every folder and project row in the sidebar reserved a fixed-width star button that stayed `opacity-0` until the row was hovered. It cost horizontal space in every row whether or not the item was starred, and it was undiscoverable without a mouse landing on the row first. ## Change - The toggle moves into the row's existing dropdown, alongside the other actions, followed by a separator. - Starred state is now shown by a small `StarIcon` beside the name, rendered only when starred. - The `group` class comes off both row containers, since nothing keys off `group-hover:` any more. Same shape in `FolderNode` and `ProjectNode`. Net -19 lines. No new translation keys: `sidebar.folder.star` / `unstar` and `sidebar.project.star` / `unstar` already existed for the old button. ## Worth a reviewer's opinion The removed button carried `aria-pressed`, `aria-label`, and `title`. The replacement indicator is `aria-hidden`, so starred state is now visual-only. The *action* is still reachable through the labelled menu item, but the *state* is no longer announced to a screen reader. If that matters here, a visually-hidden label on starred rows would restore it. Flagging rather than deciding, since the icon-only presentation may be intentional. ## Verification typecheck, oxlint, eslint (`--max-warnings=0`), and format:check all clean. Full vitest suite passes: 70 files, 224 tests. There are no `FolderNode`/`ProjectNode` component tests in the repository, so nothing covers these two files directly.
Every folder and project row reserved a fixed-width star button that stayed
invisible until the row was hovered. It cost horizontal space in every row
whether or not the item was starred, and it was undiscoverable without a
mouse landing on the row first.

The toggle moves into the row's existing menu, alongside the other actions,
and starred state is now shown by a small star beside the name. The `group`
class goes with it, since nothing keys off group-hover any more.
Collaborator

kReview review

Verdict: no findings

No findings to address in the reviewed diff.

No meaningful correctness, accessibility, security, or regression issues are established by the visible changes.

Reviewed by kReview at f0900a2f4b. This comment is conservative and based only on the PR diff, metadata, and supplied repository context.

Est. cost ~$0.56 total (265.1k in / 2.1k out) · this run ~$0.28 (151.3k in / 903 out) / gpt-5.6-sol.

<!-- codex-forgejo-review --> <!-- codex-forgejo-review-head:f0900a2f4b81a9cb62448bb86c4b21db8adf77a5 --> ## kReview review **Verdict:** no findings No findings to address in the reviewed diff. No meaningful correctness, accessibility, security, or regression issues are established by the visible changes. _Reviewed by kReview at `f0900a2f4b`. This comment is conservative and based only on the PR diff, metadata, and supplied repository context._ _Est. cost ~$0.56 total (265.1k in / 2.1k out) · this run ~$0.28 (151.3k in / 903 out) / gpt-5.6-sol._ <!-- codex-forgejo-review-state:eyJoZWFkU2hhIjoiZjA5MDBhMmY0YjgxYTljYjYyNDQ4YmI4NmM0YjIxZGI4YWRmNzdhNSIsInN1bW1hcnkiOiJObyBtZWFuaW5nZnVsIGNvcnJlY3RuZXNzLCBhY2Nlc3NpYmlsaXR5LCBzZWN1cml0eSwgb3IgcmVncmVzc2lvbiBpc3N1ZXMgYXJlIGVzdGFibGlzaGVkIGJ5IHRoZSB2aXNpYmxlIGNoYW5nZXMuIiwiZmluZGluZ3MiOltdLCJjdW11bGF0aXZlQ29zdCI6eyJ1c2QiOjAuNTYyNjIsImlucHV0VG9rZW5zIjoyNjUwNTYsIm91dHB1dFRva2VucyI6MjEzMCwibW9kZWwiOiJncHQtNS42LXNvbCJ9fQ== -->
Moving the star out of a button dropped its aria-pressed with it, so the
indicator left behind was aria-hidden and a screen reader could no longer
tell a starred row from an unstarred one without opening the row's menu to
read the toggle label.

The indicator now carries its own accessible name, mirroring how the
needs-review icon in the same row already does it: the span holds role="img"
plus the label, and the glyph stays decorative. The state string is a new
key, so it lands in all three locales; the StringCatalog type is what caught
the missing Polish entry.
kleb merged commit 10822df057 into main 2026-08-26 08:18:52 +02:00
kleb deleted branch feature/sidebar-star-menu 2026-08-26 08:36:02 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
knopersikcuo/Planner!119
No description provided.