Track element dimensions and position reactively
ElementRect provides reactive access to an element's dimensions and position information, automatically updating when the element's size or position changes.
ElementRect
<script lang="ts"> import { ElementRect } from "runed"; let el = $state<HTMLElement>(); const rect = new ElementRect(() => el); </script> <textarea bind:this={el}></textarea> <p>Width: {rect.width} Height: {rect.height}</p> <!-- alternatively --> <pre>{JSON.stringify(rect.current, null, 2)}</pre>
type Rect = Omit<DOMRect, "toJSON">; interface ElementRectOptions { initialRect?: DOMRect; } class ElementRect { constructor(node: MaybeGetter<HTMLElement | undefined | null>, options?: ElementRectOptions); readonly current: Rect; readonly width: number; readonly height: number; readonly top: number; readonly left: number; readonly right: number; readonly bottom: number; readonly x: number; readonly y: number; }