Skip to content

fix: restore keyboard scrolling sitewide - #350

Open
sutesumit wants to merge 1 commit into
tattle-made:masterfrom
sutesumit:fix/keyboard-scroll-sitewide
Open

sutesumit wants to merge 1 commit into
tattle-made:masterfrom
sutesumit:fix/keyboard-scroll-sitewide

Conversation

@sutesumit

@sutesumit sutesumit commented Sep 13, 2026

Copy link
Copy Markdown

Summary

This PR restores keyboard scrolling sitewide. Pages could not be scrolled with the keyboard (arrow keys, Space, PgUp/PgDn, Home/End) because the app was rendered inside a fixed-height overflow wrapper instead of the scrolling document.

Changes

  • Changed Grommet's boolean full prop to full=min in src/components/atomic/AppShell.js, so the app no longer renders inside a fixed 100vw/100vh overflow:auto wrapper — content flows in the document and scrolls natively.
  • Replaced the outer Box fill prop with height={{ min: 100vh }} so short pages still push the footer to the bottom of the viewport.
  • Also removes the phantom horizontal scrollbar caused by width: 100vw including scrollbar width, and restores native mobile address-bar scroll behavior.

How to Test

  1. Run the website locally.
  2. Open any page (e.g., the blog index or a long article).
  3. Without clicking anything, press arrow keys / Space / PgUp/PgDn / Home / End and confirm the page scrolls.
  4. Tab through links and confirm keyboard scrolling still works after focus moves inside the page.
  5. Open a short page (e.g., a 404 or a brief section page) and confirm the footer still sits at the bottom of the viewport with no content overflow.
  6. Confirm there is no horizontal scrollbar on desktop, and that mobile viewport scrolling/address-bar behavior is native.

Grommet's boolean `full` prop renders the site inside a fixed-height
`overflow:auto` wrapper (100vw/100vh). The document itself never scrolls,
and since the wrapper has no tabindex it can never receive focus, so
arrow keys, Space, PgUp/PgDn, Home/End cannot scroll any page until
something inside the container happens to be focused. `width: 100vw`
also includes the scrollbar width, causing a phantom horizontal
scrollbar on desktop, and the nested scroll container degrades mobile
address-bar behavior.

Switch to `full="min"` (min-height only, no fixed height, no overflow)
so content flows in the document and scrolls natively, and replace the
outer Box `fill` with `height={{ min: "100vh" }}` so short pages still
push the footer to the bottom of the viewport.
@netlify

netlify Bot commented Sep 13, 2026

Copy link
Copy Markdown

Deploy Preview for tattle-website-preview ready!

Name Link
🔨 Latest commit 908c33f
🔍 Latest deploy log https://app.netlify.com/projects/tattle-website-preview/deploys/6aa6e447b3e9800007b0fc05
😎 Deploy Preview https://deploy-preview-350--tattle-website-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

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.

1 participant