English · 中文
Chromium extension (Manifest V3) to pick elements on any page and apply blur or mosaic-style obfuscation before screenshots or screen sharing—handy for quick privacy redaction.
Live demo: https://qdabuliuq.github.io/mosaic-elem/
- Pick mode — hover highlight, click to toggle obfuscation on the element under the cursor; Esc exits pick mode.
- Single toggle — one control in the popup (plus optional keyboard shortcut) to start/stop picking.
- Multiple obfuscation styles — Gaussian blur, pixel/grid mosaic, solid overlay, dot/halftone, diagonal stripes.
- Per-tab styling — selected mode is persisted and broadcast to other tabs.
- i18n — English (
en) and Simplified Chinese (zh_CN). - Robust masking — most elements use a child
em-mosaic-layer(when present, the extension’s own::afteris disabled to reduce conflicts with Tailwindafter:and similar);textarea/select/ text-likeinputare replaced elements where pseudo-elements are unreliable, so aposition: fixedfloat layer is aligned instead.
- Google Chrome, Microsoft Edge, or another Chromium MV3 browser.
- Clone the repo (or download ZIP and extract).
- Open extensions:
- Chrome:
chrome://extensions - Edge:
edge://extensions
- Chrome:
- Turn on Developer mode.
- Load unpacked → choose the folder that contains
manifest.json.
- Optionally pin MosaicElem.
- Open the popup, pick an obfuscation mode, then Start / Stop picking elements (or use the shortcut).
- Hover the page and click a target to apply masking; click the same region again to remove it.
- Esc exits pick mode.
- Clear all obfuscation removes every masked node on the current page.
Reload the tab once if it was already open when you installed or updated the extension.
| Platform | Shortcut |
|---|---|
| Windows / Linux / ChromeOS | Ctrl + Shift + 1 |
| macOS | Command + Shift + 1 |
Change it under extension keyboard shortcuts:
- Chrome:
chrome://extensions/shortcuts - Edge:
edge://extensions/shortcuts
Values in manifest.json only suggest a binding; they do not replace a shortcut you already customized.
| Permission | Purpose |
|---|---|
storage |
Stores the chosen obfuscation mode. |
activeTab |
Lets the popup / command act on the active tab when you invoke the extension. |
<all_urls> (host) |
Injects the content script on pages you visit; no remote analytics server is used by this project. |
├── manifest.json
├── background.js
├── content.js
├── page-pick.js
├── popup.html / popup.css / popup.js
├── website/ # official site + live demo
├── shared/mosaic-engine.js
├── .github/workflows/ # GitHub Pages deploy
├── icons/
├── screenshots/ # optional images for docs / README
└── _locales/
Strings live in _locales/<locale>/messages.json. Default locale: en (see manifest.json).
Issues and PRs are welcome—keep changes scoped and consistent with existing style.
No LICENSE file is bundled yet. Add one (e.g. MIT) when you publish publicly.

