1.1.6 • Published 11 months ago

resizer-box v1.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

resizer-box

demo img

resizer-box is a web component that helps you resize any HTML element in any direction you want.

Tech Stack

This is a web component written in vanilla js without any external dependencies. Being a web component it is compatible with all the existing frameworks (React, Angular, Vue etc.) and with all browsers.

Demo

You can test it here: demo

Install

Import in Browser ( Recommend )

Use the script tag and the src from unpkg with the latest version. Being a web component, once you add the script it will be automatically created and you can start using it.

<script type="module" src="https://unpkg.com/resizer-box@latest/lib/resizer-box.min.js"></script>

Usage

<resizer-box
    width="300px"
    height="200px"
    resize-right
>
    <div class="myBox" slot="content">
        <img src="./assets/demo-img.jpg" alt="demo-img" width="400" height="400">
        <h1>Test 123</h1>
        <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. </p>
    </div>
</resizer-box>

In the example above the resize-box component wraps the div#myBox so that we can resize the div#myBox. An important aspect is to add slot="content" attribute for the element that you want to resize.

Attributes

AttributeMandatoryDescriptionValue
widthtrueThe initial width of the elementpx - eg. 200px
heighttrueThe initial height of the elementpx - eg. 200px
resize-rightfalseThe possibility to resize starting from the rightboolean - true/false
resize-leftfalseThe possibility to resize starting from the leftboolean - true/false
resize-bottomfalseThe possibility to resize starting from the bottomboolean - true/false
resize-topfalseThe possibility to resize starting from the topboolean - true/false
resize-bottom-rightfalseThe possibility to resize starting from the bottom rightboolean - true/false
resize-bottom-leftfalseThe possibility to resize starting from the bottom leftboolean - true/false
resize-top-leftfalseThe possibility to resize starting from the top leftboolean - true/false
resize-top-rightfalseThe possibility to resize starting from the top rightboolean - true/false
max-widthfalseThe max width to which an element can be resizedpx - eg. 200px
min-widthfalseThe min width to which an element can be resizedpx - eg. 200px
max-heightfalseThe max height to which an element can be resizedpx - eg. 200px
min-heightfalseThe min height to which an element can be resizedpx - eg. 200px

Events

The component dispatches the resize event with the new width and height of the HTML element based on the user interaction.

const resizeBox = document.querySelector("resizer-box");

resizeBox.addEventListener("resize", (e) => {
  const { width, height } = e.detail;
  ...
});

Styling

default styles img

By default all the handles come with a default width and color on hover.

You can style all the handles by using the CSS ::part pseudo-element.

custom styles img

resizer-box::part(handle):hover {
  background-color: blueviolet;
}

resizer-box::part(handle-bottom):hover {
  background-color: green;
}

resizer-box::part(handle-bottom-left):hover {
  background-color: red;
}

The parts that are exposed for styling are:

  • handle (apply to all the handles)
  • handle-right
  • handle-left
  • handle-top
  • handle-bottom
  • handle-bottom-right
  • handle-bottom-left
  • handle-top-left
  • handle-top-right
1.1.6

11 months ago

1.1.5

12 months ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago