Resize Observer
<sl-resize-observer> | SlResizeObserver
            
            The Resize Observer component offers a thin, declarative interface to the
            ResizeObserver API.
          
            The resize observer will report changes to the dimensions of the elements it wraps through the
            sl-resize event. When emitted, a collection of
            ResizeObserverEntry
            objects will be attached to event.detail that contains the target element and information about
            its dimensions.
          
<div class="resize-observer-overview"> <sl-resize-observer> <div>Resize this box and watch the console π</div> </sl-resize-observer> </div> <script> const container = document.querySelector('.resize-observer-overview'); const resizeObserver = container.querySelector('sl-resize-observer'); resizeObserver.addEventListener('sl-resize', event => { console.log(event.detail); }); </script> <style> .resize-observer-overview div { display: flex; border: solid 2px var(--sl-input-border-color); align-items: center; justify-content: center; text-align: center; padding: 4rem 2rem; } </style>
import SlResizeObserver from '@shoelace-style/shoelace/dist/react/resize-observer'; const css = ` .resize-observer-overview div { display: flex; border: solid 2px var(--sl-input-border-color); align-items: center; justify-content: center; text-align: center; padding: 4rem 2rem; } `; const App = () => ( <> <div className="resize-observer-overview"> <SlResizeObserver onSlResize={event => console.log(event.detail)}> <div>Resize this box and watch the console π</div> </SlResizeObserver> </div> <style>{css}</style> </> );
Importing
If youβre using the autoloader or the traditional loader, you can ignore this section. Otherwise, feel free to use any of the following snippets to cherry pick this component.
To import this component from the CDN using a script tag:
<script type="module" src="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.15.0/cdn/components/resize-observer/resize-observer.js"></script>
To import this component from the CDN using a JavaScript import:
import 'https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.15.0/cdn/components/resize-observer/resize-observer.js';
To import this component using a bundler:
import '@shoelace-style/shoelace/dist/components/resize-observer/resize-observer.js';
To import this component as a React component:
import SlResizeObserver from '@shoelace-style/shoelace/dist/react/resize-observer';
Slots
| Name | Description | 
|---|---|
| (default) | One or more elements to watch for resizing. | 
Learn more about using slots.
Properties
| Name | Description | Reflects | Type | Default | 
|---|---|---|---|---|
| disabled | Disables the observer. |  | boolean | false | 
| updateComplete | A read-only promise that resolves when the component has finished updating. | 
Learn more about attributes and properties.
Events
| Name | React Event | Description | Event Detail | 
|---|---|---|---|
| sl-resize | onSlResize | Emitted when the element is resized. | { entries: ResizeObserverEntry[] } | 
Learn more about events.