Skip to content

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

Merged
devakesu merged 2 commits into1.1.3from
copilot/sub-pr-107
Mar 6, 2026
Merged

fix: tighten hybrid-device touch guards and pin Node version in CI#108
devakesu merged 2 commits into1.1.3from
copilot/sub-pr-107

Conversation

Copy link
Contributor

Copilot AI commented Mar 6, 2026

The previous touch guards used (pointer: coarse) which only checks the primary pointer — on hybrid devices (iPad + trackpad, convertibles) the primary pointer can be fine even when touch is present, letting scroll jank reappear.

Changes

  • reactive-glow.js — replace (pointer: coarse) with (any-pointer: coarse) || navigator.maxTouchPoints > 0 so the scroll pulse is skipped on any touch-capable device regardless of primary pointer type:

    const hasAnyCoarsePointer =
      typeof window.matchMedia === 'function' &&
      window.matchMedia('(any-pointer: coarse)').matches;
    const hasTouchPoints =
      typeof navigator !== 'undefined' &&
      typeof navigator.maxTouchPoints === 'number' &&
      navigator.maxTouchPoints > 0;
    const isTouchDevice = hasAnyCoarsePointer || hasTouchPoints;
  • globals.css — tighten scroll media query from (pointer: fine) to (pointer: fine) and (not (any-pointer: coarse)), preventing desktop smooth-scroll / overscroll containment from applying on hybrid devices that expose a fine primary pointer alongside touch:

    @media (pointer: fine) and (not (any-pointer: coarse)) { … }
  • deploy.yml — pin Lighthouse CI job's node-version from the floating '20' to '20.19.0', matching the guard job and satisfying engine-strict=true.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…ode 20.19.0

Co-authored-by: devakesu <61821107+devakesu@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix mobile scroll lag and update dependencies fix: tighten hybrid-device touch guards and pin Node version in CI Mar 6, 2026
@devakesu devakesu marked this pull request as ready for review March 6, 2026 05:53
Copilot AI review requested due to automatic review settings March 6, 2026 05:53
@devakesu devakesu merged commit f0b679e into 1.1.3 Mar 6, 2026
@devakesu devakesu deleted the copilot/sub-pr-107 branch March 6, 2026 05:53
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

Improves hybrid-device behavior by preventing scroll-related visual effects and smooth-scroll CSS from activating when touch input is available (even if the primary pointer is fine), and aligns CI Node.js versioning with the repo’s engine constraints.

Changes:

  • Update touch detection in reactive-glow.js to treat devices as touch-capable when any coarse pointer is present or when navigator.maxTouchPoints > 0.
  • Restrict “desktop-only” scroll CSS to pointer: fine devices that do not expose any coarse pointer.
  • Pin the Lighthouse CI job Node.js version to 20.19.0 to match engine-strict/engines.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
public/js/reactive-glow.js Uses any-pointer: coarse and maxTouchPoints to avoid scroll-pulse jank on hybrid/touch-capable devices.
app/globals.css Prevents desktop smooth-scroll/overscroll containment from applying on hybrid devices with touch.
.github/workflows/deploy.yml Pins Lighthouse job Node.js to 20.19.0, matching the guard job and repo engines.

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

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