1.2.0
ZenReader v1.2.0 Release Notes
This release significantly improves style fidelity in Focus Mode. Previously, many websites would lose their visual styling when viewed in ZenReader due to cross-origin stylesheet restrictions, missing web fonts, unresolved lazy-loaded images, and lost pseudo-elements. All of these have been addressed.
What's New
Cross-Origin CSS Support
- Stylesheets hosted on external CDNs and third-party domains are now fetched and applied in Focus Mode via a background service worker proxy.
- A two-phase injection approach shows content immediately with same-origin styles, then progressively applies cross-origin styles as they load.
CSS Custom Properties
- CSS custom properties (
--var) defined on:root,html, andbodyare now collected from all stylesheets and propagated into the Shadow DOM, so themes and design tokens render correctly.
@font-face Recovery
- Web font declarations from both same-origin and cross-origin stylesheets are extracted and injected into the document and Shadow DOM, ensuring custom fonts display properly.
Pseudo-Element Materialization
::beforeand::afterpseudo-elements are now converted into real DOM nodes with their computed styles preserved, so icons, decorative elements, and content generated via CSS appear as expected.
Lazy Image Resolution
- Lazy-loaded images using
data-src,data-srcset,<noscript>fallbacks, and placeholder data-URIs are resolved so all images display in Focus Mode.
Adaptive Clone Depth
- The cloning depth is now determined dynamically based on the selected element's DOM tree size, balancing styling fidelity with performance on complex pages.
Infrastructure
- Added
host_permissions: ["<all_urls>"]to support cross-origin CSS fetching. - Background service worker now handles
fetchCSSmessages with a 3-second timeout viaAbortController.