Frontmatter
| id | 9485 |
| title | Grid: Horizontal Scroll Performance & Jitter for Locked Columns |
| state | Closed |
| labels | bugaigrid |
| assignees | tobiu |
| createdAt | Mar 16, 2026, 4:08 PM |
| updatedAt | Mar 16, 2026, 8:37 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9485 |
| author | tobiu |
| commentsCount | 0 |
| parentIssue | 9456 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 16, 2026, 8:37 PM |
We implemented the core architectural requirements for the locked columns feature, but horizontal scrolling performance is currently laggy and jitterish. The locked columns visually lag behind while scrolling, taking hundreds of milliseconds to catch up.
We have applied some initial fixes (throttling the main thread addon, implementing cell recycling for Pass 2 to reduce VDOM deltas, and resolving an issue with the visibility state of locked
Componentcolumns), but further investigation is needed to achieve 60fps locked column pinning.We need to deeply profile the horizontal scroll event pipeline and challenge the CSS architecture (e.g. relying on both
leftfor layout andtransform: translateXfor offsets).Tasks:
Componentcolumns (hideMode: 'visibility') to vanish.requestAnimationFramethrottle toGridColumnScrollPinning.mjsto prevent CSS var flood.left+transformwith purely CSS variable-driven layout logic (left: calc(...)) or similar GPU-friendly approaches.