Changelog
June 18, 2026 · View on GitHub
4.0.2 (Jun 18, 2026)
- Fix (types): make
<ResizableBox>'s default-backed props optional in the TypeScript definitions.Propsnow extendsPartial<DefaultProps>, so consumers no longer have to pass props that already have defaults. Types only; runtime behavior is unchanged. (#264)
4.0.1 (May 26, 2026)
- Locked aspect ratio drags now track the cursor via orthogonal projection
onto the
w = ratio·hline instead of snapping to whichever axis had the larger delta. Closes #222. - Convert the example app to TypeScript and fix the broken examples build
(webpack entry pointed at
examples/example.jsafter the 4.0.0 TS conversion). Affects the GitHub Pages demo /yarn devonly; the published package was unaffected. (#261)
4.0.0 (May 12, 2026)
This release converts the library from Flow to TypeScript and ships bundled type declarations. The runtime API and on-screen behavior are unchanged. The major version bump is to flag two things consumers may need to act on.
Breaking — types delivery
-
The library is now authored in TypeScript. Bundled type declarations ship in
build/*.d.tsand are resolved via the"types"field inpackage.json. No@types/react-resizableinstall is needed; if you have one installed, remove it — TypeScript prefers the bundled types and the DefinitelyTyped package is no longer required. -
The
*.js.flowshims previously emitted bybuild.shhave been removed. Flow is no longer supported.Flow users who still need types can copy the last Flow-annotated source from the
3.2.0tag:react-grid-layout/react-resizable@db2e37e/lib(lib/Resizable.js,lib/ResizableBox.js,lib/propTypes.js,lib/utils.js). These files were the input to the published.js.flowartifacts inreact-resizable@3.2.0on npm; you can vendor them as a local Flow shim. They will not be updated, and any fix landing onmasterafter4.0.0will not be backported into a Flow form.
Internal
- ✏ Chore: Migrate
lib/and__tests__/from Flow to TypeScript (*.ts/*.tsx). Public runtime API unchanged. - ✏ Chore: Replace
@babel/preset-flowwith@babel/preset-typescript; dropflow-bin,flow-typed/,.flowconfig. - ✏ Chore: Add
tsconfig.json(typecheck),tsconfig.build.json(declaration emit),tsconfig.test.json. - ✏ Chore:
build.shnow runsbabelfor the JS transform andtsc --emitDeclarationOnlyfor the.d.tsfiles. - ✏ Chore: ESLint now uses
@typescript-eslint/parser. - ✏ Chore: CI now runs
yarn lint,yarn typecheck,yarn test, and a build-artifact smoke test on every push and PR. - ✏ Chore: Add an integration smoke test that imports the built CJS entry
point and asserts the public surface (
Resizable,ResizableBox).
3.2.0 (May 11, 2026)
- 🐛 Bugfix: Prevent resize drift caused by stale props between renders.
The component now accumulates deltas from
lastSizerather thanthis.props.width/height, anddimensionsChangedis compared against that same base so zero-delta callbacks are still suppressed correctly. #255 - ✏ Chore: Pin ESLint to
^9.x. ESLint 10 removesscopeManager.addGlobals, which@babel/eslint-parser7.x still calls; the parser fix is only available in unreleased v8 RCs that require an unreleased Babel core v8.
3.1.3 (Jan 1, 2026)
- ✏ Chore: Add
fileswhitelist to package.json to reduce package size and exclude unnecessary files.
3.1.2 (Jan 1, 2026)
- 🐛 Bugfix: Fix SSR crash where
Elementis not defined in Node.js environments. #251
3.1.1 (Dec 30, 2025)
- 🐛 Bugfix: Fix crash when
Resizablechild has a single child element (was not iterable). #219 - 🐛 Bugfix: Fix
offsetParentpropType fromPropTypes.nodetoPropTypes.instanceOf(Element). #220 - ✏ Chore: Update GitHub Actions workflows to latest versions.
- ✏ Chore: Add version display to demo page.
3.1.0 (Dec 30, 2025)
- 🐛 Bugfix: Fix
onResizeStopreporting stale size data due to React's batched state updates. The callback now uses the stored size from the lastonResizecall. #250 - ➕ Feature: React 18 support.
- ✏ Chore: Migrate test suite from Enzyme to React Testing Library. #249
- ✏ Chore: Update
react-draggableto ^4.5.0. - ✏ Chore: Update
react-test-rendererto ^18.
3.0.5 (Mar 21, 2023)
- 🐛 Bugfix: Make
widthandheightconditionally required if anaxisis set. See #196 - ✏ Chore: Minor dependency upgrades.
- ✏ Chore: Fix documentation of
onResizecallback arity.
3.0.4 (Jun 15, 2021)
- 🐛 Bugfix: Fix incorrect fix for
handleAxison DOM elements. #175 - ✏ Chore:Upgrade dependencies.
3.0.3 (Jun 14, 2021)
- 🐛 Bugfix: Remove unknown prop
handleAxismaking it to DOM elements, causing a warning in dev. - ✏ Chore: Rewrote
lockAspectRatiologic to be more accurate and shorter.
3.0.2 (Jun 8, 2021)
- ✏ Chore: Add documentation for resize handles and fix a mistake where the
handleAxisprop was not being passed to custom components.- See Resize Handles
3.0.1 (May 10, 2021)
- ✏ Chore: Reduce package size through
.npmignore.
3.0.0 (May 10, 2021)
Breaking
- 🐛 Bugfix: Fixed handling of the
nodeRefthat needs to be passed to<DraggableCore>to avoid use of ReactDOM. This means that vanilla usage ofreact-resizableno longer requires ReactDOM. No code changes are needed in the usual case, except:- React
>= 16.3is required due to use ofReact.createRef(), and - The
handleprop now sends aReactRef<HTMLElement>as its second argument and expects it to be used on your returned component.- If you do not attach the
ref, you will receive the following error:"<DraggableCore> not mounted on DragStart!"This is due to the ref being present but not attached to any node.
- If you do not attach the
- React
1.11.1 (Mar 5, 2021)
- ✏ Chore: Added React 17 to peerDependencies.
1.11.0 (Sep 3, 2020)
- ⚠ Important Notice!
- React-Resizable 2.0.0 was published due to a breaking change in
propshandling. This change ended up actually completely breaking certain workflows, for the dubious benefit of making the code slightly simpler to add to. The breaking change has been reverted, 2.0.0 is now deprecated, and we will continue on the 1.x branch. Future breaking changes toreact-resizablewill upgrade the major version to3.
- React-Resizable 2.0.0 was published due to a breaking change in
- ➕ Feature:
<ResizableBox>now takes astyleprop which will be applied on the wrapping<div>.widthandheightin this prop are ignored. - 🐛 Bugfix: remove unknown Prop
handlefrom div children in ResizableReact.cloneElement. #124 - 🐛 Bugfix: Fix top and left resizing jerkiness. Thanks @conor-kelleher. #136
- ✏ Chore: Improved test suite. Please contribute tests for your use cases if you have the time, I would really appreciate it! Thanks very much, @Danielecina
- ✏ Chore: Minor internal refactors and additional tests.
- ✏ Chore: Additional examples.
1.10.1 (Nov 25, 2019)
Note: 1.10.0 was a mis-publish.
1.9.0 (Oct 24, 2019)
- 🐛 Bugfix: Fix resize with north/south handles when
lockAspectRatio=true#106 - ✏ Chore: Remove deprecated React 16.9 lifecycle methods (
componentWillReceiveProps) (https://github.com/STRML/react-resizable/pull/112/commits/541dee69b8e45d91a533855609472b481634edee) - ✏ Chore: Upgrade to babel 7
- ✏ Chore: Remove unused state inside
<Draggable>. This has not been needed for quite some time, fixes some bugs and improves performance.
1.8.0 (May 15, 2019)
- ➕ Feature: Added support for custom resize handles #79
- ➕ Feature: Added support for resize handles on all corners #191
1.7.5 (Sep 26, 2017)
- ✏ Chore: Support for React 16 (no changes required, updated
peerDependencies) - ✏ Chore: Minor dep updates.
1.7.4 (Sep 5, 2017)
- ✏ Chore: Minor Flow & dependency updates.
1.7.3 (Aug 31, 2017)
- 🐛 Bugfix: React deprecation warnings from
import *
1.7.2 (Aug 21, 2017)
- ✏ Chore: Pkg: Add
react-draggable@3.0.0to version range.- This package is compatible with both
@2and@3versions.
- This package is compatible with both
1.7.1 (May 23, 2017)
- 🐛 Bugfix: Some flow types were improperly specified.
1.7.0 (May 1, 2017)
- ⚠ Deprecation:
React.PropTypesnow deprecated in React 15.5, moved toprop-typespackage - ✏ Chore: Update devDeps, upgrade to webpack 2
- ✏ Chore: Remove babel
stage-1andtransform-flow-comments, bring in only selected plugins, makes for leaner dev/build.
1.6.0 (Jan 23, 2017)
- ➕ Feature: Allow restricting by axis. (#40, thanks @dnissley-al)
1.5.0 (Jan 23, 2017)
- 🐛 Bugfix: Persist SyntheticEvents when needed (#45, #46)
- ➕ Feature: Add componentWillReceiveProps to
<ResizableBox>(#44, thanks @JoaoMosmann)
1.4.6 (Dec 30, 2016)
- ✏ Chore: Removed unused ref from
<Resizable>. - ✏ Chore: Added development lockfile.
1.4.5 (Sep 30, 2016)
- 🐛 Bugfix: Fix bad publish
1.4.4 (Sep 30, 2016)
- 🐛 Bugfix: Minor flow errors
1.4.3 (Sep 27, 2016)
- 🐛 Bugfix: Don't pass
onResizein<ResizableBox>. - 🐛 Bugfix: Fix new Flow errors (type parameters no longer optional).
1.4.2 (July 1, 2016)
- 🐛 Bugfix: Don't pass unknown props to underlying DOM element. Fixes React 15.2.0 warnings.
1.4.1 (May 23, 2016)
- 🐛 Bugfix: Resizable handle should have a
keywhen injected. Fixes React warnings on custom components.
1.4.0 (May 20, 2016)
- ✏ Chore: Update to React-Draggable v2, which changed callback data structure.
1.3.4 (May 17, 2016)
- 🐛 Bugfix: Slack was not being reset on resizeStop. Fixes #34, #36.
- ✏ Chore: Added
flow-binto devDeps.
1.3.3 (Apr 19, 2016)
- ➕ Feature: Add Flow comments.
1.3.2 (Apr 8, 2016)
- 🐛 Bugfix: Prevent
widthandheightfrom leaking to the underlying DOM element and being written.
1.3.1 (Apr 8, 2016)
- ✏ Chore: Allow React v15 in peerdeps.
1.3.0 (Mar 11, 2016)
- 🐛 Bugfix: Switch to ES2015 Loose Mode to fix IE9/10 issues.
- 🐛 Bugfix: Flow typing fixes.
- 🐛 Bugfix: Styling fixes to the demo page.
Changes before 1.3.0 were not logged. Please see the git commit history.