Skip to content

Latest commit

 

History

History
340 lines (197 loc) · 16.7 KB

File metadata and controls

340 lines (197 loc) · 16.7 KB

5.0.2 (2026-09-09)

Changed

  • 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.

Testing

  • 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)

Fixed

  • 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.

Added

  • Add a compound Sheet API with controlled and uncontrolled state, named snap points, forwarded refs, and asChild composition.
  • 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, and styles.css exports with a checked rsbs namespace.
  • 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.

Changed

  • 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.

Removed

  • 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.

Fixed

  • Respect a controlled maxHeight value during the initial render.
  • Keep spring lifecycle state and asynchronous callbacks deterministic.

Accessibility

  • Forward accessible dialog naming and description attributes.
  • Apply aria-modal only when the sheet is blocking.

Testing

  • Add unit, accessibility, browser, and packed-package consumer coverage.
  • Verify compatibility with React 16.14, 17, and 18.

Build

  • Publish explicit CommonJS, ESM, CSS, defaults, and type declaration exports.
  • Restore clean lint, type-check, distribution, and documentation builds.

Maintenance

  • Add Node.js 22 and 24 continuous-integration checks.
  • Add automated dependency update configuration.

3.4.1 (2022-06-01)

Bug Fixes

  • add 18 to react peer dep (d89c0bb)

3.4.0 (2021-06-23)

Features

3.3.0 (2021-06-15)

Features

  • allow the developer to disable focus trap (#138) (ef176b3)

3.2.1 (2021-01-26)

Bug Fixes

  • deps: update dependency @reach/portal to ^0.13.0 (#94) (1cc8056)

3.2.0 (2021-01-21)

Bug Fixes

  • better velocity physics (65390c7)
  • only animate on RESIZE if the source = element (ceb3671)
  • use layout effect to prevent tearing on Safari (6b62559)

Features

  • 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)

Bug Fixes

3.1.3 (2020-12-29)

Bug Fixes

  • export prop types ts definitions (36cf999)

3.1.2 (2020-12-29)

Bug Fixes

  • avoid dividing by zero during prerender (ca2b9ae)

3.1.1 (2020-12-29)

Bug Fixes

  • iOS display cutouts caused a scrollbar in some cases (45c182c)

3.1.0 (2020-12-29)

Features

  • add skipInitialTransition to make skipping opt-in (f200ad0)

3.0.3 (2020-12-28)

Bug Fixes

  • xstate deprecation warning on null events (e44e273)

3.0.2 (2020-12-28)

Bug Fixes

  • RESIZE should never animate the content opacity (2470ccc)

3.0.1 (2020-12-28)

Bug Fixes

  • filter out taps on drag (bc709a0)

3.0.0 (2020-12-28)

Bug Fixes

BREAKING CHANGES

  • 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 importing react-spring-bottom-sheet/dist/style.css in 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]:after and make sure to add content: '';.
  • [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 hardcode overflow: hidden, add [data-rsbs-content] { overflow: hidden; } to your CSS.

2.3.0 (2020-12-28)

Features

2.2.7 (2020-12-19)

Bug Fixes

  • dragging can overshoot if onDismiss is undefined (#43) (549ab30)

2.2.6 (2020-12-08)

Bug Fixes

  • better type declarations (c19dd44)

2.2.5 (2020-12-08)

Bug Fixes

  • improve rubber band effect when out of bounds (#29) (4f2fe09)

2.2.4 (2020-12-07)

Bug Fixes

  • more stable defaultSnap RESIZE sync (230dbe2)
  • readjust defaultSnap on resize (b812786)

2.2.3 (2020-12-07)

Bug Fixes

  • make open transitions more interruptible on iOS (#23) (f898dd0)

2.2.2 (2020-12-05)

Bug Fixes

  • updated readme with more API docs and examples (6a48fab)

2.2.1 (2020-12-05)

Bug Fixes

  • rewrite interpolations to always be in frame sync (cc43467)

2.2.0 (2020-12-05)

Features

2.1.0 (2020-12-05)

Bug Fixes

  • use rAF instead of timeout to schedule unmount (7f3c018)

Features

  • add sibling prop support (767215b)

2.0.3 (2020-12-05)

Bug Fixes

  • 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)

Bug Fixes

  • microbundle defaults to preact, changed it back to react (4f52355)

2.0.1 (2020-12-05)

Bug Fixes

2.0.0 (2020-12-04)

Features

BREAKING CHANGES

  • this is the real initial release, v1 is fake software.

1.0.6 (2020-12-04)

Bug Fixes

  • fade out correctly on snap (17234bc)

1.0.5 (2020-12-03)

Bug Fixes

1.0.4 (2020-12-03)

Bug Fixes

  • v2 api ready, just need to clean up and write docs (96f158e)

1.0.3 (2020-12-02)

Bug Fixes

  • deps: update dependency focus-trap to v6.2.2 (9f79d35)

1.0.2 (2020-12-01)

Bug Fixes

1.0.1 (2020-11-30)

Bug Fixes

  • doh, semantic release pushed v1.0 instead of v0.2 :( (a5837bd)

1.0.0 (2020-11-30)

Features