Resize Observer

Resize Observer resize observer link

Full documentation: https://webawesome.com/docs/components/resize-observer

<wa-resize-observer> Stable Since 2.0

Resize observers watch their slotted elements for size changes and emit an event when they occur. Provides a thin, declarative interface to the browser’s ResizeObserver API.

The resize observer will report changes to the dimensions of the elements it wraps through the wa-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">
  <wa-resize-observer>
    <div>Resize this box and watch the console 👉</div>
  </wa-resize-observer>
</div>

<script>
  const container = document.querySelector('.resize-observer-overview');
  const resizeObserver = container.querySelector('wa-resize-observer');

  resizeObserver.addEventListener('wa-resize', event => {
    console.log(event.detail);
  });
</script>

<style>
  .resize-observer-overview div {
    display: flex;
    border: solid 2px var(--wa-color-surface-border);
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4rem 2rem;
  }
</style>

Importing importing link

If you’re using the autoloader or a hosted project, components load on demand — no manual import needed. To cherry-pick a component manually, use one of the following snippets.

**CDN**

Import this component directly from the CDN:

import 'https://ka-f.webawesome.com/webawesome@3.7.0/components/resize-observer/resize-observer.js';

**npm**

After installing Web Awesome via npm, import this component:

import '@awesome.me/webawesome/dist/components/resize-observer/resize-observer.js';

**Self-Hosted**

If you’re self-hosting Web Awesome, import this component from your server:

import './webawesome/dist/components/resize-observer/resize-observer.js';

**React**

To import this component for React 18 or below, use the following code:

import WaResizeObserver from '@awesome.me/webawesome/dist/react/resize-observer/index.js';

Slots slots link

Learn more about using slots.

Name Description
(default) One or more elements to watch for resizing.

Attributes & Properties attributes properties link

Learn more about attributes and properties.

Name Description Reflects  
`css` `CSSResultGroup \| undefined` One or more CSSResultGroup to include in the component’s shadow root. Host styles are automatically prepended. Type Default styles    
`disabled` disabled `boolean` Disables the observer. Type Default false    

Events events link

Learn more about events.

Name Description
`wa-resize` Emitted when the element is resized.

Need a hand? Report a bug Ask for help