LearnNewsExamplesServices
Frontmatter
id8678
titleImplement Hero Container Wrapper
stateClosed
labels
bugaiarchitecture
assigneestobiu
createdAtJan 15, 2026, 4:29 AM
updatedAtJan 15, 2026, 11:51 AM
githubUrlhttps://github.com/neomjs/neo/issues/8678
authortobiu
commentsCount1
parentIssue8661
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJan 15, 2026, 11:51 AM

Implement Hero Container Wrapper

Closed v11.22.0 bugaiarchitecture
tobiu
tobiu commented on Jan 15, 2026, 4:29 AM

Objective

Fix the "Sticky Canvas" issue where the Home Canvas remains fixed on screen while scrolling down to other sections.

Tasks

  1. Wrapper Component: Create Portal.view.home.HeroContainer (or similar).
  2. Composition: Move HomeCanvas and MainNeo inside this container.
  3. Positioning: Ensure the Canvas is absolute positioned within the Container, not fixed to the viewport.
  4. Lifecycle Verification: Verify that scrolling the Hero out of view triggers pause(), and scrolling back triggers resume(). This effectively tests the visibility observer.
tobiu assigned to @tobiu on Jan 15, 2026, 4:29 AM
tobiu added the bug label on Jan 15, 2026, 4:29 AM
tobiu added the ai label on Jan 15, 2026, 4:29 AM
tobiu added the architecture label on Jan 15, 2026, 4:29 AM
tobiu added parent issue #8661 on Jan 15, 2026, 4:29 AM
tobiu referenced in commit 62fc83d - "refactor: Implement HeroContainer architecture (#8678)" on Jan 15, 2026, 11:50 AM
tobiu
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:

  1. New Architecture: Created apps/portal/view/home/parts/hero/ containing:
    • Container.mjs: Extends BaseContainer. Wraps the visual content and the background canvas. Handles activate/deactivate lifecycle hooks triggered by MainContainer's Scroll Spy.
    • Content.mjs: (Refactored MainNeo.mjs). Extends Neo.container.Base. Contains the Logo, MagicMoveText, and Buttons.
    • Canvas.mjs: (Refactored HomeCanvas.mjs). Extends Neo.component.Canvas. The absolute positioned background.
  2. 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.
  3. Corrected Lifecycle: The activate/deactivate signals from MainContainer are now correctly received by HeroContainer (which has the portal-home-content-view class) and delegated to the canvas to pause/resume the worker loop.
  4. 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