Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
react-resizable-layout
Advanced tools
Lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
A lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
Install from npm:
# Using npm
npm install react-resizable-layout
# Using Yarn
yarn add react-resizable-layout
Resizable
componentimport Resizable from 'react-resizable-layout';
<Resizable axis={'x'}>
{({ position, separatorProps }) => (
<div className="wrapper">
<div className="left-block" style={{ width: position }} />
<YourSeparatorComponent {...separatorProps} />
<div className="right-block" />
</div>
)}
</Resizable>
useResizable
hookimport { useResizable } from 'react-resizable-layout';
const Component = () => {
const { position, separatorProps } = useResizable({
axis: 'x',
})
return (
<div className="wrapper">
<div className="left-block" style={{ width: position }} />
<YourSeparatorComponent {...separatorProps} />
<div className="right-block" />
</div>
)
}
The following attributes are added to separatorProps
in accordance with W3C.
https://www.w3.org/TR/wai-aria-1.2/#separator
Attribute | Value |
---|---|
role | 'separator' |
aria-valuenow | position |
aria-valuemin | props.min |
aria-valuemax | props.max |
aria-orientation | 'vertical' or 'horizontal' |
aria-disabled | props.disabled |
Name | Type | Default | Required | Description |
---|---|---|---|---|
axis | 'x' or 'y' | - | ◯ | Resize direction |
containerRef | ReactRef | - | - | Reference to container for calculating position |
disabled | boolean | false | - | Disable resize |
initial | number | 0 | - | Initial size |
min | number | 0 | - | Minimum size |
max | number | Infinity | - | Maximum size |
reverse | boolean | false | - | If true, returns position of the opposite side |
step | number | 10 | - | Pixel steps when operating with keyboard |
shiftStep | number | 50 | - | Pixel steps when operating with keyboard while holding down the shift key |
onResizeStart | function | - | - | Callback on resize start |
onResizeEnd | function | - | - | Callback on resize end |
Resizable
component children argsuseResizable
hook returns same.
Name | Type | Description |
---|---|---|
position | number | Separator's position (Width for 'x' axis, height for 'y' axis) |
endPosition | number | Separator's position at end of drag |
isDragging | boolean | True if dragging |
separatorProps | object | Separator's props like onPointerDown |
setPosition | function | Set separator's position |
The following keyboard operations are supported.
Key | Operation |
---|---|
Arrow (↑ ,→ ,↓ ,← ) | Move the separator by 10px (default) |
Shift + Arrow (↑ ,→ ,↓ ,← ) | Move the separator by 50px (default) |
Enter | Reset the separator to the initial position |
Double-click on the separator to return it to its initial position.
Feel free to open an issue or make a pull request.
Distributed under the MIT License. See LICENSE for more information.
FAQs
Lightweight, accessible headless React component and hook for drag-and-drop resizable layouts.
The npm package react-resizable-layout receives a total of 7,345 weekly downloads. As such, react-resizable-layout popularity was classified as popular.
We found that react-resizable-layout demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.