Quick start - Lit

Lit defaults to Shadow DOM - Listeners.js:101 qAll queries document, not shadowRoot, so classes inside a LitElement template do not animate unless you opt-out or scope.

Usage - Light DOM (recommended)

js
import { LitElement, html } from 'lit'
import { initAnimations } from 'gclass-anims'

class MyEl extends LitElement {
  createRenderRoot() { return this } // ← opt out of shadow
  firstUpdated() { initAnimations() }
  render() { return html`<div class="appear scroll spawn-up">hello lit</div>` }
}
customElements.define('my-el', MyEl)

Usage - Keep Shadow DOM

js
import { LitElement, html } from 'lit'
import initListeners from 'gclass-anims/Listeners.js'

class MyEl extends LitElement {
  firstUpdated() {
    // scope to shadowRoot - global initAnimations() misses it
    initListeners(this.shadowRoot)
  }
  render() { return html`<div class="spawn-up">hello shadow</div>` }
}
// slotted light-DOM content *does* animate with global initAnimations()
 // <my-el><span class="spawn-up">slotted - works</span></my-el>