Check out the live demo here: Svelte Rectangle Selector Demo
A Svelte component for drawing rectangles on a container. This component allows users to click and drag to create rectangles, with configurable styles for the rectangles.
To use the RectangleSelector component in your Svelte project, follow these steps:
npm i @emrahes/svelte-rectangle-selector
Import the Component
Import the RectangleSelector
component into your Svelte file:
<script lang="ts">
import { RectangleSelector, type Rectangle, type RectangleStyle } from "@emrahes/svelte-rectangle-selector";
let rectangle: Rectangle | undefined;
const rectangleStyle: RectangleStyle = {
border: '2px solid red',
backgroundColor: 'rgba(255, 0, 0, 0.5)',
};
function updateRectangle(newRectangle: Rectangle) {
rectangle = newRectangle;
}
</script>
Include the RectangleSelector
in your Svelte template:
<RectangleSelector
onUpdateRectangle={updateRectangle}
rectangleStyle={rectangleStyle}
>
<div class="rectangle-display" />
</RectangleSelector>
<section>
<h3>Rectangle Data:</h3>
{#if rectangle}
<ul>
<li>Position X: {rectangle.x}px</li>
<li>Position Y: {rectangle.y}px</li>
<li>Width: {rectangle.width}px</li>
<li>Height: {rectangle.height}px</li>
</ul>
{/if}
</section>
onUpdateRectangle: (rectangle: Rectangle) => void
Callback function that is called with the newly drawn rectangle whenever the drawing ends.
rectangleStyle: RectangleStyle
An object to customize the style of the drawn rectangle:
border
: CSS border property for the rectangle.backgroundColor
: CSS background color for the rectangle.