Migrating from Stylish / Stylus to JustZix — what you gain beyond CSS
If you've been using Stylish or Stylus for years — JustZix is their natural successor. Everything those do for CSS, JustZix does too. Plus: JS rules (Stylus doesn't have those), action bars with 6 button types (slider/toggle3/textarea), 4 window types on the frontend (CSS pane / JS pane / JS Console / Output Console), snap connections for dashboard layout, share links with TTL, and sync across devices. No account, no tracking, fully open-source. This post covers what to copy over from Stylus and what to add from JustZix along the way.
Why migrate — quick summary
| Feature | Stylish | Stylus | JustZix |
|---|---|---|---|
| CSS injection on URL match | ✓ | ✓ | ✓ |
| JS injection on URL match | ✗ | ✗ | ✓ |
| Action bar with buttons | ✗ | ✗ | ✓ (6 types) |
| Live editor in the tab (no F12) | ✗ | ✗ | ✓ (CSS pane) |
| JS REPL in the tab | ✗ | ✗ | ✓ (JS Console) |
| Sync across devices | ✓ (via account) | ~ (Stylus Sync) | ✓ (chrome.storage.sync, no account) |
| Share via link | ✓ (userstyles.org) | ✓ (userstyles.org) | ✓ (TTL 1-48h, own backend) |
| User tracking | ⚠️ (historic incident) | ✗ | ✗ |
| Open source | ✗ (closed source) | ✓ (GPL3) | ✓ (MIT) |
| GDPR compliance | ? | n/a (local only) | ✓ (EU backend) |
Step 1 — Export styles from Stylus
Stylus has a built-in backup export:
- Open Stylus extension → "Manage" → "Backup" → "Export styles to file"
- Save
stylus_backup.json— that's JSON with each style (CSS code + sections with URL prefixes)
Stylish: if you used it, you likely have local backups or keys to userstyles.org. JustZix has no direct import — manual copy-paste (each style = a new JustZix rule). Average 30 seconds per style.
Step 2 — Concept mapping
Terminology differs, semantics are similar:
| Stylus | JustZix | Notes |
|---|---|---|
| Style | CSS rule inside a rule | Each Stylus style = one rule in a JustZix folder |
| Section with URL prefix | Scope per rule | JustZix scope: domains, regex, wildcard patterns |
| @-moz-document url(...) | scope.url + regex | JustZix doesn't need @-moz-document (CSS is auto-scoped by the rule's scope) |
| Variables (Stylus user-vars) | SLIDER + TOGGLE3 + INPUT actions | More UI-driven: visual slider, toggle3 segments |
| Folder / category | JustZix folder | 1:1 mapping |
Step 3 — Paste the CSS
For each Stylus style:
- In JustZix options: Folder → +Rule
- Scope: pick "URL pattern" and paste the Stylus URL prefix (e.g.
https://reddit.com/*) - CSS tab: paste the whole code from the Stylus section (without the @-moz-document wrapper — JustZix wraps it automatically)
- Save
Stylus syntax-specific: if you used a Less/Stylus/SCSS preprocessor in Stylus, you must pre-process to plain CSS before pasting. JustZix is plain CSS only (no in-browser babel).
Step 4 — Add features Stylus doesn't have
After CSS migration, you can enrich each rule with things impossible in Stylus:
4a. JS rule — auto-skip cookie banner
Classic Stylus gap — JS is a side-channel unavailable to CSS. JustZix add JS in the same rule:
// JS rule (same scope as CSS)
const observer = new MutationObserver(() => {
const accept = [...document.querySelectorAll('button, a')]
.find(b => /accept all|akceptuj wszystkie/i.test(b.textContent));
if (accept) { accept.click(); observer.disconnect(); }
});
observer.observe(document.body, { childList: true, subtree: true });
CSS hid the banner visually (defense), JS clicks "Accept" when the banner appears (offense). One rule, two layers.
4b. SLIDER action — font-size live tweak
Stylus userstyle with var(--font-size) and a number prompt — clunky. JustZix:
// Action SLIDER "🔤 Font"
min: 12, max: 22, step: 1, defaultValue: 16, unit: 'px'
code: |
document.documentElement.style.setProperty('--user-font', value + 'px');
CSS rule uses: body, p, span { font-size: var(--user-font, 16px) !important; }. Drag the slider in the action bar → live update without F5. Per-domain memory.
4c. CSS pane — live editor for new snippets
Stylus requires opening the options page + edit + save + reload page. JustZix CSS pane = a panel next to the page, writing CSS, live update inside the tab itself. F5 preserves pane content (sessionStorage). Perfect for "try something temporarily".
Step 5 — Setup sync
Stylus Sync requires a separate Stylus account + manual config. JustZix uses chrome.storage.sync automatically — if you're signed into Chrome, rules are encrypted and synced via Google Account.
chrome.storage.sync limit: 100 KB total + 8 KB per item. JustZix splits large rules across items. In practice 50-100 CSS+JS rules fit fine. Above that → chrome.storage.local fallback (per-device, no sync).
Step 6 — Share via TTL link (instead of userstyles.org)
userstyles.org = central registry, public, persistent. JustZix Share = ephemeral, opt-in, TTL from 1h to 48h:
- JustZix rule → "Share" (clipboard icon in the top-right)
- Pick TTL: 1h / 8h / 24h / 48h
- You get a link
https://www.justzix.com/s/aBcDeF123 - Paste to your team in Slack/Discord. Click → they import the rule into theirs
- After TTL → link 404s, data deleted from backend (GDPR compliance)
Perfect for QA teams — "test this flow with my setup", "try this UI tweak", "here's a QA bar to import". No persistence in a public registry.
Use case 1 — Reddit reader mode
A Stylus userstyle "Old Reddit reader mode" → 200 lines of CSS hiding the sidebar, ads, recommendations. JustZix:
- CSS rule (the same 200 lines)
- Plus a TOGGLE3 "Mode" (Reader / Default / Compact) — 3 states with different CSS variables
- Plus a SLIDER "Width" — text column width
- Plus an Output Console — log each "click on link" action (debug to see what's tracking)
Stylus = static styling. JustZix = interactive customization layer.
Use case 2 — GitHub dark mode (a better version)
A Stylus userstyle "GitHub Dark" → 500 lines of CSS with hardcoded colors. JustZix:
- CSS rule with CSS variables (--bg, --text, --accent)
- TOGGLE3 "Mode" (Light / Dim / Dark / Auto-system) — 4 states, each sets variables
- SLIDER "Saturation" — desaturate colors for eye comfort
Customization directly in the tab, without going back to the Stylus options page.
Migration pitfalls
- JustZix does NOT import Stylus JSON. Manual copy-paste per rule. In practice: 30 sec per style. If you have 50 styles → ~25 min. Recommend batching during a coffee break.
- No Less/Stylus/SCSS preprocessing. JustZix CSS is plain. Pre-process at build-time before pasting, or use CSS variables instead of Less variables.
- Stylus regex syntax differs from JustZix. Stylus uses
regexp("...")inside @-moz-document, JustZix scope.url accepts JS-flavor regex. Small syntax differences — test patterns after migration. - userstyles.org central registry is gone. userstyles.world is a partial successor. JustZix share is ephemeral, non-public — by design. If you want a public CSS host → use a GitHub Gist + JustZix share for quick links.
- Stylish historical tracking incident. In 2018 Stylish was disabled and it turned out telemetry tracking was on. JustZix is open-source MIT, no analytics by default, GA4 only via explicit cookie consent (GDPR).
What's next
After migrating from Stylus you have the same functionality + 5x more. Everything optional — you can use just CSS rules like in Stylus, or explore JS rules, action bars, panes one by one. Check also:
- Mini-IDE in a tab — full map of JustZix tools
- CSS pane — live editor in the tab (most "Stylus-like" feature)
- Dark mode for any website — a ready snippet for migration
Install JustZix — Stylus can live in parallel (Chrome allows both extensions at once), so you can try JustZix without deleting Stylus. After a week you'll see you only need one.
Rate this post
No ratings yet — be the first.