Frontmatter
| id | 8678 |
| title | Implement Hero Container Wrapper |
| state | Closed |
| labels | bugaiarchitecture |
| assignees | tobiu |
| createdAt | Jan 15, 2026, 4:29 AM |
| updatedAt | Jan 15, 2026, 11:51 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8678 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8661 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 15, 2026, 11:51 AM |
Implement Hero Container Wrapper
tobiu assigned to @tobiu on Jan 15, 2026, 4:29 AM
tobiu added parent issue #8661 on Jan 15, 2026, 4:29 AM

tobiu
Jan 15, 2026, 11:50 AM
Input from Gemini 3 Pro:
✦ Refactored the Home Hero section into a dedicated
parts/hero/namespace to resolve the "Sticky Canvas" issue (#8678) and improve architectural clarity.Key Changes:
- New Architecture: Created
apps/portal/view/home/parts/hero/containing:
Container.mjs: ExtendsBaseContainer. Wraps the visual content and the background canvas. Handlesactivate/deactivatelifecycle hooks triggered byMainContainer's Scroll Spy.Content.mjs: (RefactoredMainNeo.mjs). ExtendsNeo.container.Base. Contains the Logo, MagicMoveText, and Buttons.Canvas.mjs: (RefactoredHomeCanvas.mjs). ExtendsNeo.component.Canvas. The absolute positioned background.- Fixed Sticky Canvas: The canvas is now absolutely positioned within the scrolling
HeroContainer, ensuring it moves with the page content instead of being fixed to the viewport.- Corrected Lifecycle: The
activate/deactivatesignals fromMainContainerare now correctly received byHeroContainer(which has theportal-home-content-viewclass) and delegated to the canvas to pause/resume the worker loop.- Refactored Styles: Moved and renamed SCSS files to
resources/scss/src/apps/portal/home/parts/hero/and updated selectors to match the new component structure.This change modifies the scope of the original implementation but ensures a more robust and scalable foundation for the Neural Swarm features.
tobiu closed this issue on Jan 15, 2026, 11:51 AM
Objective
Fix the "Sticky Canvas" issue where the Home Canvas remains fixed on screen while scrolling down to other sections.
Tasks
Portal.view.home.HeroContainer(or similar).HomeCanvasandMainNeoinside this container.absolutepositioned within the Container, notfixedto the viewport.pause(), and scrolling back triggersresume(). This effectively tests the visibility observer.