dark.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670
  1. @charset "UTF-8";
  2. :root {
  3. --frss-background-color: #1c1c1c;
  4. --frss-background-color-transparent: #111a;
  5. --frss-font-color-light: #aaa;
  6. --frss-scrollbar-handle: rgba(0, 0, 0, 0.1);
  7. --frss-scrollbar-track: rgba(0, 0, 0, 0.05);
  8. --frss-scrollbar-handle-hover: rgba(0, 0, 0, 0.3);
  9. --frss-scrollbar-track-hover: rgba(0, 0, 0, 0.05);
  10. /** Origine **/
  11. --background-color-light: #1c1c1c;
  12. --background-color-light-shadowed: inherit;
  13. --background-color-light-shadowed-transparent: #262626aa;
  14. --background-color-grey: #1c1c1c;
  15. --background-color-hover: #26303f;
  16. --background-color-flux-hover: #111;
  17. --unread-article-background-color: inherit;
  18. --unread-article-background-color-hover: #111;
  19. --favorite-article-background-color: inherit;
  20. --favorite-article-background-color-hover: #111;
  21. --font-color-link-hover: #888;
  22. --font-color: #888;
  23. --font-color-link: #6986b2;
  24. --font-color-grey: #999;
  25. --empty-feed-color: #c95;
  26. --error-feed-color: #a44;
  27. --font-color-light: #fff;
  28. --alert-warn-font-color: #c95;
  29. --alert-warn-border-color: #c95;
  30. --alert-warn-background-color: inherit;
  31. --alert-success-font-color: #484;
  32. --alert-success-border-color: #484;
  33. --alert-success-background-color: inherit;
  34. --alert-error-font-color: #a44;
  35. --alert-error-boder-color: #a44;
  36. --alert-error-background-color: inherit;
  37. --box-shadow-color: #000a;
  38. --border-color: #000;
  39. --attention-background-color-active: #801;
  40. --dark-attention-background-color: #801;
  41. --dark-attention-gradient-color: #c04;
  42. --form-element-font-color-focus: #6986b2;
  43. --form-element-border-color-focus: #2f2f2f;
  44. --form-element-border-color-invalid: #f00;
  45. --form-element-invalid-box-shadow-color-inset: #f00;
  46. --notification-good-border-color: #484;
  47. --notification-good-font-color: #484;
  48. --notification-bad-border-color: #a44;
  49. --notification-bad-font-color: #a44;
  50. --contrast-border-color-active: #0062be;
  51. --unread-article-border-color: #ff5300;
  52. --favorite-article-border-color: #ffc300;
  53. /** Dark **/
  54. --dark-border-color: #2f2f2f;
  55. --dark-border-color0: #000;
  56. --dark-border-color2: #222;
  57. --dark-border-color3: #333;
  58. --dark-border-color4: #444;
  59. --dark-border-color6: #666;
  60. --dark-border-color8: #888;
  61. --dark-background-color-blue: #26303f;
  62. --dark-background-color1: #111;
  63. --dark-background-color16: #161616;
  64. --dark-background-color2: #222;
  65. --dark-background-color3: #333;
  66. --dark-favicon-background-color: #fff;
  67. --dark-background-color-button-hover-gradient1: #4a5d7a;
  68. --dark-background-color-button-hover-gradient2: #26303f;
  69. --dark-font-color4: #444;
  70. --dark-font-color6: #666;
  71. --dark-font-color8: #888;
  72. --dark-font-color9: #999;
  73. --dark-font-colorA: #aaa;
  74. --dark-notification-border-color: #c95;
  75. --dark-notification-good-border-color: #484;
  76. --dark-notification-bad-border-color: #a44;
  77. --dark-notification-font-color: #c95;
  78. --dark-notification-good-close-background-color-hover: #484;
  79. --dark-notification-bad-close-background-color-hover: #a44;
  80. --dark-form-element-box-shadow-inset: #1d1d1d;
  81. }
  82. /*=== Images */
  83. img.favicon {
  84. background: var(--dark-favicon-background-color);
  85. border-radius: 2px;
  86. }
  87. body img,
  88. body video,
  89. p.help .icon,
  90. .icon {
  91. filter: brightness(.6) contrast(1.2);
  92. }
  93. .spinner {
  94. filter: invert(1) brightness(.6) contrast(1.2);
  95. }
  96. .bookmark:hover > .spinner {
  97. filter: invert(1) brightness(1.1);
  98. }
  99. a:hover .icon.spinner {
  100. filter: invert(1) brightness(1.5);
  101. }
  102. /*=== Forms */
  103. legend {
  104. border-bottom: 1px solid var(--dark-border-color);
  105. }
  106. input, select, textarea {
  107. background: var(--dark-background-color3);
  108. color: var(--dark-font-color9);
  109. border-color: var(--border-color);
  110. box-shadow: 0 2px 2px var(--dark-form-element-box-shadow-inset) inset;
  111. }
  112. input:disabled, select:disabled {
  113. background-color: var(--dark-background-color2);
  114. color: var(--dark-font-colorA);
  115. border-style: solid;
  116. border-color: var(--dark-border-color0);
  117. }
  118. input:focus,
  119. select:focus,
  120. textarea:focus,
  121. input[type="password"]:focus + .toggle-password {
  122. border: 1px solid var(--form-element-border-color-focus);
  123. box-shadow: 0 2px 2px var(--dark-form-element-box-shadow-inset) inset;
  124. }
  125. /*=== Tables */
  126. th, td {
  127. border: 1px solid var(--dark-border-color3);
  128. }
  129. th {
  130. background-color: var(--dark-background-color2);
  131. }
  132. /*=== COMPONENTS */
  133. /*===============*/
  134. /*=== Forms */
  135. .form-group.form-actions {
  136. background: var(--dark-background-color2);
  137. border-top: 1px solid var(--dark-border-color);
  138. }
  139. /*=== Buttons */
  140. button.as-link[disabled] {
  141. color: var(--dark-font-color4) !important;
  142. }
  143. .stick .btn-important:first-child {
  144. border-right: 1px solid var(--dark-border-color0);
  145. }
  146. .stick input:focus+input {
  147. border-left: 1px solid var(--dark-border-color0);
  148. }
  149. .stick input+input:focus {
  150. border-left: 1px solid var(--dark-border-color3);
  151. }
  152. .btn {
  153. background-image: none;
  154. background-color: var(--dark-background-color1);
  155. color: var(--dark-font-color8);
  156. border: 1px solid var(--dark-border-color0);
  157. }
  158. .group > .btn:only-child,
  159. .group > .dropdown:only-child > .btn {
  160. border-radius: 3px;
  161. }
  162. .group > .dropdown:only-child > .btn {
  163. border-left: 1px solid var(--dark-border-color0);
  164. }
  165. .btn:hover {
  166. background: linear-gradient(to top, var(--dark-background-color-button-hover-gradient1) 0%, var(--dark-background-color-button-hover-gradient2) 100%);
  167. }
  168. .btn:hover .icon {
  169. filter: brightness(1);
  170. }
  171. .btn.active,
  172. .btn:active,
  173. .dropdown-target:target ~ .btn.dropdown-toggle {
  174. background-color: var(--dark-background-color3);
  175. box-shadow: none;
  176. }
  177. .btn.active .icon,
  178. .dropdown-target:target ~ .btn.dropdown-toggle .icon {
  179. filter: brightness(1);
  180. }
  181. .btn:active {
  182. background-color: var(--dark-background-color-blue);
  183. }
  184. .btn-important {
  185. background: var(--dark-background-color-blue);
  186. }
  187. .btn-important:hover {
  188. background: linear-gradient(to top, var(--dark-background-color-button-hover-gradient1) 0%, var(--dark-background-color-button-hover-gradient2) 100%);
  189. color: inherit;
  190. }
  191. .btn-important:active {
  192. background-color: var(--dark-background-color-blue);
  193. }
  194. .btn-important .icon {
  195. filter: brightness(1);
  196. }
  197. .btn-attention {
  198. background-image: none;
  199. background-color: var(--dark-attention-background-color)
  200. }
  201. .btn-attention:hover {
  202. background: linear-gradient(to top, var(--dark-attention-gradient-color) 0%, var(--dark-attention-background-color) 100%);
  203. }
  204. /*=== switches */
  205. .switch {
  206. background-color: var(--dark-background-color3);
  207. }
  208. .switch.active {
  209. background-color: var(--dark-background-color-blue);
  210. }
  211. .switch::before {
  212. background-color: var(--dark-background-color2);
  213. }
  214. .switch:not([disabled]):hover::before {
  215. background-color: var(--dark-background-color1);
  216. }
  217. /*=== Navigation */
  218. .nav-list .item.active {
  219. background-color: var(--dark-background-color3);
  220. }
  221. .nav-list .nav-section .item.active:hover a,
  222. .nav-list .nav-section .item.active:hover .as-link,
  223. .nav-list .item.active {
  224. color: var(--font-color-link-hover);
  225. background-color: var(--background-color-hover);
  226. }
  227. .nav-list .item.active a,
  228. .nav-list .item.active .as-link {
  229. color: var(--font-color-link-hover);
  230. }
  231. .nav-list .nav-header {
  232. background-color: var(--dark-background-color1);
  233. }
  234. /*=== Dropdown */
  235. .dropdown-menu {
  236. background-color: var(--background-color-light);
  237. border: 1px solid var(--dark-border-color8);
  238. box-shadow: 3px 3px 3px var(--box-shadow-color);
  239. }
  240. .dropdown-menu::after {
  241. border-color: var(--dark-border-color8);
  242. }
  243. .dropdown-header,
  244. .dropdown-section .dropdown-section-title {
  245. color: var(--dark-font-color8);
  246. }
  247. .dropdown-menu .item > a:focus,
  248. .dropdown-menu .item > a:hover,
  249. .dropdown-menu .item > button:focus:not([disabled]),
  250. .dropdown-menu .item > button:hover:not([disabled]),
  251. .dropdown-menu .item > label:focus:not(.noHover),
  252. .dropdown-menu .item > label:hover:not(.noHover) {
  253. background-color: var(--dark-background-color-blue);
  254. color: var(--dark-font-color8);
  255. }
  256. .item ~ .dropdown-header,
  257. .dropdown-section ~ .dropdown-section,
  258. .item.separator {
  259. border-top-color: var(--dark-border-color3);
  260. }
  261. /*=== Alerts */
  262. .alert {
  263. background-color: var(--dark-background-color1);
  264. color: var(--dark-font-colorA);
  265. border: 1px solid var(--dark-border-color8);
  266. }
  267. /*=== Pagination */
  268. .pagination {
  269. color: var(--dark-font-color8);
  270. }
  271. .pagination .item a {
  272. color: var(--dark-font-color6);
  273. }
  274. .pagination:first-child .item {
  275. border-top: 1px solid var(--dark-border-color3);
  276. border-bottom: 1px solid var(--dark-border-color3);
  277. }
  278. /*=== Boxes */
  279. .box {
  280. border: 1px solid var(--dark-border-color0);
  281. }
  282. .box .icon {
  283. filter: brightness(100%);
  284. }
  285. .box .box-title {
  286. background-color: var(--dark-background-color1);
  287. border-bottom: 1px solid var(--dark-border-color0);
  288. }
  289. /*=== Tree */
  290. .tree-folder-title .title {
  291. color: var(--dark-font-color8);
  292. }
  293. .tree-folder.active .tree-folder-title {
  294. background: var(--dark-background-color1);
  295. }
  296. .tree-folder-items {
  297. background: var(--dark-background-color16);
  298. border-top: 1px solid var(--dark-border-color2);
  299. border-bottom: 1px solid var(--dark-border-color2);
  300. }
  301. .tree-folder-items > .item.active {
  302. background: var(--dark-background-color-blue);
  303. }
  304. .tree-folder-items > .item.active .icon {
  305. filter: brightness(1.5);
  306. }
  307. .tree-folder-items > .item.active > a {
  308. color: var(--dark-font-color8);
  309. }
  310. .tree-folder-items .item:hover {
  311. background-color: var(--dark-background-color-blue);
  312. }
  313. .tree-folder .tree-folder-title:hover .dropdown-toggle .icon,
  314. .tree-folder.active .tree-folder-title .dropdown-toggle .icon,
  315. .tree-folder .tree-folder-title:hover > .icon,
  316. .tree-folder.active .tree-folder-title > .icon,
  317. .tree-folder-items .item:hover .icon {
  318. filter: brightness(1.5);
  319. }
  320. /*=== STRUCTURE */
  321. /*===============*/
  322. /*=== Header */
  323. .header > .item {
  324. border-bottom: 1px solid var(--dark-border-color3);
  325. }
  326. .header > .item.title .logo {
  327. filter: grayscale(60%) brightness(1.1);
  328. }
  329. .header > .item.title a:hover .logo {
  330. filter: grayscale(60%) brightness(1.5);
  331. }
  332. .aside {
  333. border-right: 1px solid var(--dark-border-color3);
  334. }
  335. /*=== Aside main page (categories) */
  336. .aside.aside_feed .category .title:not([data-unread="0"])::after {
  337. background-color: var(--dark-background-color16);
  338. }
  339. .aside.aside_feed .category.active .title:not([data-unread="0"])::after {
  340. background-color: var(--dark-background-color3);
  341. }
  342. .aside.aside_feed .feed .item-title:not([data-unread="0"])::after {
  343. background-color: var(--dark-background-color2);
  344. color: var(--dark-font-color8);
  345. }
  346. .aside.aside_feed .feed.active .item-title:not([data-unread="0"])::after {
  347. border-color: var(--dark-border-color8);
  348. color: var(--dark-font-color8);
  349. }
  350. /*=== New article notification */
  351. #new-article {
  352. background-color: var(--dark-background-color-blue);
  353. }
  354. #new-article > a {
  355. color: var(--dark-font-colorA);
  356. }
  357. #new-article > a:hover {
  358. background-color: var(--dark-background-color3);
  359. }
  360. /*=== Transition indication, e.g. day */
  361. .transition {
  362. border-top: 1px solid var(--dark-border-color3);
  363. border-bottom: 1px solid var(--dark-border-color3);
  364. }
  365. /*=== Index menu */
  366. .nav_menu {
  367. border-bottom: 1px solid var(--dark-border-color);
  368. }
  369. /*=== Feed articles */
  370. .flux {
  371. border-left: 2px solid var(--dark-border-color);
  372. }
  373. .flux_header {
  374. border-top: none;
  375. }
  376. .flux .flux_header:hover {
  377. background-color: var(--background-color-flux-hover);
  378. }
  379. .flux.current {
  380. background-color: var(--dark-background-color1);
  381. }
  382. .flux .flux_header .item .title {
  383. color: var(--dark-font-color8);
  384. }
  385. .flux .flux_header .date,
  386. .flux .flux_content .bottom .date {
  387. color: var(--dark-font-color6);
  388. }
  389. .flux:not(.current):hover .item .title {
  390. background-color: var(--dark-background-color1);
  391. }
  392. /*=== Content of feed articles */
  393. .content > h1.title > a {
  394. color: var(--dark-font-color8);
  395. }
  396. .content hr {
  397. background-color: var(--dark-background-color3);
  398. }
  399. .content pre {
  400. background-color: var(--dark-background-color2);
  401. color: var(--dark-font-colorA);
  402. border: 1px solid var(--dark-border-color0);
  403. }
  404. .content code {
  405. background-color: var(--dark-background-color1);
  406. border-color: var(--dark-border-color3);
  407. }
  408. .content pre code {
  409. background: transparent;
  410. color: var(--dark-font-colorA);
  411. border: none;
  412. }
  413. .content blockquote {
  414. background: var(--dark-background-color2);
  415. color: var(--dark-font-color9);
  416. border-top: 1px solid var(--dark-border-color4);
  417. border-bottom: 1px solid var(--dark-border-color4);
  418. }
  419. /*=== Notification and actualize notification */
  420. .notification {
  421. background-color: var(--dark-background-color1);
  422. color: var(--dark-notification-font-color);
  423. border: 1px solid var(--dark-notification-border-color);
  424. }
  425. .notification.good {
  426. background-color: var(--dark-background-color1);
  427. border-color: var(--dark-notification-good-border-color);
  428. }
  429. .notification.bad {
  430. background-color: var(--dark-background-color1);
  431. border-color: var(--dark-notification-bad-border-color);
  432. }
  433. .notification .close:hover {
  434. background-color: var(--dark-background-color2);
  435. }
  436. .notification.good .close:hover {
  437. background-color: var(--dark-notification-good-close-background-color-hover);
  438. }
  439. .notification.bad .close:hover {
  440. background-color: var(--dark-notification-bad-close-background-color-hover);
  441. }
  442. .notification .close .icon {
  443. filter: brightness(0.6);
  444. }
  445. .notification .close:hover .icon {
  446. filter: brightness(3);
  447. }
  448. /*=== "Load more" part */
  449. #bigMarkAsRead:hover {
  450. background-color: var(--dark-background-color1);
  451. color: var(--dark-font-colorA);
  452. background-image: linear-gradient(to top, var(--dark-background-color-button-hover-gradient1) 0%, var(--dark-background-color-button-hover-gradient2) 5%);
  453. box-shadow: none;
  454. }
  455. /*=== Navigation menu (for articles) */
  456. #nav_entries {
  457. background-color: var(--dark-background-color1);
  458. border-top: 1px solid var(--dark-border-color3);
  459. }
  460. /*=== READER VIEW */
  461. /*================*/
  462. #stream.reader .flux {
  463. background-color: var(--dark-background-color2);
  464. }
  465. #stream.reader .flux .flux_content {
  466. background-color: var(--dark-background-color1);
  467. border: none;
  468. }
  469. #stream.reader .flux .author {
  470. color: var(--dark-font-color6);
  471. }
  472. /*=== GLOBAL VIEW */
  473. /*================*/
  474. .box.category .box-title .title {
  475. color: var(--dark-font-color8);
  476. }
  477. #stream.global .box.category .box-title:hover {
  478. background-color: var(--dark-background-color-blue);
  479. }
  480. .box.category:not([data-unread="0"]) .box-title {
  481. background-color: var(--dark-background-color3);
  482. }
  483. .box.category:not([data-unread="0"]) .box-title .title {
  484. color: var(--dark-font-colorA);
  485. }
  486. #stream.global .feed .item-title:not([data-unread="0"])::after {
  487. background-color: var(--dark-background-color16);
  488. }
  489. /*=== Panel */
  490. #panel {
  491. border: 1px solid var(--dark-border-color6);
  492. }
  493. /*=== Slider */
  494. #slider {
  495. border-left: 1px solid var(--dark-border-color6);
  496. }
  497. .theme-preview-list {
  498. border-color: var(--dark-border-color0);
  499. }
  500. .theme-preview-list .properties {
  501. border-color: var(--dark-border-color0);
  502. color: var(--dark-font-colorA);
  503. }
  504. kbd {
  505. background-color: var(--dark-background-color3);
  506. color: var(--dark-font-color9);
  507. border-color: var(--dark-border-color3);
  508. }
  509. /*=== STATISTICS */
  510. /*===============*/
  511. .stat > table td,
  512. .stat > table th {
  513. border-bottom: 1px solid var(--dark-border-color3);
  514. }
  515. /*=== MOBILE */
  516. /*===========*/
  517. @media (max-width: 840px) {
  518. .aside .toggle_aside,
  519. #overlay .close,
  520. .dropdown-menu .toggle_aside {
  521. background-color: var(--dark-background-color1);
  522. border-bottom: 1px solid var(--dark-border-color3);
  523. }
  524. .dropdown-target:target ~ .dropdown-toggle::after {
  525. border-top: 1px solid var(--dark-border-color8);
  526. border-left: 1px solid var(--dark-border-color8);
  527. }
  528. .nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
  529. border-left: 1px solid var(--dark-border-color0);
  530. border-top-left-radius: 3px;
  531. border-bottom-left-radius: 3px;
  532. }
  533. }