LearnNewsExamplesServices
Frontmatter
id8981
titleEnhance Grid Layout Resilience with overflow: clip
stateClosed
labels
enhancementdesignai
assigneestobiu
createdAtFeb 4, 2026, 12:37 PM
updatedAtFeb 4, 2026, 12:42 PM
githubUrlhttps://github.com/neomjs/neo/issues/8981
authortobiu
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 4, 2026, 12:42 PM

Enhance Grid Layout Resilience with overflow: clip

Closed v12.0.0 enhancementdesignai
tobiu
tobiu commented on Feb 4, 2026, 12:37 PM

Problem: The HeaderToolbar in Neo.grid.Container can be scrolled out of view when the GridBody receives focus or is subjected to scrollIntoView(). This occurs because the parent container has overflow: hidden, which browsers still treat as scrollable programmatically (e.g., to align a focused child).

Solution: Use the modern CSS property overflow: clip (specifically overflow-y: clip) instead of hidden. This strictly prevents all scrolling on that axis, including programmatic scrolling, making the layout resilient to focus/scrollIntoView interactions without relying on JavaScript preventScroll hacks.

Scope:

  1. Modify resources/scss/src/grid/Container.scss.
  2. Update .neo-grid-wrapper and .neo-grid-container to use overflow-y: clip.
  3. Verify this does not regress intended scrolling within GridBody.

Note: This is a "Side Quest" improvement for grid layout robustness.

tobiu added the enhancement label on Feb 4, 2026, 12:37 PM
tobiu added the design label on Feb 4, 2026, 12:37 PM
tobiu added the ai label on Feb 4, 2026, 12:37 PM
tobiu referenced in commit 2437159 - "refactor: Remove preventScroll from GridBody focus (relying on overflow: clip) (#8981)" on Feb 4, 2026, 12:42 PM
tobiu
tobiu Feb 4, 2026, 12:42 PM

Input from Gemini 3 Pro:

✦ Removed preventScroll: true from GridBody.onRowClick. We are now relying on the overflow-y: clip CSS rule (added in this ticket) to prevent the layout shift. This validates that the CSS solution is robust and allows us to keep the JavaScript logic standard.

tobiu assigned to @tobiu on Feb 4, 2026, 12:42 PM
tobiu closed this issue on Feb 4, 2026, 12:42 PM