
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
layout-shift-gif
Advanced tools
https://defaced.dev/tools/layout-shift-gif-generator/
Visualise the Core Web Vitals metric Cumulative Layout Shift (CLS) with a simple GIF.
Lighthouse is a great tool for identifying your overall Cumulative Layout Shift (CLS) score, but it's not so great for quickly visualising what's actually shifting on a page. The Layout Shift GIF Generator allows you to quickly identify which elements are moving around in the viewport.
Support this project
Help support the work that goes into creating and maintaining my projects and sponsor me via GitHub Sponsors.
--report flag.The Layout Shift GIF Generator command line tool can be installed directly from NPM.
npm install -g layout-shift-gif
Once installed the tool can be used as per the following example.
layout-shift-gif --url https://blacklivesmatter.com/ --device mobile --output layout-shift.gif
This will generate an animated layout-shift.gif of https://blacklivesmatter.com/ showing the regions of Cumulative Layout Shift on the viewport of a simulated mobile device.
Options:
--help Show help [boolean]
--version Show version number [boolean]
-u, --url Website URL [string] [required]
-d, --device Device type [string] [default: "mobile"]
-w, --width Device viewport width [number]
-h, --height Device viewport height [number]
-c, --cookies Cookie filename [string]
-o, --output Output filename [string] [default: "layout-shift.gif"]
-t, --type CLS calculation method [string] [default: "new"]
-r, --report Save report of shifts and elements [boolean] [default: false]
layout-shift-gif --url https://blacklivesmatter.com/ --device mobile
layout-shift-gif --url https://blacklivesmatter.com/ --device desktop
You can supply a cookie file in the Puppeteer JSON format allowing you to bypass cookie notices, or interstitals.
I recommend using the Export cookie JSON file for Puppeteer Chrome extension to export your cookies in the correct format.
layout-shift-gif --url https://blacklivesmatter.com/ --cookies cookies.json
In June 2021 Google changed how they calculate the CLS metric. Layout Shift GIF Generator defaults to the newest method, but if you require the old method it can still be access viable the --type option.
layout-shift-gif --url https://blacklivesmatter.com/ --type old
The tool is able to check both a desktop and a mobile viewport.
The desktop viewport is a standard 1920x1080 resolution.
The mobile viewport is the Nexus 5X profile from Lighthouse.
Both the CPU and the network are throttled to simulate a good 3G network.
The tool is able to create a corresponding JSON report including the full CSS selectors for every element triggering a shift.
layout-shift-gif --url https://blacklivesmatter.com/ --report
If you don't wish to use the CLI version there is also a free hosted version running in a cloud function available on defaced.dev
An outline of how to interpret the GIF output from this tool.
The screenshot of the page is taken after all the page elements have shifted and the CLS has been calculated.
The border style of an outlined element represents the start and end positions of the elements shift.
A dashed border indicates the element's starting position.
A solid border indicates the element's end position.
The border colour of an outlined element represents the CLS score of that element against the overall page thresholds for CLS outlined by Google.
🟢 Good ≤ 0.1
🟠 Needs Improvement
🔴 Poor > 0.25
This means that if you see a shifting element with a red or orange outline then this element alone is contributing significantly to a negative CLS score for that page.
The metric in the top left corner is the overall CLS score for that page and is the score you'll see in Lighthouse or Pagespeed Insights.
The colour of the top left corner represents where the pages overall CLS score fits within the thresholds for CLS outlined by Google.
🟢 Good ≤ 0.1
🟠 Needs Improvement
🔴 Poor > 0.25
If you find this project useful please considering sponsoring me on GitHub Sponsors and help support the work that goes into creating and maintaining my projects.
Sponsors are able to remove the project support message from all my CLI projects, as well as access other additional perks.
Chris Johnson - defaced.dev - @defaced.dev (Bluesky)
FAQs
Generates a .gif showing the layout shift events for a website.
The npm package layout-shift-gif receives a total of 63 weekly downloads. As such, layout-shift-gif popularity was classified as not popular.
We found that layout-shift-gif demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.