Long Animation Frames - Interactive Lab | IconVault

Capture real long-animation-frame entries with per-script attribution, see what blocks frames, and learn the INP connection.

All tools

Long Animation Frames

LoAF visualizer with script attribution and INP link

5 of 5 free uses left

Long Animation Frames are not supported in this browser

The LoAF API needs Chrome 123+, Edge 123+ or Opera 109+. The detection snippet below still works as a drop-in for your own site, and the explanation of the INP link applies everywhere.

Captured frames (0)

Start observing, then trigger a blocking task to capture a real long animation frame.

Why LoAF matters for INP

INP measures how long the page takes to respond to an interaction. A LoAF tells you exactly which script blocked the frame and who invoked it (a click handler, a timer, a rAF callback). Fix the attributed script, usually by splitting the work with scheduler.yield() or moving it off the main thread, and INP drops with it.

// Detect Long Animation Frames with script attribution
if ("PerformanceObserver" in window) {
  const supported = PerformanceObserver.supportedEntryTypes || [];
  if (supported.includes("long-animation-frame")) {
    const observer = new PerformanceObserver((list) => {
      for (const entry of list.getEntries()) {
        const loaf = entry; // PerformanceEventTiming-like
        console.log("LoAF:", Math.round(loaf.duration), "ms");
        for (const script of loaf.scripts) {
          console.log("  script:", script.name || "(inline)",
            "| invoker:", script.invoker,
            "| blocked:", Math.round(script.duration), "ms");
        }
      }
    });
    observer.observe({ type: "long-animation-frame", buffered: true });
  }
}

5 of 5 free observation runs left. Runs fully in your browser.

About this tool

IconVault's Long Animation Frames lab puts Chrome's LoAF API in your hands. Start observing, trigger a smooth workload, a 220ms blocking task, or a forced layout thrash, and watch real long-animation-frame entries appear with their duration, render timing, and per-script attribution showing exactly which script blocked the frame and what invoked it. It is free and runs fully in your browser.

Each entry breaks down renderStart and styleAndLayoutStart so you can tell script work apart from rendering cost, and a running total blocking time connects the frames to what users feel. The explainer links LoAF directly to INP: fix the attributed script by splitting work with scheduler.yield() or moving it off the main thread, and your Interaction to Next Paint drops with it. A copyable detection snippet is included for your own site.

Frequently asked questions

Popular searches

long animation frames apiloaf web performanceinp optimizationinteraction to next paintscript attribution loafperformanceobserver longtaskhow to reduce inplong tasks javascripttotal blocking timeweb vitals inpchrome devtools performancejavascript blocking main threadinp score improvelong animation frame entriesloaf api tutorialperformanceobserver long-animation-frameweb performance apicore web vitals 2025how to measure inpinp field datajavascript main thread blockedoptimize interaction latencyscheduler.yield inpbreak up long tasksforced synchronous layoutlayout thrash javascriptstyle and layout costrenderstart styleandlayoutstartframe budget 50mswhy is my site jankydiagnose slow interactionsweb vitals javascript apimeasure web vitals in jslongtask vs long animation framechrome 123 loafperformance entry scriptsinvoker type event listenerwhich script blocked framejavascript performance profilinginp poor score fiximprove inp wordpressinp optimization techniquesreduce javascript execution timecode splitting inpdefer non critical javascriptweb worker heavy computationoffscreen canvas performancevirtualize long listsinteraction delay javascriptevent handler slowclick delay website

More tools

Coming soon

CLI

Coming soon

Figma plugin

Coming soon

VS Code extension

Coming soon

Chrome extension

Coming soon

AI icon generator

Coming soon

Team workspaces

Coming soon

View all 10+ tools →