Forces the eye-straining "black background, purple text" custom theme on robustmq.com back to a normal, clean light theme.
robustmq-light-theme.user.jshttps://robustmq.com/* (docs pages + landing page)Fucking Purple!!!! 亮瞎了!!!
The RobustMQ site is built on VitePress but ships an extra custom dark-purple theme layer where nearly every rule is hardcoded purple with !important, e.g.:
.vp-doc code:not(pre code){ background:rgba(168,85,247,.1)!important; color:#c084fc!important } /* purple inline code */
.VPNavBar{ background:rgba(7,3,15,.72)!important } /* forced-black navbar */
.rhome{ background:rgb(7,3,15) } /* giant dark-purple homepage background */
The result is a blinding dark/purple look that's exhausting to read for any length of time.
The script does nothing but inject one CSS block via GM_addStyle — no observers, no polling, no class toggling:
html:not(#_) to max out CSS specificity, so with !important it reliably beats the site's own !important rules;.dark class on <html>.⚠️ The early v1.0 used a MutationObserver to strip the
.darkclass, which fought VitePress for that class and triggered an synchronous microtask loop that froze the page. Since v2.0 the script is pure CSS, eliminating the problem entirely. Verified: even with<html class="dark">still present, the whole page renders light.
Docs pages
| Element | Result |
|---|---|
| Body / background | White bg + dark grey text |
| Navbar / sidebar / local nav | White / light grey |
| Inline code | Blue-grey text #476582 + light grey bg (no longer purple) |
| Code blocks | Light bg + dark highlighting, readable |
| Blockquotes / tables / heading decorations | Light grey bg + blue accents |
Landing page
| Element | Result |
|---|---|
.rhome giant dark-purple background |
White |
Orbs / grid / ripples / .sc-glow |
Purple → blue (and toned down) |
| Hero / section titles | Faint-purple gradient text → dark, readable |
robustmq-light-theme.user.js into your browser and confirm in the prompt;The script force-locks the light theme, so the site's built-in theme toggle will appear to do nothing — that's expected. To restore the original look, disable the script in Tampermonkey and reload.
There's a config block at the top of the script — just change the constants:
const BRAND = '#2563eb'; // accent color (links, heading decor, active items)
const CODE_COLOR = '#476582'; // inline-code text color
const CODE_BG = 'rgba(101, 117, 133, .14)'; // inline-code background
const BG = '#ffffff'; // page / panel background
const BG_ALT = '#f6f6f7'; // sidebar / code-block / table-head secondary bg
const BORDER = '#e2e2e3'; // dividers / borders
Common BRAND values:
'#2563eb' blue (default)'#16a34a' green'#3c8772' VitePress native green'#a855f7' keep purple (only remove the black bg)The homepage's .scenario-card, .arch-node, and terminal frames are "dark card" components (dark background with light text — internally consistent). The script leaves them as-is — forcibly flipping them to light would break their white text and pink icons. If you want those cards converted to light as well, extend the script on top of this baseline.
If a stray purple element slips through, open DevTools (F12), grab its class name, and add one more rule.
| Version | Notes |
|---|---|
| 1.0.0 | Initial; stripped .dark via MutationObserver (caused page freeze, deprecated) |
| 2.0.0 | Pure CSS (GM_addStyle), leaves .dark alone — fixes the freeze; covers docs pages |
| 2.1.0 | Homepage decorations (orbs / grid / ripples) purple → blue |
| 2.2.0 | Homepage giant .rhome background → white; purple gradient titles → dark |