Skip to main content

useResizeObserver

Detects changes in the size of an element

Demo

Usage

With a reference to an element, you can use the useResizeObserver utility to detect changes in the size of an element.

		<script lang="ts">
	import { useResizeObserver } from "runed";
 
	let el = $state<HTMLElement | null>(null);
	let text = $state("");
 
	useResizeObserver(
		() => el,
		(entries) => {
			const entry = entries[0];
			if (!entry) return;
 
			const { width, height } = entry.contentRect;
			text = `width: ${width};\nheight: ${height};`;
		}
	);
</script>
 
<textarea bind:this={el} readonly value={text}></textarea>
	

You can stop the resize observer at any point by calling the stop method.

		const { stop } = useResizeObserver(/* ... */);
stop();