{"_id":"@bsky.app/expo-scroll-edge-effect","_rev":"6-18c10e2f7c0677cfd4df5ed714020b1f","name":"@bsky.app/expo-scroll-edge-effect","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.0":{"name":"@bsky.app/expo-scroll-edge-effect","version":"0.1.0","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","_id":"@bsky.app/expo-scroll-edge-effect@0.1.0","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"9fcde6b3eda94548ae283130c13a4c51050109ab","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.0.tgz","fileCount":43,"integrity":"sha512-89uWUlpfpgtVssk8Loeh+p8HeYT4iYstsltwwudw7Rqoxts2dy8TOMP74LaRRYWSyIP2A1qrW0OoJzr/2glNlQ==","signatures":[{"sig":"MEQCIGn/R6MLT+59O9U8uS+I7WAIMcOpV7V5KQFGnVjNUWi6AiAxLJ2DX+sa2JMfwyN6x4+18+pD4gt77CDjO4amEyzG+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29257},"main":"build/index.js","types":"build/index.d.ts","gitHead":"9bd61f8bb254f4c6ace933dcac6c5cb64c6103da","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","prepare":"expo-module prepare","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android","prepublishOnly":"expo-module prepublishOnly"},"_npmUser":{"name":"mozzius","email":"mozzius@protonmail.com"},"repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.11.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"packageManager":"pnpm@10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017","devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-scroll-edge-effect_0.1.0_1773151099326_0.4102915378353911","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bsky.app/expo-scroll-edge-effect","version":"0.1.2","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","_id":"@bsky.app/expo-scroll-edge-effect@0.1.2","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"c3ded76082630fba8206f8871c0098a863fd2654","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.2.tgz","fileCount":43,"integrity":"sha512-buFywfBOxQ3FmIxM3fwgNg9mTLnFlQKmy7uwORmHTfpmmjtJ4hknNfBF3YWpx9MY2EcdyX5JFhUapObD1+GzCQ==","signatures":[{"sig":"MEQCIC63pnRqHZnkwWDtYtawy7hCslde2TQrdFWHXInsUfxeAiB7Br+/di6e2goB7LA0UYeu23TcYIxuaBttdU45VirQPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-scroll-edge-effect@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28994},"main":"build/index.js","_from":"file:bsky.app-expo-scroll-edge-effect-0.1.2.tgz","types":"build/index.d.ts","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:59857f02-3ea1-4061-be2a-d3fbc519128d"}},"_resolved":"/tmp/71791d67a09d8ed39542dd0123fac8ff/bsky.app-expo-scroll-edge-effect-0.1.2.tgz","_integrity":"sha512-buFywfBOxQ3FmIxM3fwgNg9mTLnFlQKmy7uwORmHTfpmmjtJ4hknNfBF3YWpx9MY2EcdyX5JFhUapObD1+GzCQ==","repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.9.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-scroll-edge-effect_0.1.2_1773151587035_0.2994002444590569","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bsky.app/expo-scroll-edge-effect","version":"0.1.3","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","_id":"@bsky.app/expo-scroll-edge-effect@0.1.3","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"e4f2d813aecaa6e39e6d53a54370061c02a520a5","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.3.tgz","fileCount":43,"integrity":"sha512-bhdLwvCd+9YFaBxRrdl2hz9m25sdJycnTjsVXcMh9SqK/vp9f9VWwTETxwyp57WMtWWh6CBnpDdoL3azi1mE6A==","signatures":[{"sig":"MEUCIExw/CPCpwWFZgWKoJKdjC0Qmbqj5C4N3obubaWsBj3TAiEAk720RYexrqyBNi4hCRJ4vHWfYyKAHaeNZL8ZQ6GzXMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-scroll-edge-effect@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29075},"main":"build/index.js","_from":"file:bsky.app-expo-scroll-edge-effect-0.1.3.tgz","types":"build/index.d.ts","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:59857f02-3ea1-4061-be2a-d3fbc519128d"}},"_resolved":"/tmp/6585a68bf7ec32434422c763b45d6545/bsky.app-expo-scroll-edge-effect-0.1.3.tgz","_integrity":"sha512-bhdLwvCd+9YFaBxRrdl2hz9m25sdJycnTjsVXcMh9SqK/vp9f9VWwTETxwyp57WMtWWh6CBnpDdoL3azi1mE6A==","repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.9.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-scroll-edge-effect_0.1.3_1773151727156_0.5114752791011172","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bsky.app/expo-scroll-edge-effect","version":"0.1.4","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","_id":"@bsky.app/expo-scroll-edge-effect@0.1.4","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"8b785b606c3078b3f8d1ec200adaf13bc59c2fec","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.4.tgz","fileCount":43,"integrity":"sha512-P94YcYBqZfuUy7ewTrWulPTxTbs6Yvjg2xS5WX4I/F3R3cSQU9fc8vEzb2Pnn4Ieg2wukJdAywqzt+AnyWgJbw==","signatures":[{"sig":"MEUCIQDtUqsaWIsEfuK3GeUEkQqhmqJu7FLjMZMTXFS0TjQZUgIgPC15tJOo7MqLYkNJjhb7izyyYWg1alNdKymifkGKmLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-scroll-edge-effect@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29542},"main":"build/index.js","_from":"file:bsky.app-expo-scroll-edge-effect-0.1.4.tgz","types":"build/index.d.ts","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:59857f02-3ea1-4061-be2a-d3fbc519128d"}},"_resolved":"/tmp/1f16a1f58db9477410a2a4e6d80bbd17/bsky.app-expo-scroll-edge-effect-0.1.4.tgz","_integrity":"sha512-P94YcYBqZfuUy7ewTrWulPTxTbs6Yvjg2xS5WX4I/F3R3cSQU9fc8vEzb2Pnn4Ieg2wukJdAywqzt+AnyWgJbw==","repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.9.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"expo":"^54.0.33","prettier":"^3.8.1","@types/react":"~19.1.1","react-native":"0.81.5","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^55.0.2"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-scroll-edge-effect_0.1.4_1773315846122_0.541963483561128","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@bsky.app/expo-scroll-edge-effect","version":"0.1.9","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","_id":"@bsky.app/expo-scroll-edge-effect@0.1.9","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"59eb622d8f0046d6f595f264d57570d2d2e7d19b","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.9.tgz","fileCount":43,"integrity":"sha512-Gz+1nRFqvLo1TsmSquFEYJ7C6OVUWHYGVKsqaKBOP+GcrPv0mWNFhf6zRmNvBbmBznGN2w8so2o0URQRHwukVw==","signatures":[{"sig":"MEUCIFNWR7uyprvLPhS/9nOI5UJp8vO3xCBgambPrhehq+/fAiEAhhIeeaSoBHGSCa1MC6I3tVqHmC4ySz3IbrdnL3BSIKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-scroll-edge-effect@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29926},"main":"build/index.js","_from":"file:bsky.app-expo-scroll-edge-effect-0.1.9.tgz","types":"build/index.d.ts","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:59857f02-3ea1-4061-be2a-d3fbc519128d"}},"_resolved":"/tmp/f272b9e40687c9e345fd5b06de512ffa/bsky.app-expo-scroll-edge-effect-0.1.9.tgz","_integrity":"sha512-Gz+1nRFqvLo1TsmSquFEYJ7C6OVUWHYGVKsqaKBOP+GcrPv0mWNFhf6zRmNvBbmBznGN2w8so2o0URQRHwukVw==","repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.16.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@types/jest":"^30.0.0"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.4","prettier":"^3.8.1","typescript":"^6.0.3","@types/react":"~19.2.17","react-native":"0.86.0","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^56.0.3"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-scroll-edge-effect_0.1.9_1783498153291_0.1368811389232507","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"_id":"@bsky.app/expo-scroll-edge-effect@0.1.10","bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"dist":{"shasum":"c59f9b6cd3a965f8882fccf4521b89c8497434b3","tarball":"https://registry.npmjs.org/@bsky.app/expo-scroll-edge-effect/-/expo-scroll-edge-effect-0.1.10.tgz","fileCount":43,"integrity":"sha512-JebjLdZYuC89ougyFoxO736DQm/V3TRQ5xe1QC4ZWKAo2pVphw2T1i+NYVnvtXgdXFq87OGNOfuAQlu7I5Yktg==","signatures":[{"sig":"MEYCIQCY7X44lqxBM52zAScKcp2CDmKzOBaPt8LFGPrH/khjWAIhAI3Auiktr9jGflQ7YDcd3MgQyRPjUG7chkYCriGcSqH8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8HVHGsqh/4Oa24uqTuTxiuKgjGKjKHhXJdHB5cmwWYgIgDccmaGUtClVXWvZILA3prWeiRFgt8gk3XSgK5JHk838="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bsky.app%2fexpo-scroll-edge-effect@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30759},"main":"build/index.js","name":"@bsky.app/expo-scroll-edge-effect","_from":"file:bsky.app-expo-scroll-edge-effect-0.1.10.tgz","types":"build/index.d.ts","author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","scripts":{"lint":"expo-module lint","test":"expo-module test","build":"expo-module build","clean":"expo-module clean","open:ios":"xed example/ios","expo-module":"expo-module","open:android":"open -a \"Android Studio\" example/android"},"version":"0.1.10","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:59857f02-3ea1-4061-be2a-d3fbc519128d"}},"homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"_resolved":"/tmp/61419987226b08d195cc9d46c0755097/bsky.app-expo-scroll-edge-effect-0.1.10.tgz","_integrity":"sha512-JebjLdZYuC89ougyFoxO736DQm/V3TRQ5xe1QC4ZWKAo2pVphw2T1i+NYVnvtXgdXFq87OGNOfuAQlu7I5Yktg==","repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"_npmVersion":"11.19.0","description":"Expo module for UIScrollEdgeElementContainerInteraction","directories":{},"maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"@types/jest":"^30.0.0"},"_hasShrinkwrap":false,"devDependencies":{"expo":"^57.0.4","prettier":"^3.8.1","typescript":"^6.0.3","@types/react":"~19.2.17","react-native":"0.86.0","@expo/npm-proofread":"^1.0.1","expo-module-scripts":"^56.0.3"},"peerDependencies":{"expo":"*","react":"*","react-native":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-scroll-edge-effect_0.1.10_1789985078220_0.3509282673569638"}}},"time":{"created":"2026-03-10T13:58:19.235Z","modified":"2026-09-21T10:04:38.602Z","0.1.0":"2026-03-10T13:58:19.486Z","0.1.2":"2026-03-10T14:06:27.225Z","0.1.3":"2026-03-10T14:08:47.366Z","0.1.4":"2026-03-12T11:44:06.238Z","0.1.9":"2026-07-08T08:09:13.436Z","0.1.10":"2026-09-21T10:04:38.300Z"},"bugs":{"url":"https://github.com/bluesky-social/expo-scroll-edge-effect/issues"},"author":{"url":"https://github.com/mozzius","name":"Samuel Newman","email":"mozzius@protonmail.com"},"license":"MIT","homepage":"https://github.com/bluesky-social/expo-scroll-edge-effect#readme","keywords":["react-native","expo","expo-scroll-edge-effect","ExpoScrollEdgeEffect"],"repository":{"url":"git+https://github.com/bluesky-social/expo-scroll-edge-effect.git","type":"git"},"description":"Expo module for UIScrollEdgeElementContainerInteraction","maintainers":[{"name":"ds-boyce","email":"ds@blueskyweb.xyz"},{"name":"vineyardbovines","email":"spencerfpope@gmail.com"},{"name":"estrattonbailey","email":"npm@esb.lol"},{"name":"mozzius","email":"mozzius@protonmail.com"}],"readme":"# @bsky.app/expo-scroll-edge-effect\n\nAn Expo module wrapping [`UIScrollEdgeElementContainerInteraction`](https://developer.apple.com/documentation/uikit/uiscrolledgeelementcontainerinteraction) (iOS 26+). Allows views overlaying the edges of a scroll view to automatically influence the scroll edge effect shape.\n\nOn older iOS versions and other platforms, the components render as plain `View`s.\n\nhttps://github.com/user-attachments/assets/3c6e3ed1-b785-48cc-9d2e-63dfadb45ad2\n\n## Installation\n\n```sh\nnpm install @bsky.app/expo-scroll-edge-effect\n```\n\nThen run `npx pod-install` to link the native module.\n\n> Requires [`expo`](https://docs.expo.dev/bare/installing-expo-modules/) to be configured in your project.\n\n## Usage\n\n```tsx\nimport {\n  ScrollEdgeEffectProvider,\n  ScrollEdgeEffect,\n  useScrollEdgeEffectRef,\n} from \"@bsky.app/expo-scroll-edge-effect\";\n\nfunction Screen() {\n  return (\n    <ScrollEdgeEffectProvider>\n      <ScrollEdgeEffect edge=\"top\">\n        <MyHeader />\n      </ScrollEdgeEffect>\n\n      <ScrollContent />\n\n      <ScrollEdgeEffect edge=\"bottom\">\n        <MyFooter />\n      </ScrollEdgeEffect>\n    </ScrollEdgeEffectProvider>\n  );\n}\n\nfunction ScrollContent() {\n  const scrollEdgeRef = useScrollEdgeEffectRef();\n\n  return (\n    <ScrollView ref={scrollEdgeRef}>\n      {/* ... */}\n    </ScrollView>\n  );\n}\n```\n\n### With Reanimated\n\nThe ref returned by `useScrollEdgeEffectRef` is a callback ref, so it works with `mergeRefs`:\n\n```tsx\nconst animatedRef = useAnimatedRef();\nconst scrollEdgeRef = useScrollEdgeEffectRef();\n\n<Animated.ScrollView ref={mergeRefs([animatedRef, scrollEdgeRef])} />\n```\n\n## API\n\n### `<ScrollEdgeEffectProvider>`\n\nWraps your screen content. Holds the scroll view reference in context so that `<ScrollEdgeEffect>` components can attach to it.\n\n### `useScrollEdgeEffectRef()`\n\nReturns a callback ref to pass to your `ScrollView`. Must be used within a `<ScrollEdgeEffectProvider>`.\n\n### `<ScrollEdgeEffect>`\n\nWraps content that overlays a scroll view edge. On iOS 26+, descendant views (labels, buttons, images, etc.) automatically influence the scroll edge effect shape.\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `edge` | `'top' \\| 'bottom' \\| 'left' \\| 'right'` | Which scroll view edge this content overlays. |\n| `effect` | `'automatic' \\| 'hard' \\| 'soft' \\| 'hidden'` | Edge effect style. Defaults to `'automatic'`. `'hidden'` disables the interaction entirely. |\n| `fallbackStyle` | `ViewStyle` | Additional style applied on non-iOS platforms and iOS < 26. |\n| `...viewProps` | `ViewProps` | All standard View props are forwarded. |\n\n## Platform support\n\n| Platform | Behavior |\n|----------|----------|\n| iOS 26+  | Native `UIScrollEdgeElementContainerInteraction` |\n| iOS < 26 | Renders as a plain `View` (no crash) |\n| Android / Web | Renders as a plain `View` |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}