Skip to content

Drdhx/vision

Repository files navigation

VISION – The Clearview

VISION — The Clearview

Unblur the Web. See Everything.

A Chrome Extension that silently removes CSS blur filters, paywall overlays,
sign-in gates, and scroll locks — with zero popups, zero interruption.


Version Manifest License Creator Stars


Table of Contents


What It Does

Most paywalls don't actually hide content from your browser — they just blur it with CSS or place a div overlay on top of fully-loaded text. VISION detects and removes all of it:

Technique How Common VISION
filter: blur() on content ★★★★★ ✅ Removed
backdrop-filter frosted overlay ★★★★☆ ✅ Removed
Fixed overlay div (paywall box) ★★★★★ ✅ Removed
Sign-in / register gate walls ★★★★☆ ✅ Removed
overflow: hidden scroll lock ★★★★☆ ✅ Unlocked
max-height content clamp ★★★☆☆ ✅ Unlocked
Opacity fade / text truncation ★★★☆☆ ✅ Restored
-webkit-text-security dots ★☆☆☆☆ ✅ Cleared
Server-side truncation (NYT, WSJ) ★★☆☆☆ ❌ Not possible

Screenshots

Extension Popup — 3 Themes

VISION – Night · Cyberpunk · Classic
🌑 Night (default)  ·  ⚡ Cyberpunk  ·  ☀ Classic — switchable live from the popup

Before & After

Before and After paywall removal
Left: blurred paywall with sign-in wall  ·  Right: fully readable after VISION runs

Capabilities

VISION Capabilities

Themes

VISION ships with three built-in themes switchable live from the popup:

Theme Style Font Default
🌑 Night Black bg, silver text, surgical mono Space Mono
Cyberpunk Deep purple bg, neon pink + cyan, animated glows Orbitron + Share Tech Mono
Classic White bg, black text, clean serif EB Garamond

Theme choice persists across sessions via chrome.storage.


Installation

Option A — Load Unpacked (Developer Mode)

# 1. Clone the repository
git clone https://github.com/Drdhx/vision.git
cd vision
2. Open Chrome  →  chrome://extensions
3. Enable "Developer mode"  (toggle, top-right corner)
4. Click "Load unpacked"
5. Select the /vision folder

The VISION icon appears in your Chrome toolbar immediately — it runs automatically on every page.

Option B — Download ZIP

  1. Go to Releases
  2. Download vision-extension.zip
  3. Unzip and follow steps 2–5 above

How It Works

Engine Overview

content.js injects at document_start — before the page renders — and runs a 6-pass fix system:

Pass 1 → injectCSS()               Global !important CSS override (filter, overflow, opacity)
Pass 2 → removeBlurs()             Element-level inline filter removal
Pass 3 → removeScrollLocks()       Unlocks body, html, and all content containers
Pass 4 → removeOverlays()          Paywall & sign-in wall detection + removal
Pass 5 → revealHiddenContent()     Restores opacity-hidden text, removes max-height clamps
Pass 6 → restoreInteractivity()    Removes pointer-events:none tricks

Then re-runs at +1.2s and +3.0s to catch lazy-loaded paywalls.

Overlay Detection Logic

// An element is flagged as a wall if ALL conditions match:
// 1. Position: fixed / absolute / sticky
// 2. Covers > 40% viewport width AND > 25% viewport height
// 3. z-index > 50
// 4. Visible (not display:none or opacity:0)
// 5. Class/ID matches any of 50+ paywall keywords (paywall, subscribe,
//    signin, register, gate, premium, modal, piano-, tp-, …)
//    OR inner text contains phrases like "sign in to continue",
//    "subscribe to read", "members only", "get full access"

SPA Support (MutationObserver)

A debounced MutationObserver watches for dynamically injected walls with a 600ms settle delay. Re-fires on childList, subtree, style, and class attribute changes — handles Medium, Substack, and other React / Vue SPAs that inject paywalls after initial load.


File Structure

vision-unblur/
├── manifest.json          Chrome Extension config (Manifest V3)
├── content.js             Core fix engine — runs on every page
├── popup.html             Extension popup UI (3 themes + scan log)
├── popup.js               Theme switching, scan log, run button
├── background.js          Service worker — tab events & re-injection
├── .gitignore
├── icons/
│   ├── icon16.png
│   ├── icon48.png
│   └── icon128.png
├── screenshots/
│   ├── hero.png
│   ├── popup_all_themes.png
│   ├── before_after.png
│   └── features.png
└── README.md

Permissions

Permission Reason
activeTab Read and modify the current tab's DOM
scripting Programmatically inject content.js when needed
storage Persist theme preference and fix counters locally
tabs Re-inject content script on SPA navigation
<all_urls> Run on any website

Privacy: VISION never reads, collects, or transmits page content. It stores only your theme choice and block count — locally on your device.


Known Limitations

Scenario Status
CSS-blurred content ✅ Works
Overlay / modal paywalls ✅ Works
SPA navigation (Medium, Substack) ✅ Works via MutationObserver
Server-truncated content (NYT, FT, WSJ) ❌ Content never reaches your browser
chrome:// internal pages ❌ Chrome blocks extensions here
Chrome PDF viewer ❌ Sandboxed — extensions cannot access

Changelog

v2.1.0 — Latest

  • Rebuilt 6-pass content engine from scratch
  • Sign-in wall & register gate detection (50+ keywords + inner text scan)
  • document_start injection with all_frames: true
  • Scan log terminal in popup with animated blinking cursor
  • chrome.scripting injection fallback for tabs that missed the content script
  • Default theme: Night Mode
  • Debounced MutationObserver — prevents re-run loops on dynamic sites
  • Re-injection on tab navigation events via background.js

v2.0.0

  • Three themes: Cyberpunk, Night, Classic
  • MutationObserver for dynamically injected paywalls
  • Per-page and all-time fix counters
  • Popup UI redesign with mode toggles

v1.0.0

  • Initial release: CSS blur removal + overlay detection

Contributing

Pull requests are welcome. For major changes, open an issue first to discuss what you'd like to change.

git checkout -b feature/your-feature
git commit -m "feat: describe your change"
git push origin feature/your-feature
# Open a Pull Request

License

MIT © Dhanush D


Built by Dhanush D  ·  github.com/Drdhx


If VISION saved you from a paywall today, consider giving it a ⭐

About

Vision unblur-extension for chrome that removes CSS blur, paywall overlays, sign-in walls & scroll locks. 3 themes: Night, Cyberpunk, Classic. Manifest V3.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors