Skip to content

fix(mobile): scope desktop scroll CSS to pointer:fine + guard reactive-glow scroll listener — v1.1.3#106

Merged
devakesu merged 4 commits into1.1.3from
copilot/fix-scroll-issues-and-update-to-113
Mar 6, 2026
Merged

fix(mobile): scope desktop scroll CSS to pointer:fine + guard reactive-glow scroll listener — v1.1.3#106
devakesu merged 4 commits into1.1.3from
copilot/fix-scroll-issues-and-update-to-113

Conversation

Copy link
Contributor

Copilot AI commented Mar 6, 2026

Three unconditional behaviours were causing mobile scroll lag: overscroll-behavior-y: contain kills iOS rubber-band/momentum, scroll-behavior: smooth globally fights native momentum scroll, and the reactive-glow.js scroll listener was firing rAF + DOM mutations on every mobile scroll frame.

CSS — app/globals.css

  • Moved scroll-behavior: smooth, overscroll-behavior-y: contain, and scroll-snap-type: none under @media (pointer: fine) so they never apply on touch devices
/* before: applied on all devices */
html {
  scroll-behavior: smooth;
  overscroll-behavior-y: contain;
}

/* after: desktop only */
@media (pointer: fine) {
  html {
    scroll-behavior: smooth;
    overscroll-behavior-y: contain;
    scroll-snap-type: none;
  }
}

JS — public/js/reactive-glow.js

  • Added (pointer: coarse) guard around the scroll event listener; touch devices skip the rAF paint work entirely, matching the existing pattern in parallax.js
const isTouchDevice =
  typeof window.matchMedia === 'function' &&
  window.matchMedia('(pointer: coarse)').matches;

if (!isTouchDevice) {
  window.addEventListener('scroll', () => { /* rAF scale/opacity */ }, { passive: true });
}

Version bump & dependency updates

  • Version bumped 1.1.2 → 1.1.3 across package.json, package-lock.json, README.md, SECURITY.md
  • react-icons 5.5.0 → 5.6.0
  • GitHub Actions updated to latest: harden-runner v2.15.1, setup-node v6.3.0, trivy-action v0.34.2, docker/setup-buildx-action v4.0.0, docker/login-action v4.0.0, docker/build-push-action v7.0.0, anchore/sbom-action v0.23.0, actions/upload-artifact v7.0.0, actions/attest-build-provenance v4.1.0

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

- scope scroll-behavior/overscroll-behavior-y to @media (pointer: fine)
- add touch device guard to reactive-glow.js scroll listener
- bump version to 1.1.3 across package.json, README.md, SECURITY.md
- update react-icons 5.5.0 → 5.6.0
- update GitHub Actions: harden-runner v2.15.1, setup-node v6.3.0,
  trivy-action v0.34.2, setup-buildx-action v4.0.0, login-action v4.0.0,
  build-push-action v7.0.0, sbom-action v0.23.0, upload-artifact v7.0.0,
  attest-build-provenance v4.1.0

Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix scroll performance issues and update version references fix(mobile): scope desktop scroll CSS to pointer:fine, guard reactive-glow scroll listener — v1.1.3 Mar 6, 2026
Copilot AI changed the title fix(mobile): scope desktop scroll CSS to pointer:fine, guard reactive-glow scroll listener — v1.1.3 fix(mobile): scope desktop scroll CSS to pointer:fine + guard reactive-glow scroll listener — v1.1.3 Mar 6, 2026
@devakesu devakesu marked this pull request as ready for review March 6, 2026 05:32
Copilot AI review requested due to automatic review settings March 6, 2026 05:32
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reduces mobile scroll jank by preventing desktop-only scroll CSS and scroll-driven glow effects from running on touch devices, and bumps the release to v1.1.3 with dependency/CI action updates.

Changes:

  • Scope scroll-behavior, overscroll-behavior-y, and scroll-snap-type to @media (pointer: fine) to avoid interfering with touch scrolling.
  • Skip reactive-glow.js scroll listener work on (pointer: coarse) devices to reduce scroll-frame work on mobile.
  • Bump version to 1.1.3, update react-icons, and refresh pinned GitHub Actions.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
app/globals.css Moves desktop-oriented scroll CSS under a pointer:fine media query to preserve native touch scrolling behavior.
public/js/reactive-glow.js Adds a touch-device guard to avoid scroll rAF + DOM mutations on mobile.
package.json Version bump to 1.1.3 and updates react-icons to 5.6.0.
package-lock.json Locks updated dependency tree/version and aligns Node engine metadata.
README.md Updates displayed version to 1.1.3.
SECURITY.md Updates documented version to 1.1.3.
.github/workflows/deploy.yml Updates pinned action SHAs/versions used in CI/CD pipeline.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

devakesu and others added 2 commits March 6, 2026 11:07
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Devanarayanan <fusion@devakesu.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Devanarayanan <fusion@devakesu.com>
@devakesu devakesu changed the base branch from main to 1.1.3 March 6, 2026 05:40
@devakesu devakesu merged commit af973fb into 1.1.3 Mar 6, 2026
8 checks passed
@devakesu devakesu deleted the copilot/fix-scroll-issues-and-update-to-113 branch March 6, 2026 05:42
@devakesu devakesu mentioned this pull request Mar 6, 2026
devakesu added a commit that referenced this pull request Mar 6, 2026
* fix(mobile): scope desktop scroll CSS to pointer:fine + guard reactive-glow scroll listener — v1.1.3 (#106)

* Initial plan

* fix: mobile scroll lag + bump to v1.1.3

- scope scroll-behavior/overscroll-behavior-y to @media (pointer: fine)
- add touch device guard to reactive-glow.js scroll listener
- bump version to 1.1.3 across package.json, README.md, SECURITY.md
- update react-icons 5.5.0 → 5.6.0
- update GitHub Actions: harden-runner v2.15.1, setup-node v6.3.0,
  trivy-action v0.34.2, setup-buildx-action v4.0.0, login-action v4.0.0,
  build-push-action v7.0.0, sbom-action v0.23.0, upload-artifact v7.0.0,
  attest-build-provenance v4.1.0

Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>

* Update .github/workflows/deploy.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Devanarayanan <fusion@devakesu.com>

* Update app/globals.css

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Devanarayanan <fusion@devakesu.com>

---------

Signed-off-by: Devanarayanan <fusion@devakesu.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>
Co-authored-by: Devanarayanan <fusion@devakesu.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: tighten hybrid-device touch guards and pin Node version in CI (#108)

* Initial plan

* fix: apply review feedback — any-pointer guard, hybrid CSS fix, pin Node 20.19.0

Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>

* fix(css): replace MQ4 negation with MQ3-compatible scroll behavior guards (#109)

* Initial plan

* fix(css): replace MQ Level-4 negation with MQ3-compatible two-block approach for scroll behavior

Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>

---------

Signed-off-by: Devanarayanan <fusion@devakesu.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants