Resizable component for Ember. (Demo)
This is largely inspired by/based on re-resizable.
- Ember.js v3.28 or above
- Ember CLI v3.28 or above
- Node.js v14 or above
ember install ember-resizable
Include the following in your app.scss:
@import 'ember-resizable';Basic usage:
This will make <ReSizable> adjust its size according to user input. If you want to manually control its size, bind to onResize while not setting width and height. Manually setting width, height between resizes is of course also possible.
| Property | default | Type | Notes |
|---|---|---|---|
width |
null |
int or string | Initial size. If provided the component will adjust its size according to user input. If omitted or null it will not change its size. This is a one way binding nevertheless. |
height |
null |
int or string | Initial size. If provided the component will adjust its size according to user input. If omitted or null it will not change its size. This is a one way binding nevertheless. |
minWidth |
10 |
int | Minimum width in pixels |
minHeight |
10 |
int | Minimum height in pixels |
maxWidth |
int | Maximum width in pixels | |
maxHeight |
int | Maximum height in pixels | |
grid |
[1, 1] |
array: int | Used for snapping on x, y axis. If set to [200, 50] for example, width will snap to 0, 200, 400, 600, … while height will snap to 0, 50, 100, 150, … |
lockAspectRatio |
false |
bool | Maintain aspect ratio that is found during beginning of resize |
directions |
['top', 'right', 'bottom', 'left', 'topRight', 'bottomRight', 'bottomLeft', 'topLeft'] |
array: string | On which sides/corners to enable resizing |
| Name | Params | Note |
|---|---|---|
onResizeStart |
direction, event, element |
element is the <ReSizable> DOM element |
onResizeStop |
direction, { width: deltaX, height: deltaY }, element |
If you did not adjust the size of <ReSizable> by changing its dimension and if you did not provide width/height using for e.g. the values provided by onResize deltaX and deltaY will be 0 |
onResize |
direction, { width: newWidth, height: newHeight }, { width: deltaX, height: deltaY }, element |
. |
In addition it is possible to adjust the size of the resize handlers in your scss:
// 10px is the default size
$ember-resizable-resizer-size: 10px;See the Contributing guide for details.
This project is licensed under the MIT License.