1.1.6 • Published 10 months ago

resizer-box v1.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
10 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

10 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago