I noticed in Safari that if your s-modal content needs scrolling, trackpad/wheel scrolling isn’t working.
I fixed it for now with a custom workaround
I noticed in Safari that if your s-modal content needs scrolling, trackpad/wheel scrolling isn’t working.
I fixed it for now with a custom workaround
I think we have some fixes here already merged in but not yet deployed, but I’ll double check with the team.
This is great news thanks @Anthony_Frehner ![]()
Do you have an easy reproduction for us to validate on? You can fork this codepen to easily create one https://codepen.io/afrehner/pen/pvJmQvr
Sure @Anthony_Frehner here is the code you can use for validation. https://codepen.io/Farid-Movsumov-the-reactor/pen/LEZqdYr
<script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script>
<s-button commandFor="modal">Open</s-button>
<s-modal id="modal" heading="Details">
<div style="min-height: 1000px;">
Height 1000px - Try to scroll down in Safari
</div>
<s-button slot="secondary-actions" commandFor="modal" command="--hide">
Close
</s-button>
<s-button
slot="primary-action"
variant="primary"
commandFor="modal"
command="--hide"
>
Save
</s-button>
</s-modal>
I’ve created a couple demo’s now (here’s one), tested scrolling in desktop Safari and iOS Safari and I’m not finding any content not scrollable. Help me create a more definitive example? Or maybe the issue isnt in the modal?
Strange, these examples work for me in Safari as well. I will try to check what was different in my case and reproduce it for you tomorrow.
I can not reproduce it in the codepen but I recorded a screencast for you to show what happens inside my app so maybe this can help modal safari test - 13 February 2026 | Loom
very strange, the scrollbar thumb can be used but not the wheel… that’s very telling about the bug, as if there’s something overlaying and consuming the scroll event. does the keyboard scroll it the modal? is the issue isolated to just mousewheel? maybe theres some JS somewhere that’s calling preventDefault and stopping the scroll gesture? when you use inspect element with chrome devtools, is there anything in the way of your mouse when you hover the “un-mousewheee-scrollable area”, as this would indicate there’s an element in the way?
the bad news is, since all reproductions work outside of your app, it points towards an issue with the app. however, there’s a small change the issue is exclusively to when the modal is shown inside the app in shopify’s environment. i’ll try and investigate this, i’ll try opening other apps modals in shopify and see if any of them cant use the scroll wheel.
Same problem here! works in codepen but not inside my app, Im pretty sure there is a conflict with something inside the app itself, im still digging to find out what it is, I can imagine this happens to other devs as well as Im using an old official remix app template from Github
Update: Isolated the root cause, it’s app-bridge.js conflicting with polaris.js web components on Safari
I spent several hours systematically isolating this and can now confirm: this is NOT an app-specific issue. It reproduces on a completely fresh clone of the official Shopify Remix app template.
I cloned the official Shopify Remix template (git clone https://github.com/Shopify/shopify-app-template-remix.git), made zero changes except:
<script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script> to root.tsxs-modal containing long scrollable contentResult: Same bug. No scrolling on Safari. This is a bone-stock template with zero custom code, zero third-party dependencies, zero CSS customizations.
To make sure it wasn’t something in my app, I went through a systematic elimination:
Stripped root.jsx and app.jsx to match the template exactly — removed Tailwind, Intercom, PostHog, Sentry, all third-party scripts → still broken
Removed all stylesheets from the DOM (Tailwind, React Polaris CSS, Flip CSS, Inter font) → still broken
Injected a raw DOM modal via innerHTML bypassing React entirely → still broken
Created a clean iframe on the same page with only polaris.js and a modal — no app styles, no React, no Remix, nothing → scrolling works!
Added back Tailwind CSS, React Polaris CSS, and Vite HMR client to the iframe → still works
The only difference between the working iframe and the broken main page: app-bridge.js, which the Shopify admin automatically injects into the main document.
This is a conflict between app-bridge.js (automatically injected by the Shopify admin iframe) and polaris.js web components’ shadow DOM scroll handling on Safari.
s-modal scrolls perfectly in any context where app-bridge.js is not presents-modal breaks in any context where app-bridge.js is present — including a fresh template cloneapp-bridge.js is injected by the Shopify admin and cannot be removed or blocked, this needs to be fixed on Shopify’s side@argyle @Anthony_Frehner This matches your earlier observation that “the scrollbar thumb can be used but not the wheel… as if there’s something overlaying and consuming the scroll event.” App Bridge appears to be intercepting/consuming wheel events in a way that prevents them from reaching the shadow DOM scroll container on Safari.
Environment: Safari 18.x, macOS 15.x, polaris.js from CDN, embedded Shopify Remix app.
Happy you were able to reproduce this @Pama ![]()
we’ve forwarded the issue to the App Bridge team for deeper investigation, thanks for hanging in there while we work to reproduce the issue and confidently find a fix.