Skip to content

feat(sidebar): reveal project-row action icons on hover/focus#2806

Open
AgentWrapper wants to merge 3 commits into
mainfrom
ao/agent-orchestrator-25/sidebar-hover-actions
Open

feat(sidebar): reveal project-row action icons on hover/focus#2806
AgentWrapper wants to merge 3 commits into
mainfrom
ao/agent-orchestrator-25/sidebar-hover-actions

Conversation

@AgentWrapper

@AgentWrapper AgentWrapper commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Closes #2805

Replaces the permanently-visible dashboard / orchestrator / ⋮ menu icon cluster on each project row with a hover/focus-revealed cluster:

  • Hidden by default on pointer-hover devices (@media (hover: hover)).
  • Revealed when the project row is hovered, when focus moves anywhere inside the row (keyboard tabbing), or while a dropdown inside the action cluster is open.
  • Always visible on touch devices (hover: none) so the actions remain discoverable and tappable.
  • Keeps the existing pr-sidebar-project-actions reserved padding so project names never overlap the hidden hit targets.
  • Respects prefers-reduced-motion by disabling the fade transition.

Files changed

  • frontend/src/renderer/components/Sidebar.tsx – applies the sidebar-project-actions class and updates the explanatory comment.
  • frontend/src/renderer/styles.css – adds the hover/focus/touch CSS rules.
  • frontend/src/renderer/components/Sidebar.test.tsx – renames the existing padding test and adds a keyboard-focusability test.

Verification

  • cd frontend && npm run test -- src/renderer/components/Sidebar.test.tsx (36 tests passed)
  • cd frontend && npm run typecheck

Reduce sidebar clutter by hiding the dashboard, orchestrator, and kebab
icons on project rows until the row is hovered or keyboard focus moves
into it. Icons stay visible on touch devices (hover:none) and while a
dropdown inside the cluster is open. The existing project-row padding
continues to reserve space so names never overlap the hidden hit area.

Closes #2805

@Vaibhaav-Tiwari Vaibhaav-Tiwari left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new CSS is supposed to hide sidebar project action icons until hover/focus, but another existing CSS rule overrides it and keeps the icons visible all the time.
So the PR’s main feature does not actually work.

The action cluster also carries .sidebar-expanded-chrome, whose visible-
state rule has higher specificity than a plain class and was keeping the
icons opaque. Scope the hover/focus reveal opacity rules under
[data-expanded-chrome="visible"] so they win and the icons actually hide
on pointer-hover devices.

Addresses review feedback on PR #2806.

@AgentWrapper AgentWrapper left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed: the action cluster also carries .sidebar-expanded-chrome, whose visible-state rule ([data-slot="sidebar-container"][data-expanded-chrome="visible"] .sidebar-expanded-chrome) has higher specificity than a plain class and was forcing opacity: 1.

I scoped the hover/focus reveal rules under [data-expanded-chrome="visible"] with matching specificity so the icons now actually hide on pointer-hover devices. The collapse/expand fade behavior is preserved because the cluster still keeps .sidebar-expanded-chrome.

@Vaibhaav-Tiwari Vaibhaav-Tiwari left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

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.

feat(sidebar): reduce project-row icon clutter — reveal board/orchestrator/menu actions on hover

3 participants