GreasyFork Dark

12/17/2023, 6:12:59 PM

当前为 2024-10-24 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name GreasyFork Dark
  3. // @namespace Violentmonkey Scripts
  4. // @match https://gf.qytechs.cn/*
  5. // @match https://sleazyfork.org/*
  6. // @grant none
  7. // @version 0.3.16
  8. // @author CY Fung
  9. // @description 12/17/2023, 6:12:59 PM
  10. // @run-at document-start
  11. // @unwrap
  12. // @inject-into page
  13. // @license MIT
  14. // @require https://cdn.jsdelivr.net/npm/stylis@4.3.4/dist/umd/stylis.min.js
  15. // ==/UserScript==
  16.  
  17.  
  18. if (!localStorage.darkMode) localStorage.darkMode = 'true';
  19.  
  20. (() => {
  21.  
  22.  
  23. const generalCSSFn = () => `
  24.  
  25. [dark] .user-content[class] [style*="color:"] {
  26. filter: invert(1);
  27. }
  28.  
  29. [dark] .user-content[class] [style*="color:"] [style*="color:"] {
  30. filter: initial;
  31. }
  32.  
  33. [dark] .user-content[class] [style*="color:"] a {
  34. filter: invert(1);
  35. }
  36.  
  37. [dark] .user-content[class] [style*="color:"] code {
  38. filter: invert(1);
  39. }
  40.  
  41. [dark] .user-content[class] code {
  42. color: #b3f6d1;
  43. }
  44.  
  45. `;
  46.  
  47. const cssTextFn = () => [
  48.  
  49. // general
  50. `
  51.  
  52.  
  53.  
  54. html {
  55. overflow-y: scroll
  56. }
  57.  
  58. body {
  59. margin: 0;
  60. background-color: #24272d;
  61. color: #e9e9e9;
  62. }
  63.  
  64. body,select,input {
  65. font-family: Open Sans,sans-serif,"Segoe UI Emoji"
  66. }
  67.  
  68. input, select {
  69. color: #dadada;
  70. background-color: #1e1e1e;
  71. outline:0;
  72. }
  73.  
  74. input {
  75. border: 1px solid #575757;
  76. }
  77.  
  78. textarea {
  79. background-color: #1e1e1e;
  80. color: #fff;
  81. outline: 0;
  82. }
  83. body .preview-results{
  84. border: 1px solid #565c70;
  85. }
  86.  
  87. body:lang(zh-CN),select:lang(zh-CN),input:lang(zh-CN) {
  88. font-family: Open Sans,Microsoft YaHei UI,sans-serif,"Segoe UI Emoji"
  89. }
  90.  
  91. body:lang(zh-TW),select:lang(zh-TW),input:lang(zh-TW) {
  92. font-family: Open Sans,Microsoft JHengHei UI,sans-serif,"Segoe UI Emoji"
  93. }
  94.  
  95. pre,code {
  96. direction: ltr!important
  97. }
  98.  
  99. textarea {
  100. resize: vertical
  101. }
  102.  
  103. a {
  104. color: #f7c67f;/*#f65e5e;*/
  105. }
  106.  
  107. a:visited {
  108. color: #c9a573; /*#e97575;*/
  109. }
  110.  
  111. input[type=checkbox],input[type=radio] {
  112. vertical-align: middle
  113. }
  114.  
  115. #main-header {
  116. background-color: #967474;
  117. background-image: linear-gradient(#b93030,#891b1b);
  118. box-shadow: 0 0 15px 2px #00000080;
  119. padding: .25em 0
  120. }
  121.  
  122. .width-constraint {
  123. margin: auto;
  124. max-width: 1200px
  125. }
  126.  
  127. @media screen and (max-width: 1228px) {
  128. .width-constraint {
  129. margin:auto 1.2vw
  130. }
  131. }
  132.  
  133. #main-header .width-constraint {
  134. padding: 0 0 .25em;
  135. position: relative
  136. }
  137.  
  138. #site-name img {
  139. vertical-align: bottom
  140. }
  141.  
  142. #site-name-text {
  143. display: inline-block;
  144. vertical-align: top
  145. }
  146.  
  147. #site-name-text h1 {
  148. line-height: 1.1em
  149. }
  150.  
  151. #main-header,#main-header a,#main-header a:visited,#main-header a:active {
  152. color: #fff;
  153. }
  154.  
  155. #main-header h1 {
  156. font-size: 72px;
  157. margin: 0;
  158. letter-spacing: -2px
  159. }
  160.  
  161. #main-header h1 a {
  162. text-decoration: none
  163. }
  164.  
  165. #main-header .subtitle {
  166. margin: -8px 0 0 10px;
  167. font-size: .7em;
  168. text-shadow: -1px -1px 0px #670000,1px -1px 0px #670000,-1px 1px 0px #670000,1px 1px 0px #670000
  169. }
  170.  
  171. #site-nav>nav,#nav-user-info {
  172. text-align: right;
  173. position: absolute;
  174. right: 0
  175. }
  176.  
  177. #site-nav>nav {
  178. bottom: 0
  179. }
  180.  
  181. #nav-user-info {
  182. top: 0
  183. }
  184.  
  185. #site-nav>nav a:hover {
  186. color: #fff
  187. }
  188.  
  189. #site-nav>nav {
  190. padding: 0
  191. }
  192.  
  193. #site-nav>nav>li {
  194. list-style-type: none;
  195. display: inline-block
  196. }
  197.  
  198. #site-nav>nav>li+li {
  199. margin-left: .5em
  200. }
  201.  
  202. #script-search,#language-selector {
  203. display: inline
  204. }
  205.  
  206. #nav-user-info {
  207. font-size: small
  208. }
  209.  
  210. #nav-user-info select,#nav-user-info input {
  211. font-size: 11px
  212. }
  213.  
  214. nav nav {
  215. position: absolute;
  216. right: 0;
  217. background-color: #9c2323;
  218. min-width: 100%;
  219. display: none;
  220. padding: 5px 0;
  221. z-index: 10
  222. }
  223.  
  224. nav nav li {
  225. white-space: nowrap;
  226. margin: 0
  227. }
  228.  
  229. nav nav li a {
  230. display: block;
  231. padding: 5px 15px
  232. }
  233.  
  234. nav a:hover+nav,nav nav:hover,nav a:focus+nav {
  235. display: block
  236. }
  237.  
  238. .with-submenu {
  239. position: relative;
  240. padding-right: 15px
  241. }
  242.  
  243. nav .with-submenu>a:after {
  244. content: " ▾"
  245. }
  246.  
  247. @media screen and (max-width: 920px) {
  248. #site-name img {
  249. max-width:96px;
  250. max-height: 96px;
  251. width: 12%;
  252. height: 12%
  253. }
  254.  
  255. #site-name-text {
  256. margin-top: 2.3vw
  257. }
  258.  
  259. #main-header h1 {
  260. font-size: 8.3vw
  261. }
  262.  
  263. #main-header .subtitle {
  264. margin: -.8em 0 0 10px;
  265. font-size: 2vw
  266. }
  267.  
  268. #site-nav {
  269. margin-top: -1vw
  270. }
  271.  
  272. #site-nav>nav,#nav-user-info {
  273. display: block;
  274. position: unset;
  275. right: unset;
  276. padding-top: .3em
  277. }
  278.  
  279. #site-nav>nav {
  280. bottom: unset
  281. }
  282.  
  283. #nav-user-info {
  284. top: unset;
  285. font-size: unset;
  286. width: 100%
  287. }
  288.  
  289. #nav-user-info .sign-in-link {
  290. padding-right: .7em
  291. }
  292.  
  293. #script-search,#language-selector {
  294. display: unset
  295. }
  296. }
  297.  
  298. #script-info {
  299. border: 1px solid #000000;
  300. border-radius: 5px;
  301. clear: left;
  302. background-color: #2e3037;
  303. margin: 1em 0;
  304. box-shadow: 0 0 5px #282828;
  305. }
  306.  
  307. #script-content {
  308. margin-top: 1.5em
  309. }
  310.  
  311. #script-content>*:first-child {
  312. margin-top: 0
  313. }
  314.  
  315. #script-info header h2 {
  316. margin: .25em 0 0;
  317. font-size: 2em;
  318. overflow-wrap: anywhere
  319. }
  320.  
  321. #script-description {
  322. margin: 0
  323. }
  324.  
  325. #version-note,#reported-note,#deleted-note {
  326. font-style: italic;
  327. background-color: #5b5b09;
  328. border: 2px dotted #CC9999;
  329. padding: .5em
  330. }
  331.  
  332. #script-feedback-suggestion {
  333. margin: .75em 0
  334. }
  335.  
  336. #script-content h3 {
  337. margin-top: 30px
  338. }
  339.  
  340. #install-area {
  341. margin-bottom: 1em
  342. }
  343.  
  344. #install-area .install-link:hover,#install-area .install-link:focus,#install-area .install-help-link:hover,#install-area .install-help-link:focus {
  345. transition: box-shadow .2s;
  346. box-shadow: 0 8px 16px #0003,0 6px 20px #00000030
  347. }
  348.  
  349. .install-link,.install-link:visited,.install-link:active,.install-link:hover,.install-help-link {
  350. transition: box-shadow .2s;
  351. display: inline-block;
  352. background-color: #236d23;
  353. padding: .5em 1em;
  354. color: #fff;
  355. text-decoration: none
  356. }
  357.  
  358. .install-help-link,.install-help-link:visited,.install-help-link:active,.install-help-link:hover {
  359. background-color: #1e971e;
  360. color: #fff
  361. }
  362.  
  363. .inline-list,.block-list {
  364. padding-left: 0;
  365. padding-right: 0;
  366. list-style: none
  367. }
  368.  
  369. .inline-list {
  370. display: inline
  371. }
  372.  
  373. .block-list {
  374. display: block;
  375. margin: 0
  376. }
  377.  
  378. .inline-list li,.block-list li {
  379. display: inline
  380. }
  381.  
  382. .inline-list li:after,.block-list li:after {
  383. content: ", "
  384. }
  385.  
  386. body:lang(he) .inline-list li:after,body:lang(he) .block-list li:after,body:lang(ar) .inline-list li:after,body:lang(ar) .block-list li:after,body:lang(ug) .inline-list li:after,body:lang(ug) .block-list li:after,body:lang(ckb) .inline-list li:after,body:lang(ckb) .block-list li:after {
  387. content: "،"
  388. }
  389.  
  390. .inline-list li:last-child:after,.block-list li:last-child:after {
  391. content: ""
  392. }
  393.  
  394. dt[title]>span {
  395. border-bottom: 1px dotted black
  396. }
  397.  
  398. .form-section {
  399. margin-bottom: 2em
  400. }
  401.  
  402. .form-control {
  403. margin-bottom: 1em
  404. }
  405.  
  406. .form-control textarea,#ace-editor {
  407. width: 100%;
  408. box-sizing: border-box;
  409. margin-top: 1px;
  410. margin-bottom: 1px
  411. }
  412.  
  413. .form-control textarea:not([rows]),#ace-editor {
  414. height: 20em
  415. }
  416.  
  417. #ace-editor {
  418. border: 1px solid #BBB;
  419. border-style: inset;
  420. resize: both
  421. }
  422.  
  423. .form-control input:not([type=radio]):not([type=file]):not([type=checkbox]):not([type=search]):not([type=submit]):not([size]) {
  424. box-sizing: border-box;
  425. width: 100%
  426. }
  427.  
  428. .radio-group input[type=radio] {
  429. margin-left: 1em
  430. }
  431.  
  432. .form-control label {
  433. font-weight: 700
  434. }
  435.  
  436. .form-control label.radio-label,.form-control label.checkbox-label {
  437. font-weight: 400
  438. }
  439.  
  440. label.subselection-radio-title {
  441. font-weight: 400;
  442. font-size: small;
  443. display: block;
  444. margin-left: 3px
  445. }
  446.  
  447. .field_with_errors textarea {
  448. background-color: #3b3535;
  449. }
  450.  
  451. .label-note {
  452. font-size: smaller
  453. }
  454.  
  455. .screenshots-controls>*:not(label) {
  456. padding-left: 1em
  457. }
  458.  
  459. .add-screenshot-control,.screenshot-control {
  460. clear: left
  461. }
  462.  
  463. .screenshot-control>* {
  464. vertical-align: middle
  465. }
  466.  
  467. .screenshot-control a {
  468. float: left;
  469. min-width: 150px;
  470. text-align: center
  471. }
  472.  
  473. #script-info,.user-list,.text-content,.discussion-list,.notification-list {
  474. padding: 0 1em 1em
  475. }
  476.  
  477. #script-info>*:last-child,.user-list>*:last-child,.text-content>*:last-child,.discussion-list>*:last-child,.notification-list>*:last-child {
  478. margin-bottom: 0
  479. }
  480.  
  481. .script-list {
  482. padding: 0
  483. }
  484.  
  485. .script-list,.user-list,.text-content,.discussion-list,.notification-list {
  486. list-style-type: none;
  487. box-shadow: 0 0 5px #101011;
  488. background-color: #31343e;
  489. color: #e0e0e0;
  490. border: 1px solid #27282c;
  491. border-radius: 5px;
  492. box-sizing: border-box;
  493. margin: 14px 0
  494. }
  495.  
  496.  
  497. .discussion-list {
  498. background-color: #343b4a;
  499. }
  500.  
  501.  
  502.  
  503. .user-list {
  504. padding: 1em;
  505. margin: 1em 0
  506. }
  507.  
  508. .script-link,.script-description,.user-link {
  509. unicode-bidi: isolate
  510. }
  511.  
  512. .list-option-groups~ol {
  513. width: calc(960px - 14em)
  514. }
  515.  
  516. .text-content .list-option-groups~ol {
  517. width: calc(960px - 16em)
  518. }
  519.  
  520. @media screen and (max-width: 960px) {
  521. #script-info,.user-list,.text-content {
  522. padding:0 1.2vw 1.2vw
  523. }
  524. }
  525.  
  526. .script-list li:not(.ad-entry) {
  527. border-bottom: 1px solid #000000;
  528. padding: 1em
  529. }
  530.  
  531. .script-list .cf-wrapper {
  532. margin: 0!important
  533. }
  534.  
  535. @media screen and (max-width: 960px) {
  536. .script-list li {
  537. padding:1.2vw
  538. }
  539. }
  540.  
  541. .script-list h2 {
  542. margin: 0;
  543. font-size: 18px
  544. }
  545.  
  546. .script-list p {
  547. margin: 0
  548. }
  549.  
  550. .script-list footer {
  551. margin-top: .25em
  552. }
  553.  
  554. .list-current,.script-list h2 {
  555. font-weight: 700
  556. }
  557.  
  558. .script-list .description {
  559. font-weight: 400;
  560. display: block;
  561. margin: .5em 0;
  562. font-size: smaller
  563. }
  564.  
  565. .script-list .name-description-separator {
  566. display: none
  567. }
  568.  
  569. #script-description,.script-list h2>a,.script-list .description {
  570. word-wrap: break-word
  571. }
  572.  
  573. @media screen and (max-width: 720px) {
  574. .script-list,#script-content {
  575. margin-left:unset
  576. }
  577. }
  578.  
  579. .pagination,.script-list+.pagination,.user-list+.pagination {
  580. font-size: 18px;
  581. display: block;
  582. background-color: transparent;
  583. padding: 0;
  584. margin: 0;
  585. border-radius: 5px
  586. }
  587.  
  588. .pagination>*,.script-list+.pagination>*,.user-list+.pagination>* {
  589. display: inline-block;
  590. background-color: #1b1b1e;
  591. padding: .5em;
  592. border-radius: 5px;
  593. text-decoration: none
  594. }
  595.  
  596. .pagination .disabled {
  597. display: none
  598. }
  599.  
  600. .pagination .current {
  601. font-style: normal;
  602. font-weight: 700
  603. }
  604.  
  605. .pagination .current,.pagination .gap {
  606. background-color: transparent
  607. }
  608.  
  609. .pagination>a:hover,.pagination>a:focus {
  610. background-color: #100f0b
  611. }
  612.  
  613. .good-rating-count,.ok-rating-count,.bad-rating-count {
  614. display: inline-block;
  615. min-width: 1em;
  616. text-align: center;
  617. padding: 0 .25em;
  618. border: 1px solid #DDDDDD;
  619. border-radius: 10px
  620. }
  621.  
  622. .good-rating-count {
  623. background-color: #d8fff8;
  624. border-color: #339b334d;
  625. color: #1f7c1f
  626. }
  627.  
  628. .ok-rating-count {
  629. background-color: #f9fec1;
  630. border-color: #9b9b004d;
  631. color: #626221
  632. }
  633.  
  634. .bad-rating-count {
  635. background-color: #ffdada;
  636. border-color: #9b33334d;
  637. color: #7a1f1f
  638. }
  639.  
  640. .select-all,.select-none {
  641. display: none
  642. }
  643.  
  644. .diff {
  645. border: 2px solid black
  646. }
  647.  
  648. #help-allowed-elements,#help-allowed-styles {
  649. -moz-column-width: 20em;
  650. -webkit-column-width: 20em;
  651. column-width: 20em
  652. }
  653.  
  654. #help-allowed-elements li,#help-allowed-styles li {
  655. padding-right: 1em
  656. }
  657.  
  658. #by-site-list {
  659. list-style-type: none;
  660. padding: 0
  661. }
  662.  
  663. #by-site-list li {
  664. display: inline;
  665. vertical-align: middle
  666. }
  667.  
  668. #user_profile {
  669. width: 100%;
  670. height: 10em
  671. }
  672.  
  673. .preview-result {
  674. display: none;
  675. background-color: #ffa;
  676. padding: .5em
  677. }
  678.  
  679. .failed-sync {
  680. background-color: #fcc
  681. }
  682.  
  683. .alert {
  684. font-style: italic;
  685. background-color: #ffc;
  686. border: none;
  687. border-left: 6px solid #FFEB3B;
  688. padding: .5em
  689. }
  690.  
  691. .notice {
  692. background-color: #2b556a;
  693. border: none;
  694. border-left: 6px solid #5aa5cb;
  695. padding: .5em
  696. }
  697.  
  698. .validation-errors {
  699. background-color: #626240;
  700. border: none;
  701. border-left: 6px solid #FFEB3B;
  702. padding: .5em;
  703. margin: .5em 0
  704. }
  705.  
  706. .validation-errors>p:first-child {
  707. margin-top: 0
  708. }
  709.  
  710. .validation-errors>p:last-child {
  711. margin-bottom: 0
  712. }
  713.  
  714. #install-stats-chart {
  715. width: 100%;
  716. height: 400px
  717. }
  718.  
  719. .stats-table {
  720. border-collapse: collapse
  721. }
  722.  
  723. .stats-table th,.stats-table td {
  724. border: 1px solid gray;
  725. padding: 0 .5em
  726. }
  727.  
  728. td.numeric,th.numeric {
  729. text-align: right
  730. }
  731.  
  732. .translation_missing {
  733. outline: dashed red
  734. }
  735.  
  736. #edit_user>div {
  737. margin-bottom: .5em
  738. }
  739.  
  740. #edit_user>div>label:first-child {
  741. font-weight: 700
  742. }
  743.  
  744. .inline-form {
  745. display: inline
  746. }
  747.  
  748. a.self-link,a.self-link:visited {
  749. text-decoration: none;
  750. color: #000;
  751. opacity: .2
  752. }
  753.  
  754. .indented {
  755. padding-left: 1em
  756. }
  757.  
  758. .external-login {
  759. padding: 2px 2px 3px 25px;
  760. border: 1px solid black;
  761. border-radius: 2px;
  762. background-repeat: no-repeat;
  763. background-size: 16px 16px;
  764. background-position: 5px 2px
  765. }
  766.  
  767. .external-login-container {
  768. display: inline-block;
  769. vertical-align: top
  770. }
  771.  
  772. .external-login-container * {
  773. text-align: center;
  774. display: block
  775. }
  776.  
  777. .external-login-container>*:not(button) {
  778. font-size: smaller
  779. }
  780.  
  781. .external-login-container:not(:last-child) {
  782. margin-right: 5px
  783. }
  784.  
  785. .external-login-container .github-login {
  786. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNTE3OEEyQTk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNTE3OEEyQjk5QTAxMUUyOUExNUJDMTA0NkE4OTA0RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTI4OTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTI5OTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+m4QGuQAAAyRJREFUeNrEl21ojWEYx895TDPbMNlBK46IUiNmPvHBSUjaqc0H8pF5+aDUKPEBqU2NhRQpX5Rv5jWlDIWlMCv7MMSWsWwmb3tpXub4XXWdPHvc9/Gc41nu+nedc7/8r/99PffLdYdDPsvkwsgkTBwsA/PADJCnzX2gHTwBt8Hl7p537/3whn04XoDZDcpBlk+9P8AFcAghzRkJwPF4zGGw0Y9QS0mAM2AnQj77FqCzrtcwB1Hk81SYojHK4DyGuQ6mhIIrBWB9Xm7ug/6B/nZrBHBegrkFxoVGpnwBMSLR9EcEcC4qb8pP14BWcBcUgewMnF3T34VqhWMFkThLJAalwnENOAKiHpJq1FZgI2AT6HZtuxZwR9GidSHtI30jOrbawxlVX78/AbNfhHlomEUJJI89O2MqeE79T8/nk8nMBm/dK576hZgmA3cp/R4l9/UeSxiHLVIlNm4nFfT0bxyuIj7LHRTKai+zdJobwMKzcZSJb0ePV5PKN+BqAAKE47UlMnERELMM3EdYP/yrd+XYb2mOiYBiQ8OQnoRBlXrl9JZix7D1pHTazu4MoyBcnYamqAjIMTR8G4FT8LuhLsexXYYjICBiqhQBvYb6fLZIJCjPypVvaOoVAW2WcasCnL2Nq82xHJNSqlCeFcDshaPK0twkAhosjZL31QYw+1rlMpWGMArl23SBsZZO58F2tlJXmjOXS+s4WGvpMiBJT/I2PInZ6lIs9/hBsNS1hS6BG0DSqmYEDRlCXQrmy50P1oDRKTSegmNbUsA0zDMwRhPJXeCE3vWLPQMvan6X8AgIa1vcR4AkGZkDR4ejJ1UHpsaVI0g2LInpOsNFUud1rhxSV+fzC9Woz2EZkWQuja7/B+jUrgtIMpy9YCW4n4K41YfzRneW5E1KJTe4B2Zq1Q5EHEtj4U3AfEzR5SVY4l7QYQPJdN2as7RKBF0BPZqqH4VgMAMBL8Byxr7y8zCZiDlnOcEKIPmUpgB5Z2ww5RdOiiRiNajUmWda5IG6WbhsyY2fx6m8gLcoJDJFkH219M3We1+cnda93pfycZpIJEL/s/wSYADmOAwAQgdpBAAAAABJRU5ErkJggg==)
  787. }
  788.  
  789. .external-login-container .gitlab-login {
  790. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAACoUlEQVRYhc3WzW+UVRQG8N/MtKKYsEFMmpo27DUEFgSiSIHSsDAxsYr6L4Cs+AMkMWiMCwgB2lQMhIWJ0Rip7owbXbhjhekGTFBQkC9rTCxBWxb3vpkzb2Y6H+00PsnN3Hve8zznzL3nfvA/xQRm8Qk2rUBnU9aYxf5OSevxF5ZyO7eCBM4Fnb/xVCekyUBawl0M9BB8EPdLWq92Qvy0RFrCvh4SmGiic7EdaZ3G6S/aVA8JzDTR+RNPLEd6JTi/h19z/zZqXQQfwB+Zex3Hg+6B5Yjng+MWnAzjl7tIYE/gncDWMP64FSkWzVVUsCsQT3WRwOnAeylr/ZzHd7Qo6v2B9GG21XAr226i2kHwKn7LnN8D56Ogv6cZcTo4bA/2qWDf2UECLwb/s8G+I9jPFMZK/q3lrJ+VCm80O8I4vs39RRxtk8CJ0B/Hd7lfxS8YlmbmuawHxjQWTcSgdBiVt1S71uwAOxW+7yqygteD05cl0iNcaPl/W+MC/i3Zvgj9g6QlqOIGhqSCGxamJqOKbXiyw+ALuNxEpyYt8ZB0tgyTCqtZ0fQLcRn2VqXLp0B5+vuBz0L/TbiWs7knFVy/UVU/4u9QP7Pn5crsM8bVl+AfeDcY/svjXu7/dhjAMY1b9Trpejxf+vA9RlYx+Ah+KMX4HBui09vSMhQO9/HaKgSfxIOgO4+3Wjlvxo+lTKeld2K3WK/xflnK2pvbEQelB8RiIF7B810EfwE/Bf5i1uxql+1Vv1aLij2kfoE1QwWHpZOw4N3MWj3hGXytcRq/wsYmvhtxqeQ7mzVWhAqO4GEQvoHdwWcs24rvC3jH8rPVNbZgTuO6vo8PNNbLXPbtC56WHpWt3gAz2afveEN64xeBH2h8U6wJRvFNbqNrHXzV8BjO7vx8x02KpQAAAABJRU5ErkJggg==)
  791. }
  792.  
  793. .external-login-container .google_oauth2-login {
  794. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAnFJREFUOI2FU11Ik1EYfs75zvZ9c35buAKpaWaSSVZoiheBKVmYdWF1ERi7kMhFUeqNFxLURRAhFKvhTcHMioQiCBG8iOgH8QfFKZj4M81ES0fONfe5tW87XcQncw17rs7znud5f87LIUgCn8u1jQaWL2MtWMTBGZGkKUgpLvPVxolELYkn3if3ZP38ytvQ8EAZCa6RzUoK4WDBrJiXey61rtH9T4LVx86cWF/PsPp1OjVZVxpo+q6wpfSUTOz2CAAwAIg5HOJqf89QvFnI3KNQa6ab6vTB2Ir3QGRsdCeMqVw8WmbTzBsJFPNSmzo7bfpbgkI6UeWSm25dIgDXhAHn/YtgRJWvNLza1BLnIOHPWZFwVyVfrizhvjvNXVuNkAimTjVV0PADBnEBpuYiVRnfXRMvaOkMOaOcpyUz7zDgJiPRtRKtTyrBn2a3++NFg7NqnTcAXbIE1UWsjwJkY07ON6/1v4hBYlxn6tP4SHS7yTH5zFS/z/ZLix3OEDrDUVg0PjSjlioRQgBA1GGSsb1334cXsyMd5Liudd7HKuB9CeC0Zmg+azivnR92h6qVCDkGAAYd53pB7KaEgLeJ1147F1YQ4xzv5nurbvc/eoqEcZwfh0r7PWqHxvOtwlhtOQkRAHBMOsQBz9zShH/OrAky5PT1LKN1lDG6/nPdnzPu81gPyeWYGbkAA2P8zBF9YV256N6o0jr6IvvT4qB7evWbvNW75Znzo8VCU8ONk0YnkPCZWtztRp+y/Kb3x0hF4LdC4+8oIci37P9eYMmtuV5g+6DFk66txd1uRFStDarBYnAuiYLkSREMz+sLbV8StX8AjxDtgxiuzNwAAAAASUVORK5CYII=)
  795. }
  796.  
  797. .centered-sections h2,.centered-sections h3 {
  798. text-align: center
  799. }
  800.  
  801. form.external-login-form {
  802. position: relative;
  803. display: table;
  804. margin: 0 auto;
  805. padding: 1em;
  806. background-color: #393939;
  807. border: 1px solid #1c242a;
  808. border-radius: 5px;
  809. text-align: center
  810. }
  811.  
  812. form.external-login-form .remember-me {
  813. margin-top: 12px
  814. }
  815.  
  816. form.new_user {
  817. position: relative;
  818. width: 340px;
  819. margin: 0 auto;
  820. padding: 1em;
  821. background-color: #393939;
  822. border: 1px solid #1c242a;
  823. border-radius: 5px;
  824. text-align: start
  825. }
  826.  
  827. @media screen and (max-width: 440px) {
  828. form.new_user {
  829. width:unset
  830. }
  831. }
  832.  
  833. form.new_user label,form.new_user em {
  834. display: block;
  835. font-size: small
  836. }
  837.  
  838. form.new_user br {
  839. display: none
  840. }
  841.  
  842. form.new_user input[type=text],form.new_user input[type=email],form.new_user input[type=password] {
  843. display: block;
  844. width: 100%;
  845. min-height: 34px;
  846. box-sizing: border-box;
  847. margin-top: .2em;
  848. margin-bottom: .5em;
  849. padding: 6px 8px;
  850. font-size: 14px;
  851. line-height: 20px;
  852. vertical-align: middle;
  853. color: #c8c8c8;
  854. background-color: #1e1e1e;
  855. border: 1px solid #070707;
  856. border-radius: 3px;
  857. outline: none;
  858. box-shadow: inset 0 1px 2px #0000001a
  859. }
  860.  
  861. form input[type=checkbox],form input[type=checkbox]+label,form input[type=radio],form input[type=radio]+label {
  862. display: inline-block;
  863. font-size: small
  864. }
  865.  
  866. .radio-note {
  867. font-size: small;
  868. margin-top: 5px
  869. }
  870.  
  871. @media screen and (max-width: 440px) {
  872. form input[type=checkbox]+label {
  873. display:unset;
  874. word-wrap: break-word
  875. }
  876. }
  877.  
  878. form.new_user input[type=submit] {
  879. display: block;
  880. width: 100%;
  881. min-height: 34px;
  882. box-sizing: border-box;
  883. margin: .5em 0 0;
  884. padding: 6px 8px;
  885. font-size: 14px;
  886. font-weight: 700;
  887. line-height: 20px;
  888. text-align: center;
  889. vertical-align: middle;
  890. color: #fff;
  891. background-color: #670000;
  892. background-image: linear-gradient(#990000,#670000);
  893. border: 0px solid #ddd;
  894. box-shadow: 0 4px 8px #0003,0 6px 20px #00000030;
  895. border-radius: 3px;
  896. white-space: normal
  897. }
  898.  
  899. form.new_user~br {
  900. display: none
  901. }
  902.  
  903. form.new_user~a {
  904. width: 340px;
  905. display: block;
  906. margin: 0 auto 2em;
  907. font-size: small
  908. }
  909.  
  910. form.new_user+a {
  911. width: 340px;
  912. display: block;
  913. margin: 0 auto
  914. }
  915.  
  916. .sidebar-search,.home-search {
  917. position: relative;
  918. vertical-align: middle
  919. }
  920.  
  921. .sidebar-search input[type=search],.home-search input[type=search] {
  922. padding-inline-end:20px}
  923.  
  924. .sidebar-search input[type=search] {
  925. width: 100%;
  926. margin: 0 0 1em
  927. }
  928.  
  929. .sidebar-search input[type=submit],.home-search input[type=submit] {
  930. position: absolute;
  931. -moz-appearance: none;
  932. -webkit-appearance: none;
  933. inset-inline-end: 0;
  934. top: 0;
  935. border-color: transparent;
  936. padding-inline-start:0;padding-inline-end:6px;margin-left: 0;
  937. margin-right: 0;
  938. background: none;
  939. opacity: .5
  940. }
  941.  
  942. @media screen and (max-width: 680px) {
  943. .sidebar-search input[type=search],.home-search input[type=search] {
  944. font-size:unset
  945. }
  946. }
  947.  
  948. figure {
  949. padding: 5px;
  950. box-shadow: 0 4px 8px #00000026,0 6px 10px #00000026;
  951. border-radius: 5px
  952. }
  953.  
  954. figcaption {
  955. font-size: smaller;
  956. text-align: center
  957. }
  958.  
  959. .multiform-page:not(:first-child) {
  960. margin-top: 30px
  961. }
  962.  
  963. .multiform-page:not(:last-child) {
  964. padding-bottom: 30px;
  965. border-bottom: 1px solid lightgray
  966. }
  967.  
  968. summary {
  969. cursor: pointer
  970. }
  971.  
  972. .blocked-script-codes {
  973. font-size: smaller;
  974. border-collapse: collapse;
  975. width: 100%;
  976. text-align: left
  977. }
  978.  
  979. .blocked-script-codes .pattern-row {
  980. font-size: medium
  981. }
  982.  
  983. .blocked-script-codes .pattern-row {
  984. border-top: 1px solid gray
  985. }
  986.  
  987. .blocked-script-codes .info-row td:first-child {
  988. width: 2em
  989. }
  990.  
  991. .ad {
  992. margin-top: 1em;
  993. margin-bottom: 1em
  994. }
  995.  
  996. .after-radio-chosen {
  997. display: none;
  998. margin-left: 29px
  999. }
  1000.  
  1001. input[type=radio]:checked~.after-radio-chosen {
  1002. display: block
  1003. }
  1004.  
  1005. .announcement {
  1006. margin: 14px 0;
  1007. text-align: center;
  1008. font-size: smaller
  1009. }
  1010.  
  1011. .announcement form {
  1012. display: inline
  1013. }
  1014.  
  1015. .announcement input {
  1016. appearance: none;
  1017. -moz-appearance: none;
  1018. -webkit-appearance: none;
  1019. border: 0;
  1020. background: none;
  1021. margin: 0 0 0 4px;
  1022. padding: 0;
  1023. cursor: pointer
  1024. }
  1025.  
  1026. .announcement,.announcement input {
  1027. font-size: 12px
  1028. }
  1029.  
  1030. .badge {
  1031. margin-left: 1ex;
  1032. border-radius: 10%/25%;
  1033. font-size: 70%;
  1034. padding: 0 .5ex;
  1035. text-transform: uppercase;
  1036. position: relative;
  1037. top: -.2ex
  1038. }
  1039.  
  1040. .badge-banned,.badge-deleted {
  1041. background-color: #e52020; /* #ff0000e6; */
  1042. color: #ebebeb; /* #fff */
  1043. }
  1044.  
  1045. .badge-deleted {
  1046. margin-left: 0;
  1047. border-color: #ff0000e6
  1048. }
  1049.  
  1050. .badge-moderator {
  1051. background-color: #1a1da8e6;
  1052. color: #fff
  1053. }
  1054.  
  1055. .badge-author {
  1056. background-color: #1e971ee6;
  1057. color: #fff
  1058. }
  1059.  
  1060. .badge-js {
  1061. background-color: #efd81d;
  1062. color: #000
  1063. }
  1064.  
  1065. .badge-css {
  1066. background-color: #254bdd;
  1067. color: #fff
  1068. }
  1069.  
  1070. .badge-js,.badge-css {
  1071. display: none
  1072. }
  1073.  
  1074. .showing-all-languages .badge-js,.showing-all-languages .badge-css {
  1075. display: inline
  1076. }
  1077.  
  1078. .list-option-groups .carbon-ad,.list-option-groups .adsense-ad {
  1079. display: block;
  1080. overflow: hidden;
  1081. margin-bottom: 1em;
  1082. padding: 1em;
  1083. border: 1px solid hsl(0,0%,73%);
  1084. border-radius: 5px;
  1085. background-color: #fff;
  1086. box-shadow: 0 0 5px #ddd;
  1087. text-align: center;
  1088. line-height: 1.5;
  1089. min-height: 203px
  1090. }
  1091.  
  1092. .list-option-groups .carbon-ad a {
  1093. text-decoration: none
  1094. }
  1095.  
  1096. .list-option-groups .carbon-ad span {
  1097. display: block;
  1098. overflow: hidden
  1099. }
  1100.  
  1101. .list-option-groups .carbon-img {
  1102. display: block;
  1103. margin: 0 auto 1em
  1104. }
  1105.  
  1106. .list-option-groups .carbon-text {
  1107. display: block;
  1108. margin-bottom: 1em
  1109. }
  1110.  
  1111. .list-option-groups .carbon-poweredby {
  1112. display: block;
  1113. text-transform: uppercase;
  1114. letter-spacing: 1px;
  1115. font-size: 9px
  1116. }
  1117.  
  1118. #script-show-info-ad .carbon-wrap {
  1119. display: flex
  1120. }
  1121.  
  1122. #script-show-info-ad .carbon-text {
  1123. padding: 10px
  1124. }
  1125.  
  1126. #script-show-info-ad .carbon-text,#script-show-info-ad .carbon-poweredby {
  1127. width: 200px;
  1128. text-align: center
  1129. }
  1130.  
  1131. #script-show-info-ad a {
  1132. text-decoration: none
  1133. }
  1134.  
  1135. #script-show-info-ad #carbonads {
  1136. background-color: #fff;
  1137. font-size: smaller
  1138. }
  1139.  
  1140. #script-show-info-ad .carbon-poweredby {
  1141. font-size: 9px;
  1142. text-transform: uppercase;
  1143. margin-top: -13px;
  1144. display: block;
  1145. margin-left: 140px;
  1146. letter-spacing: 1px
  1147. }
  1148.  
  1149. #script-show-info-ad #carbonads img {
  1150. vertical-align: bottom
  1151. }
  1152.  
  1153. #script-show-info-ad.ad-ca,#script-show-info-ad.ad-c2 {
  1154. width: 350px;
  1155. margin: 1em 0
  1156. }
  1157.  
  1158. #script-show-info-ad.ad-ca .ad-content,#script-show-info-ad.ad-c2 .ad-content {
  1159. min-height: 100px
  1160. }
  1161.  
  1162. code {
  1163. background-color: #5c4b5e
  1164. }
  1165.  
  1166. pre code {
  1167. background: none;
  1168. border: 0
  1169. }
  1170.  
  1171. pre,code {
  1172. border-radius: 2px;
  1173. border: 1px solid #685c71
  1174. }
  1175.  
  1176. pre {
  1177. padding: 1em
  1178. }
  1179.  
  1180. .prettyprint {
  1181. width: max-content;
  1182. min-width: calc(100% - 6px)
  1183. }
  1184.  
  1185. .code-container {
  1186. max-height: calc(100vh - 54px);
  1187. overflow-x: auto;
  1188. border-radius: 2px;
  1189. border: 1px solid #E6DDD6
  1190. }
  1191.  
  1192. .code-container pre {
  1193. border: 0;
  1194. margin: 0
  1195. }
  1196.  
  1197. li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9 {
  1198. list-style-type: decimal!important
  1199. }
  1200.  
  1201. @media screen and (max-width: 440px) {
  1202. #code-container {
  1203. font-size:small
  1204. }
  1205. }
  1206.  
  1207. .diff_options input[type=number] {
  1208. width: 10ch
  1209. }
  1210.  
  1211. .diff {
  1212. overflow: auto
  1213. }
  1214.  
  1215. .diff ul {
  1216. background: #343439;
  1217. overflow: auto;
  1218. font-size: 13px;
  1219. list-style: none;
  1220. margin: 0;
  1221. padding: 0;
  1222. display: table;
  1223. width: 100%
  1224. }
  1225.  
  1226. .diff del,.diff ins {
  1227. display: block;
  1228. text-decoration: none
  1229. }
  1230.  
  1231. .diff li {
  1232. padding: 0;
  1233. display: table-row;
  1234. margin: 0;
  1235. height: 1em
  1236. }
  1237.  
  1238. .diff li.ins {
  1239. background: #dfd;
  1240. color: #080
  1241. }
  1242.  
  1243. .diff li.del {
  1244. background: #fee;
  1245. color: #b00
  1246. }
  1247.  
  1248. .diff li:hover {
  1249. background: #ffc
  1250. }
  1251.  
  1252. .diff del,.diff ins,.diff span {
  1253. white-space: pre;
  1254. font-family: courier
  1255. }
  1256.  
  1257. .diff del strong {
  1258. font-weight: 400;
  1259. background: #fcc
  1260. }
  1261.  
  1262. .diff ins strong {
  1263. font-weight: 400;
  1264. background: #9f9
  1265. }
  1266.  
  1267. .diff li.diff-comment {
  1268. display: none
  1269. }
  1270.  
  1271. .diff li.diff-block-info {
  1272. background: none repeat scroll 0 0 gray
  1273. }
  1274.  
  1275. .diff del,.diff ins,.diff span {
  1276. font-family: monospace
  1277. }
  1278.  
  1279. .diff {
  1280. max-height: calc(100vh - 54px);
  1281. overflow-y: auto
  1282. }
  1283.  
  1284. .report-diff .diff {
  1285. max-height: 75vh
  1286. }
  1287.  
  1288. .report-diff form {
  1289. display: inline
  1290. }
  1291.  
  1292. .ea-content,.ea-callout {
  1293. margin: 0!important
  1294. }
  1295.  
  1296. .expander {
  1297. cursor: pointer;
  1298. display: block;
  1299. color: #670000;
  1300. border-radius: 3px;
  1301. background-color: #1b1b1e;
  1302. position: absolute;
  1303. width: 20px;
  1304. height: 20px;
  1305. text-align: center;
  1306. inset-inline-end: -22px;
  1307. bottom: 0
  1308. }
  1309.  
  1310. .expanded {
  1311. overflow: auto
  1312. }
  1313.  
  1314. .collapsed {
  1315. overflow: hidden
  1316. }
  1317.  
  1318. .comment {
  1319. margin-bottom: 20px
  1320. }
  1321.  
  1322. .comment-entry {
  1323. width: 100%;
  1324. height: 10em
  1325. }
  1326.  
  1327. .discussion-meta,.comment-meta,.notification-meta {
  1328. display: flex;
  1329. align-items: flex-end
  1330. }
  1331.  
  1332. .discussion-meta,.notification-meta {
  1333. font-size: 11px
  1334. }
  1335.  
  1336. .comment-meta {
  1337. font-size: smaller;
  1338. margin-bottom: 2px
  1339. }
  1340.  
  1341. .comment-meta-item-main {
  1342. font-size: medium;
  1343. font-weight: 700
  1344. }
  1345.  
  1346. .comment-meta-item+.comment-meta-item {
  1347. margin-left: 15px
  1348. }
  1349.  
  1350. .discussion-meta-item,.notification-meta-item {
  1351. flex: 1;
  1352. text-align: left
  1353. }
  1354.  
  1355. .discussion-meta-item:not(:first-child) {
  1356. margin-left: 8px
  1357. }
  1358.  
  1359. .discussion-meta-item:not(:last-child) {
  1360. margin-right: 8px
  1361. }
  1362.  
  1363. .discussion-meta-item:last-child {
  1364. text-align: right
  1365. }
  1366.  
  1367. .comment-meta-spacer {
  1368. flex: 1
  1369. }
  1370.  
  1371. .post-reply {
  1372. margin-top: 20px
  1373. }
  1374.  
  1375. .post-reply h3,.edit-comment-form h3 {
  1376. margin-bottom: 0
  1377. }
  1378.  
  1379. .post-reply input[type=submit],.edit-comment-form input[type=submit] {
  1380. margin-top: 5px
  1381. }
  1382.  
  1383. .discussion-up-level {
  1384. font-size: smaller;
  1385. margin-top: 0
  1386. }
  1387.  
  1388. .edit-comment-form {
  1389. display: none
  1390. }
  1391.  
  1392. .edit-comment-mode .edit-comment-form {
  1393. display: block
  1394. }
  1395.  
  1396. .edit-comment-mode .user-content,.edit-comment-mode .comment-meta {
  1397. display: none
  1398. }
  1399.  
  1400. .discussion-rating {
  1401. margin-top: 10px
  1402. }
  1403.  
  1404. .discussion-list,.notification-list {
  1405. padding-bottom: 0
  1406. }
  1407.  
  1408. .discussion-list-item,.notification-list-item {
  1409. padding-top: 10px;
  1410. border-top: 1px solid #CCC
  1411. }
  1412.  
  1413. .discussion-list-container:first-child .discussion-list-item {
  1414. border-top: 0
  1415. }
  1416.  
  1417. .discussion-list-logged-in .discussion-read,.notification-read {
  1418. background-color: #2c303a;
  1419. margin-left: -16px;
  1420. margin-right: -16px;
  1421. padding-left: 16px;
  1422. padding-right: 16px
  1423. }
  1424.  
  1425. .script-discussion-list .discussion-list-item:last-child {
  1426. border-bottom: 1px solid #CCC
  1427. }
  1428.  
  1429. a.discussion-title,.notification-list-item a {
  1430. display: block;
  1431. text-decoration: none;
  1432. color: #d0d0d0;
  1433. padding: 4px 0 14px;
  1434. white-space: nowrap;
  1435. overflow: hidden;
  1436. text-overflow: ellipsis
  1437. }
  1438.  
  1439. .discussion-title,.notification-list-item a {
  1440. vertical-align: middle
  1441. }
  1442.  
  1443. .discussion-title:hover,.notification-list-item a {
  1444. color: #f6f6f6;
  1445. }
  1446.  
  1447. .rating-icon,.badge-deleted {
  1448. border: 2px solid black;
  1449. border-radius: 5px;
  1450. font-size: 12px;
  1451. text-transform: uppercase;
  1452. font-weight: 800;
  1453. padding: 2px 5px;
  1454. margin-right: 5px;
  1455. display: inline-block;
  1456. text-align: center;
  1457. min-width: 45px;
  1458. position: relative;
  1459. top: -1px
  1460. }
  1461.  
  1462. .rating-icon-good {
  1463. border-color: #258925;
  1464. background-color: #cce9cc;
  1465. color: #0f4d0f
  1466. }
  1467.  
  1468. .rating-icon-ok {
  1469. border-color: #a7a71e;
  1470. background-color: #ffffd4;
  1471. color: #4f4f12
  1472. }
  1473.  
  1474. .rating-icon-bad {
  1475. border-color: #cf2929;
  1476. background-color: #f2c7c7;
  1477. color: #440d0d
  1478. }
  1479.  
  1480. .discussion-list-main-content {
  1481. overflow-x: hidden
  1482. }
  1483.  
  1484. .discussion-meta-item-script-name {
  1485. overflow: hidden
  1486. }
  1487.  
  1488. .discussion-meta-item-script-name a {
  1489. white-space: nowrap;
  1490. text-overflow: ellipsis;
  1491. overflow: hidden;
  1492. display: block
  1493. }
  1494.  
  1495. .comment .user-content>*:first-child {
  1496. margin-top: 0
  1497. }
  1498.  
  1499. .comment-screenshot-control {
  1500. font-size: smaller;
  1501. padding: .5em 0
  1502. }
  1503.  
  1504. .discussion-header,.discussion-list-header,.notification-list-header {
  1505. display: flex;
  1506. margin-top: 30px;
  1507. margin-bottom: 20px
  1508. }
  1509.  
  1510. .discussion-header-no-script {
  1511. margin-top: 16px
  1512. }
  1513.  
  1514. .discussion-header>*:first-child,.discussion-list-header h2,.notification-list-header>*:first-child {
  1515. flex: 1;
  1516. margin: 0!important
  1517. }
  1518.  
  1519. .discussion-header h2,.discussion-header .discussion-up-level,.notification-list-header h2 {
  1520. margin: 0
  1521. }
  1522.  
  1523. .discussion-header .badge {
  1524. vertical-align: middle
  1525. }
  1526.  
  1527. .discussion-actions,.notification-actions {
  1528. font-size: smaller
  1529. }
  1530.  
  1531. .discussion-subscribed .discussion-subscribe,.discussion-not-subscribed .discussion-unsubscribe {
  1532. display: none
  1533. }
  1534.  
  1535. .post-discussion label:not(.radio-label),.post-reply label:not(.radio-label),.post-discussion .form-note,.post-reply .form-note {
  1536. font-size: smaller
  1537. }
  1538.  
  1539. #test-require-result-ok,#test-require-result-not-ok {
  1540. display: none;
  1541. font-weight: 700
  1542. }
  1543.  
  1544. #test-require-result-ok {
  1545. color: green
  1546. }
  1547.  
  1548. #test-require-result-not-ok {
  1549. color: red
  1550. }
  1551.  
  1552. #home-script-nav {
  1553. max-width: 700px;
  1554. margin: 0 auto 15px;
  1555. padding-bottom: 20px;
  1556. border-bottom: 1px solid #BBBBBB
  1557. }
  1558.  
  1559. .home-search input {
  1560. font-size: large
  1561. }
  1562.  
  1563. .home-search input[type=search] {
  1564. width: 100%
  1565. }
  1566.  
  1567. #home-top-sites {
  1568. overflow: hidden;
  1569. margin-top: 5px
  1570. }
  1571.  
  1572. #home-top-sites a {
  1573. margin: 0 5px
  1574. }
  1575.  
  1576. #home-step-1,#home-step-2,#home-step-3 {
  1577. overflow: auto
  1578. }
  1579.  
  1580. #home-step-1 figure {
  1581. float: right;
  1582. max-width: 50%;
  1583. margin-inline-end:10px;margin-top: 0
  1584. }
  1585.  
  1586. #home-step-2 figure {
  1587. float: left;
  1588. max-width: 50%;
  1589. margin-inline-start:7px;margin-top: 0
  1590. }
  1591.  
  1592. #home-step-2 li {
  1593. overflow: hidden;
  1594. white-space: nowrap;
  1595. text-overflow: ellipsis
  1596. }
  1597.  
  1598. @media screen and (max-width: 680px) {
  1599. #home-step-1 figure,#home-step-2 figure,#home-step-3 figure {
  1600. float:unset;
  1601. max-width: unset;
  1602. width: fit-content;
  1603. margin: 0 auto
  1604. }
  1605.  
  1606. [id^=home-step-] figure img {
  1607. width: 100%;
  1608. height: auto
  1609. }
  1610. }
  1611.  
  1612. .super-title {
  1613. text-align: center
  1614. }
  1615.  
  1616. .browser-list {
  1617. display: none
  1618. }
  1619.  
  1620. #desktop-browser-list {
  1621. display: block
  1622. }
  1623.  
  1624. .browser-list-selector:not(.browser-list-selector-active) {
  1625. text-decoration: underline;
  1626. cursor: pointer
  1627. }
  1628.  
  1629. .browser-list-selector-active {
  1630. font-weight: 700
  1631. }
  1632.  
  1633. .browser-list-selector:not(:last-child) {
  1634. margin-right: 1em
  1635. }
  1636.  
  1637. .highlight {
  1638. background-color: #ff0
  1639. }
  1640.  
  1641. .installation-instructions-modal-content-firefox,.installation-instructions-modal-content-chrome,.installation-instructions-modal-content-opera,.installation-instructions-modal-content-safari,.installation-instructions-modal-content-other {
  1642. display: none
  1643. }
  1644.  
  1645. .installation-instructions-modal-firefox .installation-instructions-modal-content-firefox,.installation-instructions-modal-chrome .installation-instructions-modal-content-chrome,.installation-instructions-modal-opera .installation-instructions-modal-content-opera,.installation-instructions-modal-safari .installation-instructions-modal-content-safari,.installation-instructions-modal-other .installation-instructions-modal-content-other {
  1646. display: block
  1647. }
  1648.  
  1649. .installation-instructions-modal-content-bypass,.list-option-groups {
  1650. font-size: smaller
  1651. }
  1652.  
  1653. .list-option-group {
  1654. margin-bottom: 1em
  1655. }
  1656.  
  1657. .list-option-group ul {
  1658. margin: .5em 0 0;
  1659. list-style-type: none;
  1660. padding: 1em 0;
  1661. box-shadow: 0 0 5px #17181b;
  1662. border: 1px solid #1b1c1f;
  1663. border-radius: 5px;
  1664. background-color: #2b2f38;
  1665. }
  1666.  
  1667. .list-option-group a {
  1668. padding: .35em 1em;
  1669. display: block
  1670. }
  1671.  
  1672. .list-option-group a:hover,.list-option-group a:focus {
  1673. background: linear-gradient(#3a455c,#343f53);
  1674. text-decoration: none;
  1675. box-shadow: inset 0 -1px #212530, inset 0 1px #1e2127;
  1676. }
  1677.  
  1678. .list-option-group .list-current {
  1679. border-left: 7px solid #d63535;
  1680. box-shadow: inset 0 1px #0000001a,inset 0 -1px #0000001a;
  1681. margin: 0 0 0 -4px;
  1682. padding: .4em 1em .4em calc(1em - 3px);
  1683. background: linear-gradient(#495a71,#3d485a);
  1684. }
  1685.  
  1686. @media screen and (min-width: 440px) and (max-width: 960px) {
  1687. .list-option-group a,.list-option-group .list-current {
  1688. padding-left:1.2vw;
  1689. padding-right: 1.2vw
  1690. }
  1691. }
  1692.  
  1693. .list-option-button {
  1694. display: block;
  1695. background-color: #3c3e45;
  1696. text-align: center;
  1697. text-decoration: none;
  1698. color: #d7d7d7!important;
  1699. border: 1px solid #BBBBBB;
  1700. padding: .5em;
  1701. font-weight: 700
  1702. }
  1703.  
  1704. .list-option-button:hover,.list-option-button:focus {
  1705. background: linear-gradient(#46464f,#3b424a);
  1706. text-decoration: none
  1707. }
  1708.  
  1709. .list-option:not(.list-current) select {
  1710. width: calc(100% - 1.4em + 3px);
  1711. margin: .4em 1em .4em calc(1em - 3px)
  1712. }
  1713.  
  1714. .list-option.list-current select,.log-table {
  1715. width: 100%
  1716. }
  1717.  
  1718. .log-table th {
  1719. text-align: left
  1720. }
  1721.  
  1722. .log-table td,.log-table th {
  1723. padding: 0 5px
  1724. }
  1725.  
  1726. .log-table td .possibly-long-text {
  1727. max-width: 500px;
  1728. overflow-wrap: break-word
  1729. }
  1730.  
  1731. .modal__overlay {
  1732. position: fixed;
  1733. top: 0;
  1734. left: 0;
  1735. right: 0;
  1736. bottom: 0;
  1737. background: rgba(0,0,0,.6);
  1738. display: flex;
  1739. justify-content: center;
  1740. align-items: center;
  1741. z-index: 100
  1742. }
  1743.  
  1744. .modal__container {
  1745. background-color: #293142;
  1746. padding: 30px;
  1747. max-width: 500px;
  1748. max-height: 100vh;
  1749. border-radius: 4px;
  1750. overflow-y: auto;
  1751. box-sizing: border-box
  1752. }
  1753.  
  1754. .modal__header {
  1755. display: flex;
  1756. justify-content: space-between;
  1757. align-items: center
  1758. }
  1759.  
  1760. .modal__title {
  1761. margin-top: 0!important;
  1762. margin-bottom: 0;
  1763. font-weight: 600;
  1764. font-size: 1rem;
  1765. line-height: 1.25;
  1766. box-sizing: border-box
  1767. }
  1768.  
  1769. .modal__close {
  1770. background: transparent;
  1771. border: 0
  1772. }
  1773.  
  1774. .modal__header .modal__close:before {
  1775. content: "✕"
  1776. }
  1777.  
  1778. .modal__content {
  1779. margin-bottom: 2rem
  1780. }
  1781.  
  1782. .modal__content q {
  1783. font-style: italic
  1784. }
  1785.  
  1786. .modal__btn {
  1787. font-size: .875rem;
  1788. padding: .5rem 1rem;
  1789. background-color: #e6e6e6;
  1790. color: #000c;
  1791. border-radius: .25rem;
  1792. border-style: none;
  1793. border-width: 0;
  1794. cursor: pointer;
  1795. -webkit-appearance: button;
  1796. text-transform: none;
  1797. overflow: visible;
  1798. line-height: 1.15;
  1799. margin: 0 0 0 .5rem;
  1800. will-change: transform;
  1801. -moz-osx-font-smoothing: grayscale;
  1802. -webkit-backface-visibility: hidden;
  1803. backface-visibility: hidden;
  1804. -webkit-transform: translateZ(0);
  1805. transform: translateZ(0);
  1806. transition: -webkit-transform .25s ease-out;
  1807. transition: transform .25s ease-out;
  1808. transition: transform .25s ease-out,-webkit-transform .25s ease-out
  1809. }
  1810.  
  1811. .modal__btn:focus,.modal__btn:hover {
  1812. -webkit-transform: scale(1.05);
  1813. transform: scale(1.05)
  1814. }
  1815.  
  1816. .modal__btn-primary {
  1817. background-color: #147914;
  1818. color: #f4f4f4;
  1819. }
  1820.  
  1821. .modal__footer {
  1822. text-align: right
  1823. }
  1824.  
  1825. @keyframes mmfadeIn {
  1826. 0% {
  1827. opacity: 0
  1828. }
  1829.  
  1830. to {
  1831. opacity: 1
  1832. }
  1833. }
  1834.  
  1835. @keyframes mmfadeOut {
  1836. 0% {
  1837. opacity: 1
  1838. }
  1839.  
  1840. to {
  1841. opacity: 0
  1842. }
  1843. }
  1844.  
  1845. @keyframes mmslideIn {
  1846. 0% {
  1847. transform: translateY(15%)
  1848. }
  1849.  
  1850. to {
  1851. transform: translateY(0)
  1852. }
  1853. }
  1854.  
  1855. @keyframes mmslideOut {
  1856. 0% {
  1857. transform: translateY(0)
  1858. }
  1859.  
  1860. to {
  1861. transform: translateY(-10%)
  1862. }
  1863. }
  1864.  
  1865. .micromodal-slide {
  1866. display: none
  1867. }
  1868.  
  1869. .micromodal-slide.is-open {
  1870. display: block
  1871. }
  1872.  
  1873. .micromodal-slide[aria-hidden=false] .modal__overlay {
  1874. animation: mmfadeIn .3s cubic-bezier(0,0,.2,1)
  1875. }
  1876.  
  1877. .micromodal-slide[aria-hidden=false] .modal__container {
  1878. animation: mmslideIn .3s cubic-bezier(0,0,.2,1)
  1879. }
  1880.  
  1881. .micromodal-slide[aria-hidden=true] .modal__overlay {
  1882. animation: mmfadeOut .3s cubic-bezier(0,0,.2,1)
  1883. }
  1884.  
  1885. .micromodal-slide[aria-hidden=true] .modal__container {
  1886. animation: mmslideOut .3s cubic-bezier(0,0,.2,1)
  1887. }
  1888.  
  1889. .micromodal-slide .modal__container,.micromodal-slide .modal__overlay {
  1890. will-change: transform
  1891. }
  1892.  
  1893. .notification-widget {
  1894. display: inline-block;
  1895. width: 1em;
  1896. height: 1em;
  1897. text-align: center;
  1898. line-height: 1em;
  1899. padding: 2px;
  1900. background-color: #31708f; /* to be reviewed */
  1901. border-radius: 50%;
  1902. color: #fff; /* to be reviewed */
  1903. text-decoration: none
  1904. }
  1905.  
  1906. .notification-type-consecutive_bad_ratings a {
  1907. white-space: normal
  1908. }
  1909.  
  1910. .post-install {
  1911. margin: 1em 0;
  1912. border-radius: 2px;
  1913. padding: 5px;
  1914. max-width: 600px;
  1915. display: none;
  1916. align-items: center;
  1917. background-color: #264955;
  1918. border: 1px solid #264955;
  1919. position: relative
  1920. }
  1921.  
  1922. .post-install-label {
  1923. font-size: xx-small;
  1924. position: absolute;
  1925. top: -2px;
  1926. left: 2px;
  1927. opacity: .5
  1928. }
  1929.  
  1930. .post-install-text {
  1931. text-align: center;
  1932. align-items: center;
  1933. flex: 1
  1934. }
  1935.  
  1936. .post-install-text p {
  1937. margin: 0;
  1938. padding: 0
  1939. }
  1940.  
  1941. .post-install-button {
  1942. text-align: center;
  1943. margin-left: 10px;
  1944. white-space: nowrap
  1945. }
  1946.  
  1947. .preview-results {
  1948. border: 1px solid gray;
  1949. overflow: auto;
  1950. box-sizing: border-box;
  1951. margin: 0;
  1952. padding: 16px
  1953. }
  1954.  
  1955. .preview-results>p:first-child {
  1956. margin-top: 0
  1957. }
  1958.  
  1959. .preview-results>p:last-child {
  1960. margin-bottom: 0
  1961. }
  1962.  
  1963. .previewable textarea {
  1964. margin: 0
  1965. }
  1966.  
  1967. .previewable .tabs {
  1968. margin-top: 10px;
  1969. margin-bottom: -4px
  1970. }
  1971.  
  1972. #report_explanation {
  1973. width: 100%;
  1974. height: 10em
  1975. }
  1976.  
  1977. .reportable {
  1978. position: relative
  1979. }
  1980.  
  1981. .report-link-abs {
  1982. position: absolute;
  1983. top: 0;
  1984. right: 0;
  1985. font-size: smaller;
  1986. margin-right: 16px;
  1987. margin-top: 8px
  1988. }
  1989.  
  1990. .report-list-item:not(:last-child) {
  1991. padding-bottom: 20px;
  1992. border-bottom: 1px solid gray;
  1993. margin-bottom: 20px
  1994. }
  1995.  
  1996. .report-list-item .inline-form {
  1997. margin-right: 5px
  1998. }
  1999.  
  2000. .report-resolution-options {
  2001. display: inline-block;
  2002. vertical-align: top;
  2003. min-width: 30%
  2004. }
  2005.  
  2006. .report-resolution-options+.report-resolution-options {
  2007. margin-left: 1em
  2008. }
  2009.  
  2010. .report-resolution-options input[type=submit] {
  2011. margin-top: .5em
  2012. }
  2013.  
  2014. .report-resolution-options textarea {
  2015. width: 100%
  2016. }
  2017.  
  2018. .report-screenshot-control {
  2019. font-size: smaller;
  2020. padding: .5em 0
  2021. }
  2022.  
  2023. .unauthorized-code-comparison th {
  2024. text-align: left
  2025. }
  2026.  
  2027. .unauthorized-code-comparison th,.unauthorized-code-comparison td {
  2028. padding-right: 1em
  2029. }
  2030.  
  2031. body:lang(he),body:lang(ar),body:lang(ug),body:lang(ckb) {
  2032. direction: rtl
  2033. }
  2034.  
  2035. :not(:lang(he)):not(:lang(ar)):not(:lang(ug)):not(:lang(ckb)) {
  2036. direction: ltr
  2037. }
  2038.  
  2039. body:lang(he) #main-header,body:lang(ar) #main-header,body:lang(ug) #main-header,body:lang(ckb) #main-header {
  2040. direction: ltr
  2041. }
  2042.  
  2043. :lang(ar) #home-step-1 figure,:lang(he) #home-step-1 figure,:lang(ug) #home-step-1 figure,:lang(ckb) #home-step-1 figure {
  2044. float: left
  2045. }
  2046.  
  2047. :lang(ar) #home-step-2 figure,:lang(he) #home-step-2 figure,:lang(ug) #home-step-2 figure,:lang(ckb) #home-step-2 figure {
  2048. float: right
  2049. }
  2050.  
  2051. .checkup-list {
  2052. padding-inline-start:1em}
  2053.  
  2054. .checkup-list li {
  2055. list-style-type: "✗";
  2056. padding-inline-start:.5em}
  2057.  
  2058. .checkup-list li::marker {
  2059. color: red
  2060. }
  2061.  
  2062. .checkup-list li.good-check {
  2063. list-style-type: "✓"
  2064. }
  2065.  
  2066. .checkup-list li.good-check::marker {
  2067. color: green
  2068. }
  2069.  
  2070. .script-meta-block {
  2071. max-width: 600px;
  2072. column-count: 2
  2073. }
  2074.  
  2075. .script-meta-block>*:last-child {
  2076. margin-bottom: 1em
  2077. }
  2078.  
  2079. .inline-script-stats {
  2080. display: grid;
  2081. grid-template-columns: max-content auto;
  2082. margin: 0 22px 0 0
  2083. }
  2084.  
  2085. .inline-script-stats,.inline-script-stats dt,.inline-script-stats dd {
  2086. vertical-align: top;
  2087. padding: 0;
  2088. font-size: small
  2089. }
  2090.  
  2091. .inline-script-stats dt,.inline-script-stats dd {
  2092. box-sizing: border-box;
  2093. overflow-wrap: break-word;
  2094. margin: 1px 0
  2095. }
  2096.  
  2097. .inline-script-stats dt {
  2098. font-weight: 700;
  2099. text-align: end;
  2100. padding-inline-end:1em}
  2101.  
  2102. dd.script-list-ratings {
  2103. margin-top: 0;
  2104. margin-bottom: 0
  2105. }
  2106.  
  2107. @media screen and (max-width: 600px) {
  2108. .script-meta-block {
  2109. column-count:1
  2110. }
  2111. }
  2112.  
  2113. .script-antifeatures span[title] {
  2114. text-decoration: underline;
  2115. text-decoration-style: dotted
  2116. }
  2117.  
  2118. .script-show-compatibility {
  2119. vertical-align: bottom
  2120. }
  2121.  
  2122. .browser-compatible,.browser-incompatible,.browser-incompatible-marker {
  2123. width: 16px;
  2124. height: 16px
  2125. }
  2126.  
  2127. .browser-incompatible {
  2128. opacity: .5
  2129. }
  2130.  
  2131. .browser-incompatible-marker {
  2132. position: absolute
  2133. }
  2134.  
  2135. .script-lock-appeal-actions form {
  2136. display: inline-block;
  2137. margin-top: 1em
  2138. }
  2139.  
  2140. .change-script-set section {
  2141. border-bottom: 1px solid #DDDDDD;
  2142. padding-bottom: 1em
  2143. }
  2144.  
  2145. .change-script-set textarea {
  2146. height: 5em
  2147. }
  2148.  
  2149. .change-script-set .selection-box {
  2150. width: 45%;
  2151. display: inline-block;
  2152. vertical-align: top;
  2153. margin-bottom: 1em
  2154. }
  2155.  
  2156. @media screen and (max-width: 720px) {
  2157. .change-script-set .selection-box {
  2158. width:100%
  2159. }
  2160. }
  2161.  
  2162. .change-script-set select[multiple] {
  2163. width: 100%
  2164. }
  2165.  
  2166. .add-script-set label {
  2167. font-weight: 700;
  2168. display: block
  2169. }
  2170.  
  2171. .add-automatic-script-set-4>* {
  2172. vertical-align: top
  2173. }
  2174.  
  2175. .history_versions {
  2176. display: table;
  2177. padding: 0
  2178. }
  2179.  
  2180. .history_versions li {
  2181. display: table-row
  2182. }
  2183.  
  2184. .diff-controls,.version-number,.version-date,.version-changelog {
  2185. display: table-cell;
  2186. padding-bottom: .5em
  2187. }
  2188.  
  2189. .diff-controls,.version-number,.version-date {
  2190. white-space: nowrap;
  2191. padding-right: 1em
  2192. }
  2193.  
  2194. .version-changelog {
  2195. overflow-wrap: anywhere
  2196. }
  2197.  
  2198. .version-changelog img {
  2199. max-width: 100%
  2200. }
  2201.  
  2202. .version-changelog p:first-child {
  2203. margin-top: 0
  2204. }
  2205.  
  2206. .version-changelog p:last-child {
  2207. margin-bottom: 0
  2208. }
  2209.  
  2210. .remove-attachment {
  2211. margin-top: 20px
  2212. }
  2213.  
  2214. .remove-attachment input {
  2215. margin-left: 0
  2216. }
  2217.  
  2218. .sidebarred {
  2219. display: flex
  2220. }
  2221.  
  2222. .sidebarred-main-content {
  2223. flex: 1
  2224. }
  2225.  
  2226. .sidebar {
  2227. width: 200px;
  2228. padding-top: 1.75em;
  2229. padding-bottom: .75em;
  2230. margin-inline-start:1.5em;flex: none
  2231. }
  2232.  
  2233. .close-sidebar,.open-sidebar {
  2234. display: none;
  2235. cursor: pointer
  2236. }
  2237.  
  2238. .open-sidebar {
  2239. float: right;
  2240. background-color: #fff;
  2241. padding: 2px 1.2vw;
  2242. margin-right: -1.2vw;
  2243. border-radius: 3px 0 0 3px;
  2244. border-width: 1px 0 1px 1px;
  2245. border-style: solid;
  2246. border-color: gray
  2247. }
  2248.  
  2249. .sidebar-title {
  2250. flex: 1
  2251. }
  2252.  
  2253. @media screen and (max-width: 800px) {
  2254. .sidebarred {
  2255. display:block;
  2256. position: relative
  2257. }
  2258.  
  2259. .sidebar {
  2260. position: absolute;
  2261. right: -1.2vw;
  2262. top: 0;
  2263. background: white;
  2264. padding-top: 0;
  2265. padding-left: 1em;
  2266. padding-right: 1em;
  2267. border-width: 1px 0 1px 1px;
  2268. border-style: solid;
  2269. border-color: gray;
  2270. border-radius: 3px 0 0 3px
  2271. }
  2272.  
  2273. .sidebar.collapsed {
  2274. display: none
  2275. }
  2276.  
  2277. .close-sidebar {
  2278. display: flex;
  2279. margin-bottom: 1.5em;
  2280. background-color: #eee;
  2281. border-bottom: 1px solid black;
  2282. margin-left: -16px;
  2283. margin-right: -16px;
  2284. padding: .25em 1.2vw .25em 16px
  2285. }
  2286.  
  2287. .open-sidebar.sidebar-collapsed {
  2288. display: block
  2289. }
  2290. }
  2291.  
  2292. @media screen and (min-width: 800px) {
  2293. .sidebarred-main-content {
  2294. max-width:calc(100% - 224px)
  2295. }
  2296. }
  2297.  
  2298. .tabs {
  2299. list-style: none;
  2300. padding: 0 1em;
  2301. margin: 0 -1em;
  2302. display: flex;
  2303. position: relative;
  2304. top: -3.5px;
  2305. flex-wrap: wrap
  2306. }
  2307.  
  2308. .tabs>* {
  2309. align-items: stretch
  2310. }
  2311.  
  2312. .tabs>*>* {
  2313. padding: .25em .5em .5em;
  2314. display: block
  2315. }
  2316.  
  2317. .tabs a {
  2318. text-decoration: none;
  2319. cursor: pointer
  2320. }
  2321.  
  2322. .tabs .current,.tabs>*:not(.current) a:hover,.tabs>*:not(.current) a:focus {
  2323. background: #ffffff08;
  2324. box-shadow: inset 1px 0 #0000001a,inset -1px 0 #0000001a,inset 0 -1px #0000001a
  2325. }
  2326.  
  2327. .tabs .current {
  2328. box-shadow: inset 1px 0 #ffffff1a, inset -1px 0 #ffffff1a, inset 0 -1px #ffffff1a;
  2329. border-top: 7px solid #d63535
  2330. }
  2331.  
  2332. .tabs>*:not(.current) a {
  2333. margin-top: 3.5px;
  2334. padding-top: calc(.25em + 3.5px)
  2335. }
  2336.  
  2337. .user-content {
  2338. outline: 1px solid transparent;
  2339. background: linear-gradient(to right,transparent,transparent 1em);
  2340. border-left: 2px solid #70767d;
  2341. padding: .5em 1em;
  2342. overflow-x: auto
  2343. }
  2344.  
  2345. .user-content>p:first-child {
  2346. margin-top: 0
  2347. }
  2348.  
  2349. .user-content>p:last-child {
  2350. margin-bottom: 0
  2351. }
  2352.  
  2353. .user-content img {
  2354. max-width: 100%
  2355. }
  2356.  
  2357. .user-screenshots * {
  2358. vertical-align: middle
  2359. }
  2360.  
  2361. .user-screenshots a {
  2362. text-decoration: none
  2363. }
  2364.  
  2365. .comment-screenshot-control {
  2366. margin: 10px 0
  2367. }
  2368.  
  2369. .remove-images {
  2370. display: flex;
  2371. margin-top: 5px
  2372. }
  2373.  
  2374. .remove-image {
  2375. border: 2px solid black;
  2376. padding: 5px;
  2377. display: flex;
  2378. justify-content: space-between;
  2379. flex-direction: column
  2380. }
  2381.  
  2382. .remove-image:not(:first-child) {
  2383. margin-left: 5px
  2384. }
  2385.  
  2386. .remove-image img {
  2387. display: block
  2388. }
  2389.  
  2390. .remove-image-selecter,.comment .user-content .user-screenshots {
  2391. margin-top: 10px
  2392. }
  2393.  
  2394. #additional-info .user-screenshots {
  2395. margin-top: 1em
  2396. }
  2397.  
  2398. .user-content blockquote {
  2399. margin-left: 10px;
  2400. padding-left: 10px;
  2401. border-left: 2px solid #CCC
  2402. }
  2403.  
  2404. @keyframes lum-fade {
  2405. 0% {
  2406. opacity: 0
  2407. }
  2408.  
  2409. to {
  2410. opacity: 1
  2411. }
  2412. }
  2413.  
  2414. @keyframes lum-fadeZoom {
  2415. 0% {
  2416. transform: scale(.5);
  2417. opacity: 0
  2418. }
  2419.  
  2420. to {
  2421. transform: scale(1);
  2422. opacity: 1
  2423. }
  2424. }
  2425.  
  2426. @keyframes lum-loader-rotate {
  2427. 0% {
  2428. transform: translate(-50%,-50%) rotate(0)
  2429. }
  2430.  
  2431. 50% {
  2432. transform: translate(-50%,-50%) rotate(-180deg)
  2433. }
  2434.  
  2435. to {
  2436. transform: translate(-50%,-50%) rotate(-360deg)
  2437. }
  2438. }
  2439.  
  2440. @keyframes lum-loader-before {
  2441. 0% {
  2442. transform: scale(1)
  2443. }
  2444.  
  2445. 10% {
  2446. transform: scale(1.2) translate(6px)
  2447. }
  2448.  
  2449. 25% {
  2450. transform: scale(1.3) translate(8px)
  2451. }
  2452.  
  2453. 40% {
  2454. transform: scale(1.2) translate(6px)
  2455. }
  2456.  
  2457. 50% {
  2458. transform: scale(1)
  2459. }
  2460.  
  2461. 60% {
  2462. transform: scale(.8) translate(6px)
  2463. }
  2464.  
  2465. 75% {
  2466. transform: scale(.7) translate(8px)
  2467. }
  2468.  
  2469. 90% {
  2470. transform: scale(.8) translate(6px)
  2471. }
  2472.  
  2473. to {
  2474. transform: scale(1)
  2475. }
  2476. }
  2477.  
  2478. @keyframes lum-loader-after {
  2479. 0% {
  2480. transform: scale(1)
  2481. }
  2482.  
  2483. 10% {
  2484. transform: scale(1.2) translate(-6px)
  2485. }
  2486.  
  2487. 25% {
  2488. transform: scale(1.3) translate(-8px)
  2489. }
  2490.  
  2491. 40% {
  2492. transform: scale(1.2) translate(-6px)
  2493. }
  2494.  
  2495. 50% {
  2496. transform: scale(1)
  2497. }
  2498.  
  2499. 60% {
  2500. transform: scale(.8) translate(-6px)
  2501. }
  2502.  
  2503. 75% {
  2504. transform: scale(.7) translate(-8px)
  2505. }
  2506.  
  2507. 90% {
  2508. transform: scale(.8) translate(-6px)
  2509. }
  2510.  
  2511. to {
  2512. transform: scale(1)
  2513. }
  2514. }
  2515.  
  2516. .lum-lightbox {
  2517. background: rgba(0,0,0,.6)
  2518. }
  2519.  
  2520. .lum-lightbox-inner {
  2521. top: 2.5%;
  2522. right: 2.5%;
  2523. bottom: 2.5%;
  2524. left: 2.5%
  2525. }
  2526.  
  2527. .lum-lightbox-inner img {
  2528. position: relative
  2529. }
  2530.  
  2531. .lum-lightbox-inner .lum-lightbox-caption {
  2532. margin: 0 auto;
  2533. color: #fff;
  2534. max-width: 700px;
  2535. text-align: center
  2536. }
  2537.  
  2538. .lum-loading .lum-lightbox-loader {
  2539. display: block;
  2540. position: absolute;
  2541. top: 50%;
  2542. left: 50%;
  2543. transform: translate(-50%,-50%);
  2544. width: 66px;
  2545. height: 20px;
  2546. animation: lum-loader-rotate 1.8s infinite linear
  2547. }
  2548.  
  2549. .lum-lightbox-loader:before,.lum-lightbox-loader:after {
  2550. content: "";
  2551. display: block;
  2552. width: 20px;
  2553. height: 20px;
  2554. position: absolute;
  2555. top: 50%;
  2556. margin-top: -10px;
  2557. border-radius: 20px;
  2558. background: rgba(255,255,255,.9)
  2559. }
  2560.  
  2561. .lum-lightbox-loader:before {
  2562. left: 0;
  2563. animation: lum-loader-before 1.8s infinite linear
  2564. }
  2565.  
  2566. .lum-lightbox-loader:after {
  2567. right: 0;
  2568. animation: lum-loader-after 1.8s infinite linear;
  2569. animation-delay: -.9s
  2570. }
  2571.  
  2572. .lum-lightbox.lum-opening {
  2573. animation: lum-fade .18s ease-out
  2574. }
  2575.  
  2576. .lum-lightbox.lum-opening .lum-lightbox-inner {
  2577. animation: lum-fadeZoom .18s ease-out
  2578. }
  2579.  
  2580. .lum-lightbox.lum-closing {
  2581. animation: lum-fade .3s ease-in;
  2582. animation-direction: reverse
  2583. }
  2584.  
  2585. .lum-lightbox.lum-closing .lum-lightbox-inner {
  2586. animation: lum-fadeZoom .3s ease-in;
  2587. animation-direction: reverse
  2588. }
  2589.  
  2590. .lum-img {
  2591. transition: opacity .12s ease-out
  2592. }
  2593.  
  2594. .lum-loading .lum-img {
  2595. opacity: 0
  2596. }
  2597.  
  2598. .lum-gallery-button {
  2599. overflow: hidden;
  2600. text-indent: 150%;
  2601. white-space: nowrap;
  2602. background: transparent;
  2603. border: 0;
  2604. margin: 0;
  2605. padding: 0;
  2606. outline: 0;
  2607. position: absolute;
  2608. top: 50%;
  2609. transform: translateY(-50%);
  2610. height: 100px;
  2611. max-height: 100%;
  2612. width: 60px;
  2613. cursor: pointer
  2614. }
  2615.  
  2616. .lum-close-button {
  2617. position: absolute;
  2618. right: 5px;
  2619. top: 5px;
  2620. width: 32px;
  2621. height: 32px;
  2622. opacity: .3
  2623. }
  2624.  
  2625. .lum-close-button:hover {
  2626. opacity: 1
  2627. }
  2628.  
  2629. .lum-close-button:before,.lum-close-button:after {
  2630. position: absolute;
  2631. left: 15px;
  2632. content: " ";
  2633. height: 33px;
  2634. width: 2px;
  2635. background-color: #fff
  2636. }
  2637.  
  2638. .lum-close-button:before {
  2639. transform: rotate(45deg)
  2640. }
  2641.  
  2642. .lum-close-button:after {
  2643. transform: rotate(-45deg)
  2644. }
  2645.  
  2646. .lum-previous-button {
  2647. left: 12px
  2648. }
  2649.  
  2650. .lum-next-button {
  2651. right: 12px
  2652. }
  2653.  
  2654. .lum-gallery-button:after {
  2655. content: "";
  2656. display: block;
  2657. position: absolute;
  2658. top: 50%;
  2659. width: 36px;
  2660. height: 36px;
  2661. border-top: 4px solid rgba(255,255,255,.8)
  2662. }
  2663.  
  2664. .lum-previous-button:after {
  2665. transform: translateY(-50%) rotate(-45deg);
  2666. border-left: 4px solid rgba(255,255,255,.8);
  2667. box-shadow: -2px 0 #0003;
  2668. left: 12%;
  2669. border-radius: 3px 0 0
  2670. }
  2671.  
  2672. .lum-next-button:after {
  2673. transform: translateY(-50%) rotate(45deg);
  2674. border-right: 4px solid rgba(255,255,255,.8);
  2675. box-shadow: 2px 0 #0003;
  2676. right: 12%;
  2677. border-radius: 0 3px 0 0
  2678. }
  2679.  
  2680. @media (max-width: 460px) {
  2681. .lum-lightbox-image-wrapper {
  2682. display:flex;
  2683. overflow: auto;
  2684. -webkit-overflow-scrolling: touch
  2685. }
  2686.  
  2687. .lum-lightbox-caption {
  2688. width: 100%;
  2689. position: absolute;
  2690. bottom: 0
  2691. }
  2692.  
  2693. .lum-lightbox-position-helper {
  2694. margin: auto
  2695. }
  2696.  
  2697. .lum-lightbox-inner img {
  2698. max-width: none;
  2699. max-height: none
  2700. }
  2701. }
  2702.  
  2703.  
  2704.  
  2705.  
  2706. input:-webkit-autofill,
  2707. input:-webkit-autofill:hover,
  2708. input:-webkit-autofill:focus,
  2709. textarea:-webkit-autofill,
  2710. textarea:-webkit-autofill:hover,
  2711. textarea:-webkit-autofill:focus,
  2712. select:-webkit-autofill,
  2713. select:-webkit-autofill:hover,
  2714. select:-webkit-autofill:focus {
  2715. transition: background-color 9000000000s ease-in-out 0s, color 9000000000s ease-in-out 0s;
  2716. }
  2717.  
  2718.  
  2719.  
  2720. [style~="color:#21c"] {
  2721. color: #35deff !important;
  2722. }
  2723. [style~="color:#601d9f"] {
  2724. color: #a47cca !important;
  2725. }
  2726.  
  2727. [style~="color:blue"] {
  2728. color: #39adff !important;
  2729. }
  2730.  
  2731. [style~="color:#4183c4"], [style~="color: #4183c4"], [style*="color:#4183c4;"], [style*="color: #4183c4;"]{
  2732. color: #9fceea !important;
  2733. }
  2734.  
  2735.  
  2736. .user-content[class] div[style*="color:"] {
  2737. filter:invert(1);
  2738. }
  2739. .user-content[class] div[style*="color:"] a {
  2740. filter:invert(1);
  2741. }
  2742.  
  2743. `,
  2744.  
  2745. // https://gf.qytechs.cn/en/users/webhook-info
  2746. `
  2747.  
  2748. `,
  2749. // https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/prettify.css
  2750.  
  2751. `
  2752.  
  2753. [dark] .pln {
  2754. color: #d2cdcd
  2755. }
  2756.  
  2757. @media screen {
  2758. [dark] .str {
  2759. color: #66ac66
  2760. }
  2761.  
  2762. [dark] .kwd {
  2763. color: #6f6f9f
  2764. }
  2765.  
  2766. [dark] .com {
  2767. color: #ca9b9b
  2768. }
  2769.  
  2770. [dark] .typ {
  2771. color: #8a608a
  2772. }
  2773.  
  2774. [dark] .lit {
  2775. color: #507a7a
  2776. }
  2777.  
  2778. [dark] .clo,[dark] .opn,[dark] .pun {
  2779. color: #7e7e50
  2780. }
  2781.  
  2782. [dark] .tag {
  2783. color: #58588c
  2784. }
  2785.  
  2786. [dark] .atn {
  2787. color: #7f4c7f
  2788. }
  2789.  
  2790. [dark] .atv {
  2791. color: #528152
  2792. }
  2793.  
  2794. [dark] .dec,[dark] .var {
  2795. color: #724872
  2796. }
  2797.  
  2798. [dark] .fun {
  2799. color: #a64f4f
  2800. }
  2801. }
  2802.  
  2803. @media print,projection {
  2804. [dark] .kwd,[dark] .tag,[dark] .typ {
  2805. font-weight: 700
  2806. }
  2807.  
  2808. [dark] .str {
  2809. color: #496e49
  2810. }
  2811.  
  2812. [dark] .kwd {
  2813. color: #47476d
  2814. }
  2815.  
  2816. [dark] .com {
  2817. color: #774d4d;
  2818. font-style: italic
  2819. }
  2820.  
  2821. [dark] .typ {
  2822. color: #583a58
  2823. }
  2824.  
  2825. [dark] .lit {
  2826. color: #466d6d
  2827. }
  2828.  
  2829. [dark] .clo,[dark] .opn,[dark] .pun {
  2830. color: #636341
  2831. }
  2832.  
  2833. [dark] .tag {
  2834. color: #53537d
  2835. }
  2836.  
  2837. [dark] .atn {
  2838. color: #6f466f
  2839. }
  2840.  
  2841. [dark] .atv {
  2842. color: #497749
  2843. }
  2844. }
  2845.  
  2846. [dark] pre.prettyprint {
  2847. padding: 2px;
  2848. border: 1px solid #888
  2849. }
  2850.  
  2851. [dark] ol.linenums {
  2852. margin-top: 0;
  2853. margin-bottom: 0
  2854. }
  2855.  
  2856.  
  2857. [dark] li.L0,
  2858. [dark] li.L2,
  2859. [dark] li.L4,
  2860. [dark] li.L6,
  2861. [dark] li.L8 {
  2862. background: rgb(38, 35, 35);
  2863. }
  2864.  
  2865.  
  2866. [dark] li.L1,
  2867. [dark] li.L3,
  2868. [dark] li.L5,
  2869. [dark] li.L7,
  2870. [dark] li.L9 {
  2871. background: #161111;
  2872. }
  2873.  
  2874.  
  2875.  
  2876.  
  2877. `,
  2878.  
  2879. // https://gf.qytechs.cn/en/scripts/482487-greasyfork-dark/stats
  2880. // https://github.com/greasyfork-org/greasyfork/blob/main/app/views/scripts/stats.html.erb#L28
  2881. `
  2882.  
  2883. [dark] #install-stats-chart-container,
  2884. [dark] #weekly-install-stats-chart-container,
  2885. [dark] #update-check-stats-chart-container {
  2886. filter: invert(1) brightness(2);
  2887. background-color: #e9e3d9;
  2888. }
  2889.  
  2890. `
  2891. ].join('\n\n');
  2892.  
  2893. const key01 = "7QdWEuQ5k7dH"
  2894. const key02 = "SQwUKxgG5hhi"
  2895.  
  2896. const removeNonColor = (text) => {
  2897.  
  2898. const oriText = text;
  2899. const cache01 = sessionStorage.getItem(key01);
  2900. const cache02 = sessionStorage.getItem(key02);
  2901. if (cache01 === `${text}` && cache02 && typeof cache02 === 'string') return cache02;
  2902.  
  2903. let csso = stylis.compile(text);
  2904. const ruleSet = new Set();
  2905. const pp = new Set([
  2906. // "overflow-y",
  2907. // "margin",
  2908. "background-color",
  2909. "color",
  2910. // "font-family",
  2911. "outline",
  2912. "border",
  2913. // "direction",
  2914. // "resize",
  2915. // "vertical-align",
  2916. "background-image",
  2917. "box-shadow",
  2918. // "padding",
  2919. // "max-width",
  2920. // "position",
  2921. // "display",
  2922. // "line-height",
  2923. // "font-size",
  2924. // "letter-spacing",
  2925. // "text-decoration",
  2926. "text-shadow",
  2927. // "text-align",
  2928. // "right",
  2929. // "bottom",
  2930. // "top",
  2931. // "list-style-type",
  2932. // "margin-left",
  2933. // "min-width",
  2934. // "z-index",
  2935. // "white-space",
  2936. // "padding-right",
  2937. // "content",
  2938. "border-radius",
  2939. // "clear",
  2940. // "margin-top",
  2941. // "overflow-wrap",
  2942. // "font-style",
  2943. // "margin-bottom",
  2944. "transition",
  2945. // "padding-left",
  2946. // "list-style",
  2947. "border-bottom",
  2948. // "width",
  2949. // "box-sizing",
  2950. // "height",
  2951. "border-style",
  2952. // "font-weight",
  2953. // "float",
  2954. // "unicode-bidi",
  2955. // "word-wrap",
  2956. "border-color",
  2957. // "-moz-column-width",
  2958. // "-webkit-column-width",
  2959. // "column-width",
  2960. "border-left",
  2961. "border-collapse",
  2962. // "opacity",
  2963. "background-repeat",
  2964. "background-size",
  2965. "background-position",
  2966. // "margin-right",
  2967. // "min-height",
  2968. // "padding-inline-end",
  2969. // "-moz-appearance",
  2970. // "-webkit-appearance",
  2971. // "inset-inline-end",
  2972. // "padding-inline-start",
  2973. "background",
  2974. // "padding-bottom",
  2975. // "cursor",
  2976. "border-top",
  2977. // "appearance",
  2978. "text-transform",
  2979. // "overflow",
  2980. // "max-height",
  2981. // "overflow-x",
  2982. // "align-items",
  2983. // "flex",
  2984. // "padding-top",
  2985. "text-overflow",
  2986. // "margin-inline-end",
  2987. // "margin-inline-start",
  2988. // "left",
  2989. // "justify-content",
  2990. "border-width",
  2991. // "will-change",
  2992. // "-moz-osx-font-smoothing",
  2993. // "-webkit-backface-visibility",
  2994. // "backface-visibility",
  2995. "-webkit-transform",
  2996. "transform",
  2997. "animation",
  2998. // "column-count",
  2999. // "grid-template-columns",
  3000. "text-decoration-style",
  3001. // "flex-wrap",
  3002. // "flex-direction",
  3003. "animation-delay",
  3004. "animation-direction",
  3005. // "text-indent",
  3006. "border-right",
  3007. "filter"
  3008. ]);
  3009.  
  3010. function baseCSSO(csso) {
  3011.  
  3012. let newCsso = new Set();
  3013.  
  3014. for (const entry of csso) {
  3015. newCsso.add(entry);
  3016. if (entry.type === 'rule' && typeof entry.children === 'object' && (entry.children || 0).length >= 1) {
  3017.  
  3018. for (const childEntry of entry.children) {
  3019. ruleSet.add(childEntry)
  3020. if (childEntry.type === 'decl' && typeof childEntry.children === 'string' && typeof childEntry.props === 'string') {
  3021. // pp.add(childEntry.props)
  3022.  
  3023. if (childEntry.props === 'background-image' && childEntry.parent.value.startsWith('.external-login-container .')) {
  3024. ruleSet.delete(childEntry)
  3025. } else if (!pp.has(childEntry.props)) ruleSet.delete(childEntry)
  3026.  
  3027. }
  3028.  
  3029. }
  3030. entry.children = [...ruleSet]
  3031. ruleSet.clear();
  3032. } else if (entry.type === '@media') {
  3033.  
  3034. if (typeof entry.children === 'object' && (entry.children || 0).length >= 1) {
  3035. entry.children = baseCSSO(entry.children)
  3036. }
  3037.  
  3038. } else if (entry.type === '@keyframes') {
  3039. newCsso.delete(entry);
  3040. } else {
  3041.  
  3042. console.log(331, entry)
  3043. }
  3044. }
  3045.  
  3046. return [...newCsso];
  3047.  
  3048.  
  3049. }
  3050.  
  3051. csso = baseCSSO(csso);
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057. text = stylis.serialize(csso, stylis.stringify)
  3058.  
  3059. // console.log(stylis.compile(text))
  3060. // console.log(text)
  3061.  
  3062. // console.log([...pp])
  3063.  
  3064.  
  3065. sessionStorage.setItem(key01, `${oriText}`);
  3066. sessionStorage.setItem(key02, `${text}`);
  3067.  
  3068. return text
  3069.  
  3070.  
  3071.  
  3072. }
  3073.  
  3074. const mo = new MutationObserver(() => {
  3075. const head = document.head;
  3076. if (!head) return;
  3077. const css = head.querySelector('link[rel="stylesheet"][href*="/vite/assets/application-"][href*=".css"][media="screen"]');
  3078. if (!css || css.parentNode !== head) return;
  3079. mo.disconnect();
  3080. mo.takeRecords();
  3081.  
  3082. const text = `${removeNonColor(cssTextFn())}${generalCSSFn()}`;
  3083. const blob = new Blob([text], { type: 'text/css; charset=UTF-8' });
  3084. const blobURL = URL.createObjectURL(blob);
  3085. const newLinkElm = document.createElement('link');
  3086. newLinkElm.rel = 'stylesheet'
  3087. newLinkElm.media = 'screen'
  3088. newLinkElm.href = blobURL;
  3089. newLinkElm.disabled = true;
  3090. head.insertBefore(newLinkElm, css.nextSibling);
  3091.  
  3092. const aoChange = () => {
  3093. if (document.documentElement.hasAttribute('dark')) {
  3094. newLinkElm.disabled = false;
  3095. } else {
  3096. newLinkElm.disabled = true;
  3097. }
  3098. }
  3099.  
  3100. if (localStorage.darkMode === 'true') {
  3101. document.documentElement.setAttribute('dark', '');
  3102. }
  3103. aoChange();
  3104. let ao = new MutationObserver(aoChange);
  3105. ao.observe(document.documentElement, { attributes: true, attributeFilter: ['dark'] });
  3106.  
  3107.  
  3108. });
  3109. mo.observe(document, { subtree: true, childList: true })
  3110.  
  3111.  
  3112. })();

QingJ © 2025

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