5.0.2 (2026-09-09)
- Bundle Motion's spring generator with a small animation driver, removing the Motion runtime dependency tree and reducing the package installation to about 322 KB excluding React peers, including source maps.
- Preserve the public API, spring settings, drag velocity, reduced motion, and settling timing; suppress stale completion callbacks after cancellation.
- Compare spring trajectories and completion timing against Motion's existing numeric engine, and cover cancellation, reversal, frame timing, and pauses.
- Enforce an unpacked package budget and verify clean ESM, CommonJS, and TypeScript consumers without Motion installed.
5.0.1 (2026-09-04)
- Fade the sheet surface elevation with the closing motion so its shadow no longer disappears abruptly when the portal unmounts.
5.0.0 (2026-09-03)
Version 5 is a stable breaking redesign for React 19. Applications upgrading from version 4 should follow the migration guide to adopt the compound API, named snap points, stylesheet exports, and replacement lifecycle contracts.
- Add a compound
SheetAPI with controlled and uncontrolled state, named snap points, forwarded refs, andasChildcomposition. - Add modal focus containment, background isolation, accessible title and description registration, Escape handling, and focus restoration.
- Add owned pointer, nested-scroll, layout-observation, and motion boundaries with interruption and reduced-motion handling.
- Add separate
core.css,theme.css,tokens.css, andstyles.cssexports with a checkedrsbsnamespace. - Add a Next.js documentation site, interactive examples, migration guide, and responsive accessible design.
- Add release-candidate verification for the public type contract, packed consumers, browser behavior inventory, production audit, package contents, and bundle budgets.
- Add a deterministic, side-effect-free alpha readiness command and an explicit unchecked maintainer sign-off checklist.
- Require React 19 and use Node.js 24 LTS for development, CI, and releases.
- Replace callback snap calculations with named pixel, percentage, and content-sized snap points.
- Keep the animation implementation private instead of exposing spring types or lifecycle callbacks.
- Replace legacy
data-rsbs-*styling contracts with stable namespaced classes and low-specificity mechanical rules.
- Remove the version 4 imperative ref, spring lifecycle callbacks, legacy stylesheet imports, and presentation wrapper props.
- Remove compatibility with React 16 through 18 and obsolete browser targets.
See the migration guide for the complete mapping.
4.1.0 (2026-09-02)
This release is a non-breaking stabilization update. Existing v4 applications do not need a migration.
- Respect a controlled
maxHeightvalue during the initial render. - Keep spring lifecycle state and asynchronous callbacks deterministic.
- Forward accessible dialog naming and description attributes.
- Apply
aria-modalonly when the sheet is blocking.
- Add unit, accessibility, browser, and packed-package consumer coverage.
- Verify compatibility with React 16.14, 17, and 18.
- Publish explicit CommonJS, ESM, CSS, defaults, and type declaration exports.
- Restore clean lint, type-check, distribution, and documentation builds.
- Add Node.js 22 and 24 continuous-integration checks.
- Add automated dependency update configuration.
3.4.1 (2022-06-01)
- add 18 to react peer dep (d89c0bb)
3.4.0 (2021-06-23)
3.3.0 (2021-06-15)
3.2.1 (2021-01-26)
3.2.0 (2021-01-21)
- better velocity physics (65390c7)
- only animate on RESIZE if the source = element (ceb3671)
- use layout effect to prevent tearing on Safari (6b62559)
- add height getter to ref (51c8510)
- add source to RESIZE events (383e206), closes #53
- override source and velocity in snapTo (1afe79f)
- SNAP events now have
source(240c212), closes #87
3.1.4 (2020-12-29)
- improve TS definitions (a8102bf)
3.1.3 (2020-12-29)
- export prop types ts definitions (36cf999)
3.1.2 (2020-12-29)
- avoid dividing by zero during prerender (ca2b9ae)
3.1.1 (2020-12-29)
- iOS display cutouts caused a scrollbar in some cases (45c182c)
3.1.0 (2020-12-29)
- add skipInitialTransition to make skipping opt-in (f200ad0)
3.0.3 (2020-12-28)
- xstate deprecation warning on null events (e44e273)
3.0.2 (2020-12-28)
- RESIZE should never animate the content opacity (2470ccc)
3.0.1 (2020-12-28)
- filter out taps on drag (bc709a0)
3.0.0 (2020-12-28)
- The resize observer logic is rewritten to no longer require wrapper elements like
[data-rsbs-footer-padding]. If you're not using custom CSS and are simply importingreact-spring-bottom-sheet/dist/style.cssin your app then this isn't a breaking change for you.
If you're using custom CSS, here's the breaking changes:
[data-rsbs-header-padding]removed, update selectors to[data-rsbs-header][data-rsbs-content-padding]removed, update selectors to[data-rsbs-scroll][data-rsbs-footer-padding]removed, update selectors to[data-rsbs-footer][data-rsbs-antigap]removed, update selectors to[data-rsbs-root]:afterand make sure to addcontent: '';.[data-rsbs-content]is changed, update selectors to[data-rsbs-scroll].- The
<div style="overflow:hidden;">wrapper that used to be between[data-rsbs-content]and[data-rsbs-content-padding]is now within[data-rsbs-scroll], and no longer hardcodeoverflow: hidden, add[data-rsbs-content] { overflow: hidden; }to your CSS.
2.3.0 (2020-12-28)
2.2.7 (2020-12-19)
2.2.6 (2020-12-08)
- better type declarations (c19dd44)
2.2.5 (2020-12-08)
2.2.4 (2020-12-07)
2.2.3 (2020-12-07)
2.2.2 (2020-12-05)
- updated readme with more API docs and examples (6a48fab)
2.2.1 (2020-12-05)
- rewrite interpolations to always be in frame sync (cc43467)
2.2.0 (2020-12-05)
- Add RESIZE events (b3ff691)
2.1.0 (2020-12-05)
- use rAF instead of timeout to schedule unmount (7f3c018)
- add sibling prop support (767215b)
2.0.3 (2020-12-05)
- add CSS sourcemap (04bf99f)
- add keywords (05f4399)
- add more NaN type guards (7664d1a)
- guard against NaN in minSnap and maxSnap handlers (7dbf037)
- TS in microbundle breaks on [...(new Set)], swapping to Array.from (2402b5a)
2.0.2 (2020-12-05)
- microbundle defaults to preact, changed it back to react (4f52355)
2.0.1 (2020-12-05)
- deps: bump focus-trap (a099a54)
2.0.0 (2020-12-04)
- this is the real initial release,
v1is fake software.
1.0.6 (2020-12-04)
- fade out correctly on snap (17234bc)
1.0.5 (2020-12-03)
- update readme (ceb55d3)
1.0.4 (2020-12-03)
- v2 api ready, just need to clean up and write docs (96f158e)
1.0.3 (2020-12-02)
- deps: update dependency focus-trap to v6.2.2 (9f79d35)
1.0.2 (2020-12-01)
- API cleanup (dc2b126)
1.0.1 (2020-11-30)
- doh, semantic release pushed v1.0 instead of v0.2 :( (a5837bd)
- initial version (ef3ecfa)