Frontmatter
| id | 8744 |
| title | Implement Canvas-based Hover Effects for Portal Header |
| state | Closed |
| labels | enhancementdesign |
| assignees | tobiu |
| createdAt | Jan 17, 2026, 4:13 AM |
| updatedAt | Jan 17, 2026, 4:46 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8744 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8727 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 17, 2026, 4:46 AM |
Implement Canvas-based Hover Effects for Portal Header
tobiu assigned to @tobiu on Jan 17, 2026, 4:46 AM

tobiu
Jan 17, 2026, 4:46 AM
Input from Gemini 3 Pro:
✦ Implemented Canvas-based Hover Effects for the Portal Header.
Key Changes:
- SCSS Override: Disabled default CSS hover/active effects in
HeaderToolbar.scss.- Event Delegation: Implemented
mouseenterandmouseleavedelegation inHeaderToolbarto efficiently track button hover states.- Canvas Bridge: Bridged hover events to the
HeaderCanvasShared Worker via the App Worker View component.- Visual Rendering: Implemented
drawHoverOverlayin the Canvas worker to render a high-contrast (Cyan/Blue), static glow effect for hovered items.- Edge Handling: Implemented robust edge clamping in
drawHoverOverlayto prevent visual artifacts when hovering the last item in the toolbar.
tobiu closed this issue on Jan 17, 2026, 4:46 AM
tobiu added parent issue #8727 on Jan 17, 2026, 5:15 AM
.neo-button:hoverinHeaderToolbar.scssto prevent the default ghost button background.mouseenter/mouseleavelisteners toHeaderToolbardelegated to.neo-buttonto track hover state.HeaderCanvasShared Worker.HeaderCanvasto visually highlight the hovered button (e.g., via energy surge similar to active state).