// ==UserScript== // @name 【伟哥自用】LavinMQ 文档 强制浅色(去黑底) // @namespace user/lavinmq // @version 1.0.0 // @description lavinmq.com 文档站天生是暗色设计(Tailwind 硬编码黑底,无主题切换、无浅色模式)。本脚本用 GM_addStyle 把那套暗色调色板原地盖成浅色,纯 CSS、不动任何类、不卡页面。代码块保留站点原有的暗色 Monokai 高亮(可读)。 // @author 朱焱伟 // @match *://lavinmq.com/* // @match *://*.lavinmq.com/* // @run-at document-start // @grant GM_addStyle // ==/UserScript== (function () { 'use strict'; /* ============ 配置:想换配色改这里 ============ */ const BG = '#ffffff'; // 页面/导航底色 const BG_ALT = '#f6f6f7'; // 侧栏 / 次级面(替代 #2f2f2f) const BG_TER = '#ececee'; // 三级面(替代 #414040) const TEXT = '#3c3c43'; // 正文文字 const HEAD = '#1f2430'; // 标题文字 const MUTED = '#67676c'; // 弱化文字(替代 #A0A0A0) const BORDER = '#e2e2e3'; // 边框/分隔线 const CODE_COLOR = '#476582'; // 行内代码文字色 const CODE_BG = 'rgba(101, 117, 133, .14)'; // 行内代码背景 const LINK = '#15803d'; // 链接:可读深绿(站点原 #54BE7E 偏淡;设 'keep' 保留原色) /* ============================================== */ // 用 html:not(#_) 前缀拉满特异性 + !important,稳赢 Tailwind 工具类与 .lmq-docs 嵌套规则。 // 用属性选择器 [class~="bg-[#141414]"] 匹配 Tailwind 任意值类,免去转义 [ ] # 的麻烦。 const X = 'html:not(#_) '; const linkRule = LINK === 'keep' ? '' : `${X}.lmq-docs a{ color:${LINK} !important; }`; const css = ` ${X}{ color-scheme:light !important; } ${X}body{ background:${BG} !important; color:${TEXT} !important; } /* —— 暗色背景工具类 → 浅色 —— */ ${X}[class~="bg-[#141414]"], ${X}[class~="xl:bg-[#1D1D1D]"]{ background-color:${BG} !important; } ${X}[class~="bg-[#2f2f2f]"]{ background-color:${BG_ALT} !important; } ${X}[class~="bg-[#414040]"]{ background-color:${BG_TER} !important; } ${X}[class~="bg-[#414040]/10"]{ background-color:rgba(0,0,0,.05) !important; } ${X}[class~="bg-[#101010]"]{ background-color:#f0f0f2 !important; } /* —— 正文内容(.lmq-docs 的原生嵌套 CSS 给 p/标题/表格设了浅色)—— */ ${X}.lmq-docs, ${X}.lmq-docs p, ${X}.lmq-docs li, ${X}.lmq-docs ul, ${X}.lmq-docs ol, ${X}.lmq-docs td, ${X}.lmq-docs blockquote{ color:${TEXT} !important; } ${X}.lmq-docs h1, ${X}.lmq-docs h2, ${X}.lmq-docs h3, ${X}.lmq-docs h4, ${X}.lmq-docs h5, ${X}.lmq-docs h6{ color:${HEAD} !important; } ${X}.lmq-docs table td{ border-bottom-color:${BORDER} !important; } ${X}.lmq-docs hr{ border-color:${BORDER} !important; } ${linkRule} /* —— 文字色工具类 → 深色 —— */ ${X}[class~="text-[#FAFAFA]"], ${X}[class~="text-[#fafafa]"], ${X}[class~="text-light-100"], ${X}[class~="text-white"]{ color:${HEAD} !important; } ${X}[class~="text-[#b8b8b8]"]{ color:${TEXT} !important; } ${X}[class~="text-[#A0A0A0]"]{ color:${MUTED} !important; } ${X}[class~="text-[#D9D6CE]"], ${X}[class~="text-[#D9D6CE]/50"], ${X}[class~="text-[#D9D6CE]/60"], ${X}[class~="text-[#D9D6CE]/70"]{ color:${MUTED} !important; } /* —— 边框 → 浅灰 —— */ ${X}[class~="border-[#414040]"], ${X}[class~="border-[#2B2B2B]"], ${X}[class~="border-[#1B1B1B]"]{ border-color:${BORDER} !important; } ${X}[class~="border-b-[#1B1B1B]"]{ border-bottom-color:${BORDER} !important; } ${X}[class~="border-t-[#1B1B1B]"]{ border-top-color:${BORDER} !important; } /* —— 行内代码:浅色药丸 —— 代码块(figure.highlight / pre)故意不动:站点用的是暗色 Monokai 高亮,强行翻浅会让浅色 token 看不见; 暗底代码块在浅色文档里很常见,保持原样即可读。 */ ${X}:not(pre) > code{ color:${CODE_COLOR} !important; background:${CODE_BG} !important; border-radius:4px !important; padding:1px 5px !important; } `; if (typeof GM_addStyle === 'function') { GM_addStyle(css); } else { const apply = () => { const s = document.createElement('style'); s.id = '__lavinmq_light_theme'; s.textContent = css; (document.head || document.documentElement).appendChild(s); }; if (document.head) apply(); else document.addEventListener('DOMContentLoaded', apply); } })(); // https://lavinmq.com/documentation/getting-started