• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

twbs / bootstrap / 28537402743
94%
main: 96%

Build:
Build:
LAST BUILD BRANCH: dev/coliff/v6-more-example-fixes
DEFAULT BRANCH: main
Ran 01 Jul 2026 05:59PM UTC
Jobs 1
Files 31
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Jul 2026 05:57PM UTC coverage: 94.157% (-0.2%) from 94.321%
28537402743

push

github

web-flow
ScrollSpy: deterministic active-section detection (#42557)

* ScrollSpy: deterministic active-section detection

Replace the scroll-direction + sequential-offsetTop heuristic (which
depended on IntersectionObserver entry order and mis-highlighted when
several sections shared the viewport) with a deterministic geometric
model: the active section is the deepest one whose top has scrolled to
or above an activation line near the top of the scroll root, read fresh
from getBoundingClientRect on each (rAF-throttled) scroll. At the bottom
the last section wins; above the first nothing is active.

Also: settle on scrollend (with a scroll-idle fallback) to restore the
URL hash via replaceState and move focus to the target after a
smooth-scroll navigation; escape section ids via parseSelector so dotted
/special-character ids no longer throw; add a topMargin option for the
activation line.

Supersedes #41016. Fixes #37858, #39198, #39248, #36387, #40526.

* docs wip

* rewrite more, add debugger to docs to illustrate

* missing test file

* ScrollSpy: fix CI — cspell, bundlewatch, branch coverage

- Add 'Fpath' to the cspell dictionary (from the #%2Fpath encoded-id example)
- Bump the four JS bundlewatch thresholds for the rewritten ScrollSpy
- Add option-derived activation-line tests (topMargin %/px, derived rootMargin
  with/without a scroll root, non-numeric topMargin, explicit rootMargin,
  overflow state, observer rebuild no-op, resize listener add/remove) to lift
  branch coverage from 88.63% back over the 89% threshold (now 89.21%)

* Skill: add ScrollSpy migration section to match the guide

Mirror the migration.mdx ScrollSpy changelog in the migration skill:
IntersectionObserver rewrite / activation line, removed offset+method
options, new topMargin, rootMargin default null, threshold default [0],
smoothScroll hash+focus restore, and getElementById id resolution.
Keeps the skill and guide consistent as this PR lands ScrollSpy.

1075 of 1205 branches covered (89.21%)

Branch coverage included in aggregate %.

162 of 168 new or added lines in 1 file covered. (96.43%)

1 existing line in 1 file now uncovered.

3018 of 3142 relevant lines covered (96.05%)

257.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
91.37
-1.43% js/src/scrollspy.js

Coverage Regressions

Lines Coverage ∆ File
1
91.37
-1.43% js/src/scrollspy.js
Jobs
ID Job ID Ran Files Coverage
1 28537402743.1 01 Jul 2026 05:59PM UTC 31
94.16
GitHub Action Run
Source Files on build 28537402743
  • Tree
  • List 31
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28537402743
  • 410d229f on github
  • Prev Build on v6-dev (#28485437214)
  • Next Build on v6-dev (#28537577186)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc