Webnovel - Dark Theme

A dark theme for Webnovel/Qidian International

  1. /* ==UserStyle==
  2. @name Webnovel - Dark Theme
  3. @namespace ew0345
  4. @version 1.0.9
  5. @description A dark theme for Webnovel/Qidian International
  6. @author ew0345
  7. ==/UserStyle== */
  8.  
  9. /***
  10. * CHANGELOG *
  11.  
  12. Version 1.0.9:
  13. Book page styled.
  14.  
  15. Version 1.0.8:
  16. Library & History pages styled.
  17.  
  18. Version 1.0.7:
  19. Settings/Edit profile page styled.
  20.  
  21. Version 1.0.6:
  22. Badges page styled.
  23. Profile page styled.
  24. "Limited Free For You" section on homepage styled.
  25.  
  26. Version 1.0.5:
  27. Rankings page styled.
  28.  
  29. Version 1.0.4:
  30. Browse/category page styled.
  31.  
  32. Version 1.0.3:
  33. Login pop-up & login w/ email pop-up styled.
  34.  
  35. Version 1.0.2:
  36. Header search styled.
  37.  
  38. Version 1.0.1:
  39. Header bar styled.
  40.  
  41. Version 1.0.0:
  42. Main page/homepage styled.
  43. ***/
  44.  
  45.  
  46. @-moz-document domain("webnovel.com") {
  47. /* Variables */
  48. :root {
  49. --bg: #232323;
  50. --bg_dark: #1f1f1f;
  51. --bg_light: #303030;
  52. --bg_light_hover: rgba(100,100,100,0.5);
  53. --bg_selected: #3b66f5;
  54. --txt: #eee;
  55. --txt_dark: #aaa;
  56. --txt_genre: #83848f;
  57. --txt_title: lightslategray;
  58. --txt_lcol1: #eb1551;
  59. --txt_lcol2: #ff8d29;
  60. --txt_lcol3: #39cca0;
  61. }
  62. }
  63.  
  64.  
  65. @-moz-document domain("passport.webnovel.com") {
  66. /* Sign-in/passport */
  67. html,
  68. body div {
  69. background: var(--bg);
  70. }
  71. .m-main-hd h3 {
  72. color: var(--txt_title);
  73. }
  74. p.m-input input {
  75. color: var(--txt);
  76. }
  77. }
  78. @-moz-document regexp("http(s)://(www.)webnovel.com/(#*)"), regexp("http(s)://(www.)webnovel.com/category/.*"), regexp("http(s)://(www.)webnovel.com/ranking/.*"), regexp("http(s)://(www.)webnovel.com/profile/.*"), regexp("http(s)://(www.)webnovel.com/badges"), regexp("http(s)://(www.)webnovel.com/settings"), regexp("http(s)://(www.)webnovel.com/library(.*)"), regexp("http(s)://(www.)webnovel.com/history(.*)"), regexp("http(s)://(www.)webnovel.com/book/.*") {
  79. /* Header Bar */
  80. .g_header {
  81. background-color: var(--bg);
  82. border-bottom-color: var(--txt_title);
  83. }
  84. .g_header .g_search svg,
  85. .g_header .g_search strong {
  86. color: var(--txt_title);
  87. }
  88. .g_header .g_hd_link svg,
  89. .g_header .g_hd_link strong {
  90. color: var(--txt_title);
  91. }
  92. /* Header Bar - Search */
  93. .g_search_modal .g_search_header,
  94. .g_search_modal .g_search_header .g_search_input input {
  95. background-color: var(--bg_dark);
  96. }
  97. .g_search_modal .g_search_header .g_search_input input {
  98. border-color: var(--txt_title);
  99. color: var(--txt_title);
  100. }
  101. .g_search_panel,
  102. .g_search_result_list ul {
  103. background-color: var(--bg_dark);
  104. }
  105. .g_search_pop_list a,
  106. .g_search_result_list a,
  107. .g_search_result_list svg,
  108. .j_search_history a {
  109. color: var(--txt) !important;
  110. }
  111. .g_search_pop_list a:hover,
  112. .g_search_result_list a:hover {
  113. background: var(--bg_light_hover);
  114. }
  115. .j_search_history .g_search_tags a {
  116. background-color: var(--bg_light);
  117. }
  118. }
  119.  
  120.  
  121. @-moz-document regexp("http(s)://(www.)webnovel.com/(#*)") {
  122. /* Main Page */
  123. /* Page Body */
  124. html,
  125. body {
  126. background: var(--bg_dark);
  127. color: var(--txt);
  128. }
  129. /* Weekly Book */
  130. div[data-report-blocktitle="Weekly Book"] h3 {
  131. color: var(--txt_title);
  132. }
  133. /* Recent Activities */
  134. div[data-report-blocktitle="Recent Activities"] h3 {
  135. color: var(--txt_title);
  136. }
  137. div[data-report-blocktitle="Recent Activities"] ul :hover {
  138. /*background: var(--bg_light_hover);*/
  139. background: none;
  140. }
  141. div[data-report-blocktitle="Recent Activities"] ul :hover h4 {
  142. color: var(--txt_dark) !important;
  143. }
  144. div[data-report-blocktitle="Recent Activities"] p {
  145. color: var(--txt_dark) !important;
  146. }
  147. /* Weekly Featured */
  148. div[data-report-blocktitle="Weekly Featured"] h3,
  149. section[data-report-blocktitle="Weekly Featured"] h4,
  150. section[data-report-blocktitle="Weekly Featured"] h4 a {
  151. color: var(--txt_title);
  152. }
  153. .m-book3 {
  154. background-color: var(--bg);
  155. }
  156. /* Limited Free For You */
  157. div[data-report-blocktitle="Limited Free For You"] h3,
  158. div[data-report-blocktitle="Limited Free For You"] h3 a {
  159. color: var(--txt_title);
  160. }
  161. /* Special For You */
  162. div[data-report-blocktitle="Special For You"] h3,
  163. div[data-report-blocktitle="Special For You"] h3 a {
  164. color: var(--txt_title);
  165. }
  166. /* Ranking */
  167. div[data-report-blocktitle="Ranking"] h3,
  168. div[data-report-blocktitle="Ranking"] h5 a {
  169. color: var(--txt_title);
  170. }
  171. div[data-report-blocktitle="Ranking"] p a {
  172. color: var(--txt_genre);
  173. }
  174. div[data-report-blocktitle="Ranking"] .c_danger {
  175. color: #eb1551 !important;
  176. }
  177. div[data-report-blocktitle="Ranking"] .c_warning {
  178. color: #ff8d29 !important;
  179. }
  180. div[data-report-blocktitle="Ranking"] .c_success {
  181. color: #39cca0 !important;
  182. }
  183. div[data-report-blocktitle="Ranking"] .ff_number {
  184. color: var(--txt);
  185. }
  186. /* New Ongoing Release */
  187. section[data-report-blocktitle="New Ongoing Release"] {
  188. background: var(--bg_dark);
  189. }
  190. section[data-report-blocktitle="New Ongoing Release"] h3,
  191. section[data-report-blocktitle="New Ongoing Release"] h4 a {
  192. color: var(--txt_title);
  193. }
  194. /* Potential Starlet */
  195. div[data-report-blocktitle="Potential Starlet"] h3,
  196. div[data-report-blocktitle="Potential Starlet"] h3 a{
  197. color: var(--txt_title);
  198. }
  199. div[data-report-blocktitle="Potential Starlet"] .bc_light_default {
  200. background: var(--bg);
  201. }
  202. /* New Tropes */
  203. div[data-report-blocktitle="New Tropes"] h3,
  204. div[data-report-blocktitle="New Tropes"] h3 a{
  205. color: var(--txt_title);
  206. }
  207. div[data-report-blocktitle="New Trops"] p a {
  208. color: var(--txt_genre);
  209. }
  210. /* Encouraging Novels */
  211. section[data-report-blocktitle="Encouraging Novels"] {
  212. background: var(--bg_dark);
  213. }
  214. section[data-report-blocktitle="Encouraging Novels"] h3,
  215. section[data-report-blocktitle="Encouraging Novels"] h4 a {
  216. color: var(--txt_title);
  217. }
  218. /* Completed */
  219. div[data-report-blocktitle="Completed"] h3,
  220. div[data-report-blocktitle="Completed"] h3 a {
  221. color: var(--txt_title);
  222. }
  223. div[data-report-blocktitle="Completed"] .bc_light_default {
  224. background: var(--bg);
  225. }
  226. /* Promising Novels */
  227. div[data-report-blocktitle="Promising Novels"] h3,
  228. div[data-report-blocktitle="Promising Novels"] h3 a {
  229. color: var(--txt_title);
  230. }
  231. div[data-report-blocktitle="Promising Novels"] p a {
  232. color: var(--txt_genre);
  233. }
  234. /* Trending Original */
  235. div[data-report-blocktitle="Trending Original"] h3,
  236. div[data-report-blocktitle="Trending Original"] h4 a {
  237. color: var(--txt_title);
  238. }
  239. /* Potential Entrant */
  240. section[data-report-blocktitle="Potential Entrant"] h3,
  241. section[data-report-blocktitle="Potential Entrant"] h4 a {
  242. color: var(--txt_title);
  243. }
  244. section[data-report-blocktitle="Potential Entrant"] p a {
  245. color: var(--txt_genre);
  246. }
  247. section[data-report-blocktitle="Potential Entrant"] {
  248. background: var(--bg_dark);
  249. }
  250. }
  251.  
  252. @-moz-document regexp("http(s)://(www.)webnovel.com/category/.*") {
  253. /* Browse Page */
  254. /* Page body */
  255. html,
  256. body {
  257. background-color: var(--bg_dark);
  258. color: var(--txt);
  259. }
  260. /* Headers */
  261. h3,
  262. .j_filter_form h4 {
  263. color: var(--txt_title);
  264. }
  265. /* Genre List */
  266. .m-switch {
  267. background-color: var(--bg_light);
  268. }
  269. .m-switch label {
  270. color: var(--txt_genre);
  271. }
  272. .m-switch-0:checked ~ .m-switch label:first-child,
  273. .m-switch-1:checked ~ .m-switch label:not(:first-child) {
  274. background-color: var(--bg_selected);
  275. color: var(--txt);
  276. }
  277. .m-accordion-bd li a {
  278. color: var(--txt_genre);
  279. }
  280. .m-accordion-icon {
  281. color: var(--txt);
  282. }
  283. /* Novel List */
  284. .j_category_wrapper h3 a {
  285. color: var(--txt_title);
  286. }
  287. .j_category_wrapper p,
  288. .j_category_wrapper p strong {
  289. color: var(--txt_genre)
  290. }
  291. }
  292.  
  293. @-moz-document regexp("http(s)://(www.)webnovel.com/ranking/.*") {
  294. /* Rankings Pages */
  295. /* Page body */
  296. html,
  297. body {
  298. background-color: var(--bg_dark);
  299. color: var(--txt);
  300. }
  301. /* Headers */
  302. h3,
  303. .g_hr h4 {
  304. color: var(--txt_title);
  305. }
  306. /* Genre List */
  307. .m-accordion-bd a {
  308. color: var(--txt_genre);
  309. }
  310. .m-accordion-icon {
  311. color: var(--txt);
  312. }
  313. /* Ranking List */
  314. .f1 h5 {
  315. color: var(--txt_genre);
  316. }
  317. .m-release-item strong,
  318. .j_show_filter_sel strong,
  319. .j_show_filter_sel svg {
  320. color: var(--txt);
  321. }
  322. .j_rank_wrapper i.c_danger {
  323. color: var(--txt_lcol1) !important;
  324. }
  325. .j_rank_wrapper i.c_warning {
  326. color: var(--txt_lcol2) !important;
  327. }
  328. .j_rank_wrapper i.c_success {
  329. color: var(--txt_lcol3) !important;
  330. }
  331. .j_rank_wrapper .ff_number.tac {
  332. color: var(--txt);
  333. }
  334. .j_rank_wrapper h3 a {
  335. color: var(--txt_title)
  336. }
  337. .j_rank_wrapper .vam {
  338. color: var(--txt_genre);
  339. }
  340. /* Other Filters dropdown */
  341. .j_show_filter_container {
  342. background: var(--bg_light);
  343. }
  344. .j_show_filter_container legend {
  345. color: var(--txt_genre);
  346. }
  347. }
  348.  
  349. @-moz-document regexp("http(s)://(www.)webnovel.com/profile/.*") {
  350. /* Profile page */
  351. /* Page body */
  352. html,
  353. body,
  354. .header {
  355. background-color: var(--bg_dark);
  356. color: var(--txt);
  357. }
  358. .g_wrap p {
  359. color: var(--txt);
  360. }
  361. address svg,
  362. address strong {
  363. color: var(--txt_genre);
  364. }
  365. }
  366.  
  367. @-moz-document regexp("http(s)://(www.)webnovel.com/badges") {
  368. /* Badges Page */
  369. /* Page body */
  370. html,
  371. body,
  372. .g_sub_hd {
  373. background: var(--bg_dark);
  374. color: var(--txt);
  375. }
  376. }
  377.  
  378. @-moz-document regexp("http(s)://(www.)webnovel.com/settings") {
  379. /* Settings/Edit Profile Page */
  380. /* Page body */
  381. html,
  382. body,
  383. .header {
  384. background: var(--bg_dark);
  385. color: var(--txt);
  386. }
  387. #settingForm .g_row label,
  388. #settingForm .g_row strong {
  389. color: var(--txt);
  390. }
  391. .fc_sel strong {
  392. color: black !important;
  393. }
  394. }
  395.  
  396. @-moz-document regexp("http(s)://(www.)webnovel.com/library(.*)") {
  397. /* Library Page */
  398. /* Page body */
  399. html,
  400. body,
  401. .g_sub_hd {
  402. background: var(--bg_dark);
  403. }
  404. h2,
  405. h3 {
  406. color: var(--txt_title);
  407. }
  408. a._on[title="Library"] {
  409. color: var(--txt) !important;
  410. }
  411. a[title="History"]:hover {
  412. color: var(--txt_genre) !important;
  413. }
  414. }
  415.  
  416. @-moz-document regexp("http(s)://(www.)webnovel.com/history(.*)") {
  417. /* History Page */
  418. /* Page body */
  419. html,
  420. body,
  421. .g_sub_hd {
  422. background: var(--bg_dark);
  423. }
  424. h2 {
  425. color: var(--txt_title);
  426. }
  427. a._on[title="History"] {
  428. color: var(--txt) !important;
  429. }
  430. a[title="Library"] {
  431. color: var(--txt_genre) !important;
  432. }
  433. .g_col h3 a {
  434. color: var(--txt_title);
  435. }
  436. .g_star_num small {
  437. color: var(--txt_genre);
  438. }
  439. .g_tags a,
  440. ._oprate a {
  441. color: var(--bg_selected) !important;
  442. }
  443. .g_col a {
  444. color: var(--txt_genre);
  445. }
  446. }
  447.  
  448. @-moz-document regexp("http(s)://(www.)webnovel.com/book/.*") {
  449. /* Book Page */
  450. /* Page Body */
  451. body,
  452. .page div {
  453. background: var(--bg_dark);
  454. color: var(--txt);
  455. }
  456. /* Book Info */
  457. .det-hd .c_000 {
  458. color: var(--txt_genre);
  459. }
  460. .det-info h2 {
  461. color: var(--txt_title);
  462. }
  463. .det-hd-detail a,
  464. .det-hd-detail strong {
  465. color: var(--txt_genre);
  466. }
  467. .det-hd address span {
  468. color: var(--bg_selected);
  469. }
  470. /* About | Table of Contents Bar */
  471. .det-tab-nav ._on span {
  472. color: var(--bg_selected) !important;
  473. }
  474. /* About */
  475. #about p.c_000 {
  476. color: var(--txt);
  477. }
  478. /* Table of Contents */
  479. #contents li {
  480. background: var(--bg_dark);
  481. }
  482. #contents li i {
  483. color: var(--bg_selected);
  484. }
  485. #contents li strong {
  486. color: var(--txt);
  487. }
  488. /* You may also like */
  489. .j_books_you_also_like .m-book-title h3 {
  490. color: var(--txt_title);
  491. }
  492. .j_books_you_also_like .g_star_num small {
  493. color: var(--txt_dark);
  494. }
  495. /* Reviews */
  496. #review .g_star_num small {
  497. color: var(--txt_dark);
  498. }
  499. #review .g_tab_nav ._on {
  500. color: var(--bg_selected);
  501. }
  502. .m-comment-tool {
  503. color: var(--txt_dark);
  504. }
  505. .m-comment-ft strong {
  506. color: var(--txt_dark);
  507. }
  508. #pagination .ui-page-x a,
  509. #pagination .ui-page-x .ui-page-ellipsis {
  510. color: var(--txt_dark);
  511. }
  512. #pagination .ui-page-x .ui-page-prev,
  513. #pagination .ui-page-x .ui-page-next {
  514. color: var(--txt);
  515. }
  516. /* Leave a review */
  517. #reviewModal .rev-modal-score-list strong {
  518. color: var(--bg_selected)
  519. }
  520. #reviewModal textarea {
  521. color: var(--txt);
  522. }
  523. #reviewModal .btn_rich_modal {
  524. color: var(--txt)
  525. }
  526. #reviewModal .rich_modal_footer strong {
  527. color: var(--txt);
  528. }
  529. /* Review Replies */
  530. #replyDetailModal div {
  531. background: var(--bg);
  532. color: var(--txt);
  533. }
  534. #replyDetailModal blockquote {
  535. background: var(--bg_light);
  536. color: var(--txt);
  537. }
  538. #replyDetailModal .g_mod_chat_ft input {
  539. background: var(--bg);
  540. color: var(--txt);
  541. }
  542. /* Review Replies - Add a Comment */
  543. .rich_modal .g_mod {
  544. background: var(--bg);
  545. }
  546. .rich_modal .g_mod h4 {
  547. color: var(--txt)
  548. }
  549. .rich_modal .g_mod .modal_quote,
  550. .rich_modal .g_mod .modal_quote div {
  551. background: var(--bg_light);
  552. color: var(--txt);
  553. }
  554. .rich_modal .g_mod textarea {
  555. background: var(--bg_light);
  556. color: var(--txt) !important;
  557. }
  558. .rich_modal .g_mod .btn_rich_modal {
  559. color: var(--txt);
  560. }
  561. /* Usernames */
  562. .fans-list a strong,
  563. .m-comment-hd h3 a {
  564. color: var(--txt);
  565. }
  566. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址