Skip to content

Performance ​

What loads ​

FilegzipWhen
Core44.6 KBAlways: engine, 27 CSS effects, navigation, autoplay, a11y, smart fit, component, data-*, JSON, styles
Layers8.8 KBA slide contains data-in, or imageIn is set
WebGL7.9 KBeffect is a WebGL effect and the device can use it
Overlays4.4 KBoverlay is set
Particles3.8 KBparticles is set
Scroll depth / drive1.5 KB eachscrollDepth / scrollDrive

The published files are obfuscated (names, strings and property names are encoded). That costs about 16 KB of the core and less than 0.1 ms per frame; nothing changes in the API.

At runtime ​

  • Compositor only. Slides move with transform, opacity, filter and clip-path. Nothing triggers layout while sliding.
  • requestAnimationFrame runs only while something moves. An idle slider costs nothing.
  • Off screen = paused. Autoplay, WebGL, particles, layer loops and background videos stop when the slider leaves the viewport or the tab is hidden.
  • One measurement per resize, batched with ResizeObserver and a frame.
  • Textures are cached (8 per slider, least recently used evicted); the WebGL context is released on destroy().

Core Web Vitals ​

  • CLS: the height is computed before the first paint of the slides. For a hero above the fold, give the first image width / height attributes or set aspect so the space is reserved before the image loads.
  • LCP: load the first slide's image eagerly (fetchpriority="high"); use data-src for the others.
  • INP: input handlers do no layout work; the first visual response to a drag happens in the same frame.

Checklist ​

  • Serve images at the size they are shown: srcset + sizes="100vw" for full-width heroes.
  • Prefer one WebGL slider per page.
  • Use lazy (default) with preload: 1.

Insigne Slider v1.0.0 · Free for any use with visible attribution · Atıf ile her kullanım için ücretsiz