BIT-Moodle-Enhance

provide mordern theme design for moodle system.

  1. // ==UserScript==
  2. // @name BIT-Moodle-Enhance
  3. // @namespace https://github.com/fky2015/
  4. // @version 0.1.7
  5. // @description provide mordern theme design for moodle system.
  6. // @author FKYnJYQ
  7. // @grant GM_addStyle
  8. // @include http://lexue.bit.edu.cn/*
  9. // @include https://lexue.bit.edu.cn/*
  10. // @include http://*.lexue.bit.edu.cn/*
  11. // @include https://*.lexue.bit.edu.cn/*
  12. // @include http://online.bit.edu.cn/moodle*
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. "use strict";
  17.  
  18. if (window.location.href.endsWith(".bit.edu.cn/")) {
  19. let t = window.location.href + "my/";
  20. window.location = t;
  21. }
  22. $("a.brand").attr("href", "/my/");
  23.  
  24. let css = `
  25. :root {
  26. --main-gap-color: #181a26;
  27. --main-bg-color: #282a36;
  28. --main-selection-color: #44475a;
  29. --main-header-color: #f1fa8c;
  30. --main-fg-color: #f8f8f2;
  31. --main-block-color: var(--main-bg-color);
  32. --main-comment-color: #6272a4;
  33. --main-red: #ff5555;
  34. --main-green: #50fa7b;
  35. --main-cyan: #8be9fd;
  36. --main-pink: #ff79c6;
  37. }
  38.  
  39. #page-content {
  40. max-width: 100% !important;
  41. }
  42.  
  43. html,
  44. #page-course-search > div.text-center {
  45. background: var(--main-bg-color);
  46. }
  47.  
  48. /* 导航栏 */
  49. header,
  50. #page,
  51. .navbar .brand,
  52. .navbar-inner,
  53. #search,
  54. #coursesearchbox,
  55. .navbar .nav > li > a:focus,
  56. .navbar .nav > li > a:hover,
  57. .navbar .nav > .active > a,
  58. .navbar .nav > .active > a:hover,
  59. .navbar .nav > .active > a:focus,
  60. .navbar .nav li.dropdown.open > .dropdown-toggle,
  61. .navbar .nav li.dropdown.active > .dropdown-toggle,
  62. .navbar .nav li.dropdown.open.active > .dropdown-toggle {
  63. background: var(--main-bg-color) !important;
  64. max-width: 100%;
  65. }
  66.  
  67. .navbar .dropdown-menu {
  68. border-bottom: 0px solid #438eb9;
  69. }
  70.  
  71. .navbar .dropdown-menu > li > a,
  72. .navbar .dropdown-menu > li > a:focus {
  73. background-color: var(--main-red) !important;
  74. color: var(--main-fg-color);
  75. }
  76.  
  77. #page-mod-hvp-view > div.text-center,
  78. #page-enrol-index > div.text-center,
  79. #page-mod-page-view > div.text-center,
  80. #page-course-view-topics > div.text-center,
  81. #page-course-view-weeks > div.text-center,
  82. .text-center {
  83. background: var(--main-bg-color);
  84. }
  85.  
  86. button,
  87. input,
  88. select,
  89. .navbar .btn-navbar {
  90. background: var(--main-bg-color) !important;
  91. border: 1px solid var(--main-fg-color) !important;
  92. color: var(--main-fg-color) !important;
  93. }
  94.  
  95. input[type="image"],
  96. #coursesearchbox {
  97. border-width: 0 !important;
  98. }
  99.  
  100. #search input[type="submit"] {
  101. background: var(--main-bg-color)
  102. url(/theme/image.php/lambda/theme/1582254235/bg/icon-search) no-repeat
  103. center center !important;
  104. border-width: 0px !important;
  105. }
  106.  
  107. header span[tabindex="0"] {
  108. color: var(--main-green);
  109. }
  110.  
  111. table#form td.submit,
  112. .form-buttons,
  113. .path-admin .buttons,
  114. #fitem_id_submitbutton,
  115. .fp-content-center form + div,
  116. div.backup-section + form,
  117. #fgroup_id_buttonar {
  118. background-color: var(--main-bg-color);
  119. }
  120.  
  121. .singleselect form,
  122. .singleselect select,
  123. .moodle-actionmenu[data-enhanced].show .menu {
  124. background-color: var(--main-bg-color);
  125. color: var(--main-fg-color);
  126. }
  127.  
  128. /* 功能块 */
  129. .block {
  130. background: var(--main-block-color);
  131. margin-bottom: 0px;
  132. border: 0;
  133. border-bottom: 2px solid var(--main-gap-color);
  134. }
  135.  
  136. .generaltable tbody > tr:nth-child(odd) > td,
  137. .forumpost,
  138. #newmessageoverlay {
  139. background: var(--main-bg-color);
  140. }
  141.  
  142. /* 主体 */
  143. body {
  144. color: var(--main-fg-color);
  145. }
  146.  
  147. .content h3.sectionname,
  148. .bx-prev,
  149. .bx-next,
  150. .course-content .current .content {
  151. background: var(--main-bg-color);
  152. }
  153.  
  154. .course-content .current {
  155. background: var(--main-bg-color) !important;
  156. border: 5px solid var(--main-selection-color) !important;
  157. }
  158.  
  159. .fa-chevron-circle-up:before {
  160. color: var(--main-selection-color);
  161. }
  162.  
  163. /* 代码编辑 */
  164. .path-mod-programming td.programming-io span {
  165. background-color: var(--main-selection-color);
  166. }
  167.  
  168. .nav-tabs,
  169. .nav-tabs > .active > a {
  170. background-color: var(--main-bg-color);
  171. border: 0;
  172. color: var(--main-fg-color);
  173. }
  174.  
  175. .nav-tabs > li > a {
  176. background-color: var(--main-bg-color);
  177. color: var(--main-fg-color);
  178. }
  179.  
  180. .nav-tabs > .active > a[href],
  181. .nav-tabs > li.active {
  182. color: var(--main-green);
  183. border-bottom: 1px solid var(--main-green);
  184. border-top: 0;
  185. margin-bottom: -1px;
  186. margin-top: -2px;
  187. }
  188.  
  189. .path-mod-programming #test-result-detail .passed,
  190. .path-mod-programming #test-result-detail .passed .cell {
  191. background-color: var(--main-bg-color);
  192. }
  193.  
  194. .passed a {
  195. color: var(--main-green);
  196. }
  197.  
  198. .nav > .disabled > a {
  199. background: var(--main-bg-color);
  200. }
  201. .nav > .disabled > a:hover {
  202. background: var(--main-bg-color) !important;
  203. transform: none !important;
  204. border: none;
  205. }
  206.  
  207. .dp-highlighter ol li,
  208. .dp-highlighter .columns div {
  209. line-height: 24px;
  210. }
  211.  
  212. body {
  213. font-size: 18px;
  214. }
  215.  
  216. .content h3.sectionname {
  217. border-color: #4f0f0f;
  218. border-width: 0px;
  219. }
  220.  
  221. table#explaincaps tbody > tr:nth-child(odd) > td,
  222. table#defineroletable tbody > tr:nth-child(odd) > td,
  223. table.grading-report tbody > tr:nth-child(odd) > td,
  224. table#listdirectories tbody > tr:nth-child(odd) > td,
  225. table.rolecaps tbody > tr:nth-child(odd) > td,
  226. table.userenrolment tbody > tr:nth-child(odd) > td,
  227. table#form tbody > tr:nth-child(odd) > td,
  228. form#movecourses table tbody > tr:nth-child(odd) > td,
  229. #page-admin-course-index .editcourse tbody > tr:nth-child(odd) > td,
  230. .forumheaderlist tbody > tr:nth-child(odd) > td,
  231. table.flexible tbody > tr:nth-child(odd) > td,
  232. .generaltable tbody > tr:nth-child(odd) > td,
  233. table#explaincaps tbody > tr:nth-child(odd) > th,
  234. table#defineroletable tbody > tr:nth-child(odd) > th,
  235. table.grading-report tbody > tr:nth-child(odd) > th,
  236. table#listdirectories tbody > tr:nth-child(odd) > th,
  237. table.rolecaps tbody > tr:nth-child(odd) > th,
  238. table.userenrolment tbody > tr:nth-child(odd) > th,
  239. table#form tbody > tr:nth-child(odd) > th,
  240. form#movecourses table tbody > tr:nth-child(odd) > th,
  241. #page-admin-course-index .editcourse tbody > tr:nth-child(odd) > th,
  242. .forumheaderlist tbody > tr:nth-child(odd) > th,
  243. table.flexible tbody > tr:nth-child(odd) > th,
  244. .generaltable tbody > tr:nth-child(odd) > th {
  245. background-color: var(--main-bg-color);
  246. }
  247.  
  248. /* footer */
  249. #page-footer {
  250. background: var(--main-bg-color);
  251. border-top: 3px solid var(--main-gap-color);
  252. text-align: center;
  253. margin-top: 0px;
  254. }
  255.  
  256. .footerlinks {
  257. line-height: 15px;
  258. background: var(--main-bg-color);
  259. border-top: 0;
  260. padding: 0;
  261. margin: auto;
  262. }
  263.  
  264. .breadcrumb > li {
  265. text-shadow: 0 0;
  266. }
  267.  
  268. #page-footer .footnote {
  269. float: none;
  270. color: var(--main-header-color);
  271. margin-left: 0px;
  272. }
  273.  
  274. #dock .dockedtitle,
  275. .calendar-event-panel,
  276. .block .calendar-event-panel .yui3-overlay-content,
  277. .path-calendar .maincalendar .eventlist * {
  278. background: var(--main-bg-color) !important;
  279. background-color: var(--main-bg-color);
  280. }
  281.  
  282. .block .calendar-event-panel {
  283. border: none;
  284. }
  285. .block .calendar-event-panel .yui3-overlay-content,
  286. .path-calendar .maincalendar .eventlist * {
  287. box-shadow: none;
  288. border-color: var(--main-fg-color);
  289. }
  290.  
  291. .calendar_event_course {
  292. background-color: var(--main-selection-color);
  293. }
  294.  
  295. #dock .dockedtitle .css3transform {
  296. position: static !important;
  297. transform: none !important;
  298. top: auto !important;
  299. width: auto !important;
  300. padding: 1px !important;
  301. line-height: 20px !important;
  302. }
  303.  
  304. #dockeditempanel .dockeditempanel_content {
  305. background-color: var(--main-bg-color);
  306. -webkit-box-shadow: none;
  307. box-shadow: none;
  308. }
  309.  
  310. /* 消除老代码影响 */
  311. .skip-block-to {
  312. height: 0px;
  313. }
  314.  
  315. #site-news-forum,
  316. #frontpage-course-list,
  317. #frontpage-category-combo,
  318. #frontpage-category-names {
  319. background-image: none;
  320. }
  321.  
  322. .course-content ul li.section.main {
  323. background: var(--main-bg-color);
  324. border-bottom: 3px solid var(--main-gap-color);
  325. }
  326.  
  327. a,
  328. a:visited,
  329. .instancename {
  330. color: var(--main-fg-color) !important;
  331. }
  332.  
  333. .usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon img,
  334. .usermenu .moodle-actionmenu[data-enhanced] .menu .menu-action.icon:hover img {
  335. color: var(--main-fg-color);
  336. }
  337.  
  338. .path-mod-assign td.submissionnotgraded,
  339. .path-mod-assign div.submissionnotgraded {
  340. color: var(--main-red);
  341. background-color: var(--main-bg-color);
  342. }
  343.  
  344. .block .header .title {
  345. background: var(--main-block-color);
  346. }
  347.  
  348. .header .title h2:before,
  349. .coursebox > .info > .coursename a:before,
  350. .coursebox > .info > .name a:before {
  351. background: var(--main-block-color) !important;
  352. }
  353.  
  354. /* 课程名称 */
  355. .coursebox > .info > .coursename a {
  356. color: var(--main-fg-color);
  357. }
  358.  
  359. #fitem_id_submitbutton {
  360. background: var(--main-bg-color);
  361. }
  362.  
  363. h1,
  364. h2,
  365. h3,
  366. h4,
  367. h5,
  368. h6,
  369. .back-to-top,
  370. .socials p,
  371. #socialheading,
  372. .forumpost .subject {
  373. color: var(--main-header-color) !important;
  374. }
  375.  
  376. .section .activity .actions {
  377. background: rgba(255, 255, 255, 0);
  378. }
  379.  
  380. li {
  381. line-height: inherit;
  382. }
  383.  
  384. /* file manager */
  385. .ffilemanager * {
  386. background: var(--main-bg-color) !important;
  387. }
  388.  
  389. .moodle-dialogue-base .moodle-dialogue-wrap *,
  390. .moodle-dialogue-base .moodle-dialogue-wrap {
  391. background: var(--main-bg-color) !important;
  392. }
  393.  
  394. .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd,
  395. .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
  396. text-shadow: none;
  397. }
  398. .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
  399. color: var(--main-fg-color);
  400. }
  401. .moodle-dialogue-base .moodle-dialogue-wrap {
  402. border: none;
  403. -webkit-border-radius: 0px;
  404. border-radius: 0px;
  405. }
  406. div.filemanager-loading > img {
  407. display: none;
  408. }
  409. /* 课程 */
  410. .coursebox {
  411. border: 1px solid var(--main-gap-color);
  412. border-radius: 0;
  413. border-width: 0 0 1px 0;
  414. background-color: var(--main-bg-color) !important;
  415. margin-bottom: 0px;
  416. }
  417.  
  418. /* 颜色覆盖 */
  419. .green {
  420. background-color: #50fa7b;
  421. }
  422.  
  423. .purple {
  424. background-color: #bd93f9;
  425. }
  426.  
  427. .orange {
  428. background-color: #ffb86c;
  429. }
  430.  
  431. .lightblue {
  432. background-color: #8be9fd;
  433. }
  434.  
  435. .yellow {
  436. background-color: #fdb53f;
  437. }
  438.  
  439. .turquoise {
  440. background-color: #f1fa8c;
  441. }
  442.  
  443. a:hover {
  444. color: var(--main-pink) !important;
  445. transition: all 0.3s ease 0.1s !important;
  446. text-decoration: none !important;
  447. }
  448.  
  449. .nav-tabs > .active > a,
  450. .nav-tabs > .active > a:hover,
  451. .nav-tabs > .active > a:focus,
  452. .navbar .dropdown-menu > li > a:hover,
  453. .navbar .dropdown-menu > li > a:focus,
  454. a:hover,
  455. .block:hover,
  456. .coursebox:hover,
  457. .generaltable tbody tr:hover > td,
  458. .block:hover .header .title,
  459. .block:hover .header .title h2:before,
  460. .coursebox:hover > .info > .coursename a:before,
  461. .coursebox:hover > .info > .name a:before,
  462. #dock .dockedtitle:hover,
  463. #dock .dockedtitle:focus {
  464. background: var(--main-selection-color) !important;
  465. }
  466.  
  467. .usermenu .moodle-actionmenu .menu .menu-action.icon a:hover img {
  468. background-color: transparent;
  469. }
  470.  
  471. /* scrollbar */
  472. ::-webkit-scrollbar {
  473. width: 0.5rem;
  474. height: 0.5rem;
  475. background: var(--main-bg-color);
  476. }
  477.  
  478. ::-webkit-scrollbar-track {
  479. border-radius: 0;
  480. }
  481.  
  482. ::-webkit-scrollbar-thumb {
  483. border-radius: 0.5rem;
  484. background-color: rgba(95, 95, 95, 0);
  485. transition: all 1s;
  486. }
  487.  
  488. ::-webkit-scrollbar-thumb:hover {
  489. background-color: var(--main-selection-color);
  490. }
  491. `;
  492. GM_addStyle(css);
  493. })();

QingJ © 2025

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