Revision code

Changes Version 3.6.0
Released on November 29, 2023 with 25 commits

Targeting fragments

Performance improvements

  • Unpoy now uses the native :has() selector where available. Unpoly's polyfill for :has() will remain included for the time being. It will be removed as Firefox' :has() support has reached the majority of users (available on Nightly now).
  • Improve performance of many element lookups, by finding elements via CSS selectors (vs. filtering lists with JavaScript).

Support for structured data markup

  • Structured data in script[type="application/ld+json"] elements is considered a meta tag that will be updated with history changes.
  • script[type="application/ld+json"] elements in are now preserved in new fragments with up.fragment.config.runScripts = false.

Bugfixes and minor improvements


If you're upgrading from an older Unpoly version you should load unpoly-migrate.js to polyfill deprecated APIs. Changes handled by unpoly-migrate.js are not considered breaking changes.

See our upgrading guide for details.