Skip to content

Eliminate layout work during TOC scrolling#3677

Draft
reakaleek wants to merge 1 commit into
mainfrom
release-notes-content-visibility
Draft

Eliminate layout work during TOC scrolling#3677
reakaleek wants to merge 1 commit into
mainfrom
release-notes-content-visibility

Conversation

@reakaleek

Copy link
Copy Markdown
Member

Why

Long release-note pages contain hundreds of headings, and reading heading and TOC geometry while scrolling can repeatedly force expensive layout work. The active section should update without touching layout on the scroll path.

What

Cache heading and TOC geometry outside scrolling, then use binary searches over document positions to select the active links. Refresh the cache only when viewport or content layout changes, keep the progress indicator transform-only, and apply active styling directly to TOC items without descendant :has() matching.

Test plan

  • npm run test -- --runInBand Assets/toc-nav.test.ts
  • Pre-commit Prettier, TypeScript, and ESLint checks

Made with Cursor

Cache heading and TOC geometry outside the scroll path so long release-note pages remain responsive without changing active-section behavior.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants