origine.css 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357
  1. @charset "UTF-8";
  2. /*=== GENERAL */
  3. /*============*/
  4. :root {
  5. --frss-padding-top-bottom: 0.5rem;
  6. --background-color-light-gradient1: #fff;
  7. --background-color-light-gradient2: #eee;
  8. --background-color-light: #fff;
  9. --background-color-light-shadowed: #f6f6f6;
  10. --background-color-light-shadowed-transparent: #f0f0f0a8;
  11. --background-color-grey: #f0f0f0;
  12. --background-color-hover: #f6f6f6;
  13. --unread-article-background-color: #fff3ed;
  14. --unread-article-background-color-hover: #faeee8;
  15. --unread-article-border-color: #ff5300;
  16. --favorite-article-background-color: #fff6da;
  17. --favorite-article-background-color-hover: #fcf2d6;
  18. --favorite-article-border-color: #ffc300;
  19. --contrast-background-color: #0084cc;
  20. --contrast-background-color-gradient: #0045cc;
  21. --contrast-background-color-hover: #06c;
  22. --contrast-background-color-active: #0062be;
  23. --contrast-border-color: #0062b7;
  24. --contrast-background-font-color: #eee;
  25. --attention-background-color-gradient1: #ea4a46;
  26. --attention-background-color-gradient2: #911811;
  27. --attention-background-color-gradient1-hover: #d14641;
  28. --attention-background-color-gradient2-hover: #bd362f;
  29. --attention-background-color-active: #bd362f;
  30. --attention-border-color: #c44742;
  31. --empty-feed-color: #e67e22;
  32. --error-feed-color: #bd362f;
  33. --alert-warn-background-color: #ffffe0;
  34. --alert-warn-font-color: #4b3315;
  35. --alert-warn-border-color: #eeb;
  36. --alert-success-background-color: #e8ffe8;
  37. --alert-success-font-color: #244424;
  38. --alert-success-border-color: #cec;
  39. --alert-error-background-color: #fdd;
  40. --alert-error-font-color: #693a3a;
  41. --alert-error-boder-color: #ecc;
  42. --notification-good-background-color: #ffe;
  43. --notification-good-border-color: #eeb;
  44. --notification-good-font-color: #916a37;
  45. --notification-bad-background-color: #fdd;
  46. --notification-bad-font-color: #643838;
  47. --notification-bad-border-color: #ecc;
  48. --notification-close-background-color-hover: #aaa2;
  49. --font-color: #111;
  50. --font-color-grey: #666;
  51. --font-color-light-shadowed: #aaa;
  52. --font-color-light: #fff;
  53. --text-shadow-color: #aaa;
  54. --text-shadow-color-dark: #666;
  55. --box-shadow-color: #bbb6;
  56. --box-shadow-color-inset: #e0e0e0;
  57. --font-color-link: #0062be;
  58. --font-color-link-hover: #038;
  59. --border-color: #ddd;
  60. --border-color-shadow-side: #ccc;
  61. --frss-border-color: var(--border-color);
  62. --contrast-border-color-active: #0062be;
  63. --form-element-font-color-focus: #0062be;
  64. --form-element-border-color-focus: #3bf;
  65. --form-element-focus-box-shadow-color-inset: #ddf;
  66. --form-element-border-color-invalid: #f00;
  67. --form-element-invalid-box-shadow-color-inset: #fdd;
  68. }
  69. html, body {
  70. background-color: var(--background-color-light);
  71. color: var(--font-color);
  72. font-family: "OpenSans", "Cantarell", "Helvetica", "Arial", sans-serif;
  73. }
  74. /*=== Links */
  75. a, button.as-link {
  76. color: var(--font-color-link);
  77. outline: none;
  78. }
  79. a:hover,
  80. button.as-link:hover {
  81. color: var(--font-color-link-hover);
  82. }
  83. /*=== Forms */
  84. legend {
  85. margin: 20px 0 5px;
  86. padding: 5px 0;
  87. font-size: 1.4em;
  88. border-bottom: 1px solid var(--border-color);
  89. }
  90. label {
  91. min-height: 25px;
  92. padding: 5px 0;
  93. cursor: pointer;
  94. }
  95. input:hover,
  96. select:hover,
  97. textarea:hover {
  98. color: var(--font-color);
  99. }
  100. input, select, textarea {
  101. background-color: var(--background-color-light);
  102. color: var(--font-color-grey);
  103. border: 1px solid var(--border-color);
  104. border-radius: 3px;
  105. }
  106. option {
  107. padding: 0 .5em;
  108. }
  109. input:focus, select:focus, textarea:focus, input[type="password"]:focus + .toggle-password {
  110. color: var(--form-element-font-color-focus);
  111. border-color: var(--form-element-border-color-focus);
  112. box-shadow: 0 2px 2px var(--form-element-focus-box-shadow-color-inset) inset;
  113. outline: none;
  114. }
  115. input:invalid, select:invalid {
  116. border-color: var(--form-element-border-color-invalid);
  117. box-shadow: 0 0 2px 2px var(--form-element-invalid-box-shadow-color-inset) inset;
  118. }
  119. input:disabled, select:disabled {
  120. background-color: var(--background-color-light-shadowed);
  121. }
  122. /*=== Tables */
  123. table {
  124. border-collapse: collapse;
  125. }
  126. th, td {
  127. border: 1px solid var(--border-color);
  128. }
  129. th {
  130. background-color: var(--background-color-light-shadowed);
  131. }
  132. .config-articleicons td,
  133. .config-articleicons th {
  134. font-weight: normal;
  135. text-align: center;
  136. }
  137. /*=== COMPONENTS */
  138. /*===============*/
  139. /*=== Forms */
  140. .form-group.form-actions {
  141. margin-bottom: 40px;
  142. padding: 5px 0;
  143. background-color: var(--background-color-light-shadowed-transparent);
  144. border-top: 1px solid var(--border-color);
  145. }
  146. .form-group.form-actions .btn {
  147. margin: 0 20px 0 0;
  148. }
  149. .form-group .group-name {
  150. padding: 10px 0;
  151. }
  152. .form-group .group-controls {
  153. min-height: 25px;
  154. padding: 0.5rem 0;
  155. }
  156. .form-group.form-actions .group-controls .btn {
  157. margin-top: 0.25rem;
  158. margin-bottom: 0.25rem;
  159. }
  160. .form-group .group-controls label:not(.btn) {
  161. padding: 0;
  162. }
  163. .form-group .group-controls > input,
  164. .form-group .group-controls > select,
  165. .form-group .group-controls > textarea,
  166. .form-group .group-controls .stick {
  167. margin: -5px 0 5px 0;
  168. }
  169. .form-group .group-controls .stick .btn {
  170. padding-top: 2px;
  171. padding-bottom: 2px;
  172. }
  173. /*=== Buttons */
  174. .stick input,
  175. .stick .btn,
  176. .group .btn {
  177. border-radius: 0;
  178. }
  179. .stick .btn:first-child,
  180. .group .btn:first-child,
  181. .stick input:first-child,
  182. .stick select:first-child {
  183. border-radius: 3px 0 0 3px;
  184. }
  185. .stick .btn-important:first-child {
  186. border-right: 1px solid var(--contrast-border-color);
  187. }
  188. .stick .btn:last-child,
  189. .group .btn:last-child,
  190. .stick input:last-child {
  191. border-radius: 0 3px 3px 0;
  192. }
  193. .stick .btn + .btn,
  194. .group .btn + .btn,
  195. .stick .btn + input,
  196. .stick .btn + .dropdown > .btn,
  197. .group .btn + .dropdown > .btn,
  198. .stick input + .btn,
  199. .stick select + .btn,
  200. .stick input + input,
  201. .stick input + .dropdown > .btn,
  202. .stick .dropdown + .btn,
  203. .group .dropdown + .btn,
  204. .stick .dropdown + input,
  205. .stick .dropdown + .dropdown > .btn,
  206. .group .dropdown + .dropdown > .btn {
  207. border-left: none;
  208. }
  209. .stick input + .btn {
  210. border-top: 1px solid var(--border-color);
  211. }
  212. .stick .dropdown:last-child > .btn,
  213. .group .dropdown:last-child > .btn {
  214. border-left: none;
  215. border-radius: 0 3px 3px 0;
  216. }
  217. .btn {
  218. margin: 0;
  219. padding: 0.25rem 0.5rem;
  220. background-image: linear-gradient(to bottom, var(--background-color-light-gradient1) 0%, var(--background-color-light-gradient2) 100%);
  221. color: var(--font-color-grey);
  222. font-size: 0.9rem;
  223. border: 1px solid var(--border-color);
  224. border-right: 1px solid var(--border-color-shadow-side);
  225. border-bottom: 1px solid var(--border-color-shadow-side);
  226. border-radius: 3px;
  227. min-height: 25px;
  228. min-width: 15px;
  229. line-height: 1.7;
  230. vertical-align: middle;
  231. }
  232. .btn:hover {
  233. background-image: none;
  234. background-color: var(--background-color-hover);
  235. text-decoration: none;
  236. }
  237. a:hover .icon,
  238. button:hover .icon,
  239. .btn:hover .icon {
  240. filter: brightness(1.5);
  241. transition: 0.1s linear;
  242. }
  243. #toggle-starred:hover .icon,
  244. .bookmark:hover .icon {
  245. filter: brightness(1.1);
  246. }
  247. #toggle-search.active > .icon {
  248. filter: invert(8%) sepia(99%) saturate(7064%) hue-rotate(248deg) brightness(99%) contrast(142%);
  249. }
  250. .btn.active,
  251. .btn:active,
  252. .dropdown-target:target ~ .btn.dropdown-toggle {
  253. background-color: var(--background-color-grey);
  254. box-shadow: 0px 2px 4px var(--box-shadow-color-inset) inset, 0px 1px 2px var(--background-color-grey);
  255. }
  256. .dropdown-target:target ~ .btn.dropdown-toggle .icon {
  257. filter: brightness(1.1);
  258. }
  259. .btn.active, .btn:active {
  260. filter: brightness(0.95);
  261. }
  262. .btn.active .icon,
  263. .btn:active .icon {
  264. filter: brightness(1.1);
  265. }
  266. .btn-important {
  267. background-image: linear-gradient(to bottom, var(--contrast-background-color), var(--contrast-background-color-gradient));
  268. color: var(--font-color-light);
  269. border: 1px solid var(--contrast-border-color);
  270. font-weight: normal;
  271. }
  272. .btn-important:hover {
  273. background-image: linear-gradient(to bottom, var(--contrast-background-color-hover), var(--contrast-background-color-gradient));
  274. color: var(--font-color-light);
  275. }
  276. .btn-important:hover .icon {
  277. filter: brightness(3);
  278. }
  279. .btn-important:active {
  280. background-color: var(--contrast-background-color-active);
  281. box-shadow: none;
  282. }
  283. .btn-important .icon {
  284. filter: brightness(3);
  285. }
  286. .btn-attention {
  287. background-image: linear-gradient(to bottom, var(--attention-background-color-gradient1), var(--attention-background-color-gradient2));
  288. color: var(--font-color-light);
  289. border: 1px solid var(--attention-border-color);
  290. text-shadow: 0px -1px 0px var(--text-shadow-color-dark);
  291. }
  292. .btn-attention:hover {
  293. background-image: linear-gradient(to bottom, var(--attention-background-color-gradient1-hover), var(--attention-background-color-gradient2-hover));
  294. color: var(--font-color-light);
  295. }
  296. .btn-attention:active {
  297. background-color: var(--attention-background-color-active);
  298. box-shadow: none;
  299. }
  300. /*=== Navigation */
  301. .nav-list {
  302. font-size: 0.9rem;
  303. }
  304. .nav-list .item,
  305. .nav-list .item.nav-header {
  306. min-height: 2.5em;
  307. line-height: 2.5;
  308. }
  309. .nav-list .nav-section .item:hover a,
  310. .nav-list .nav-section .item:hover .as-link {
  311. background-color: var(--background-color-hover);
  312. color: var(--font-color-link-hover);
  313. }
  314. .nav-list .nav-section .item.active:hover a,
  315. .nav-list .nav-section .item.active:hover .as-link,
  316. .nav-list .item.active {
  317. background-color: var(--contrast-background-color-active);
  318. color: var(--font-color-light);
  319. }
  320. .nav-list .item.active a,
  321. .nav-list .item.active .as-link {
  322. color: var(--font-color-light);
  323. }
  324. .nav-list .item > a,
  325. .nav-list .item > .as-link,
  326. .nav-list .item > span,
  327. .nav-list .item > div {
  328. padding: 0 1rem;
  329. }
  330. .nav-list .item > span {
  331. font-style: italic;
  332. color: var(--font-color-grey);
  333. }
  334. .nav-list a:hover {
  335. text-decoration: none;
  336. }
  337. .nav-list .nav-header {
  338. background-color: var(--background-color-grey);
  339. color: var(--font-color-grey);
  340. font-weight: bold;
  341. }
  342. .nav-list .nav-form {
  343. padding: 3px;
  344. text-align: center;
  345. }
  346. /*=== Dropdown */
  347. .dropdown-menu {
  348. margin: 5px 0 0;
  349. padding: 5px 0;
  350. background-color: var(--background-color-light);
  351. font-size: 0.8rem;
  352. border: 1px solid var(--border-color);
  353. border-radius: 5px;
  354. box-shadow: 3px 3px 3px var(--box-shadow-color);
  355. text-align: left;
  356. }
  357. .dropdown-menu::after {
  358. border-color: var(--border-color);
  359. }
  360. .dropdown-header,
  361. .dropdown-section .dropdown-section-title {
  362. padding: 0.25rem 0.5rem 0.25rem 1rem;
  363. color: var(--font-color-grey);
  364. font-weight: bold;
  365. text-align: left;
  366. }
  367. .dropdown-menu .item > a,
  368. .dropdown-menu .item > span,
  369. .dropdown-menu .item > .as-link {
  370. padding: 0 22px;
  371. line-height: 2.5;
  372. font-size: inherit;
  373. }
  374. .dropdown-menu .dropdown-section .item > a,
  375. .dropdown-menu .dropdown-section .item > span,
  376. .dropdown-menu .dropdown-section .item > .as-link {
  377. padding-left: 2rem;
  378. }
  379. .dropdown-menu .dropdown-section .item:last-child {
  380. margin-bottom: 0.5rem;
  381. }
  382. .dropdown-menu .item > a:focus,
  383. .dropdown-menu .item > a:hover,
  384. .dropdown-menu .item > button:focus:not([disabled]),
  385. .dropdown-menu .item > button:hover:not([disabled]),
  386. .dropdown-menu .item > label:focus:not(.noHover),
  387. .dropdown-menu .item > label:hover:not(.noHover) {
  388. background-color: var(--contrast-background-color-active);
  389. color: var(--font-color-light);
  390. }
  391. .dropdown-menu .item > label {
  392. padding: 0;
  393. }
  394. .dropdown-menu > .item:hover > a > .icon,
  395. .dropdown-menu .item.dropdown-section .item:hover .icon {
  396. filter: grayscale(100%) brightness(2.5);
  397. }
  398. .dropdown-menu > .item[aria-checked="true"] > a::before {
  399. font-weight: bold;
  400. margin: 0 0 0 -14px;
  401. }
  402. .dropdown-menu .input select,
  403. .dropdown-menu .input input {
  404. margin: 0 auto 5px;
  405. padding: 2px 5px;
  406. border-radius: 3px;
  407. }
  408. .dropdown-menu input[type="checkbox"] {
  409. margin-left: 1rem;
  410. }
  411. .dropdown-menu .item .emptyLabels {
  412. padding-left: 1rem;
  413. padding-right: 1rem;
  414. }
  415. .item ~ .dropdown-header,
  416. .dropdown-section ~ .dropdown-section,
  417. .item.separator {
  418. border-top-color: var(--border-color);
  419. }
  420. /*=== Alerts */
  421. .alert {
  422. background-color: var(--background-color-grey);
  423. color: var(--font-color-grey);
  424. font-size: 0.9em;
  425. border: 1px solid var(--border-color);
  426. border-right: 1px solid var(--border-color-shadow-side);
  427. border-bottom: 1px solid var(--border-color-shadow-side);
  428. border-radius: 5px;
  429. }
  430. .alert-head {
  431. font-size: 1.15em;
  432. }
  433. .alert > a {
  434. color: inherit;
  435. text-decoration: underline;
  436. }
  437. .alert-warn {
  438. background-color: var(--alert-warn-background-color);
  439. color: var(--alert-warn-font-color);
  440. border: 1px solid var(--alert-warn-border-color);
  441. }
  442. .alert-success {
  443. background-color: var(--alert-success-background-color);
  444. color: var(--alert-success-font-color);
  445. border: 1px solid var(--alert-success-border-color);
  446. }
  447. .alert-error {
  448. background-color: var(--alert-error-background-color);
  449. color: var(--alert-error-font-color);
  450. border: 1px solid var(--alert-error-boder-color);
  451. }
  452. .alert-error a {
  453. color: var(--alert-error-font-color);
  454. font-weight: bold;
  455. }
  456. /*=== Pagination */
  457. .pagination {
  458. background-color: var(--background-color-light);
  459. color: var(--font-color-grey);
  460. }
  461. .pagination .item a:hover {
  462. background-color: var(--background-color-hover);
  463. }
  464. .pagination:first-child .item {
  465. border-bottom: 1px solid var(--border-color);
  466. }
  467. .pagination:last-child .item {
  468. border-top: 1px solid var(--border-color);
  469. }
  470. /*=== Boxes */
  471. .box {
  472. background-color: var(--background-color-light);
  473. border-radius: 5px;
  474. box-shadow: 0 0 3px var(--box-shadow-color);
  475. }
  476. .box .box-title {
  477. background-color: var(--background-color-grey);
  478. border-bottom: 1px solid var(--border-color);
  479. border-radius: 5px 5px 0 0;
  480. }
  481. .box .box-title .configure {
  482. margin-right: 4px;
  483. }
  484. .box .box-content .item {
  485. padding-bottom: 0.25rem;
  486. }
  487. /*=== Tree */
  488. .tree {
  489. margin: 10px 0;
  490. }
  491. .tree-folder-title {
  492. position: relative;
  493. padding-left: 0.75rem;
  494. padding-right: 0.75rem;
  495. background-color: var(--background-color-light);
  496. font-size: 1rem;
  497. }
  498. .aside_feed .tree-folder.all .tree-folder-title .title,
  499. .aside_feed .tree-folder.important .tree-folder-title .title,
  500. .aside_feed .tree-folder.favorites .tree-folder-title .title {
  501. margin-left: 0.25rem;
  502. }
  503. .aside_feed .tree-folder-title button.dropdown-toggle {
  504. margin: -0.75rem 0.25rem -0.75rem -0.75rem;
  505. padding: 0.75rem 0 0.75rem 0.75rem;
  506. }
  507. .aside_feed .tree-folder-title:hover button.dropdown-toggle .icon {
  508. filter: none;
  509. }
  510. .aside_feed .tree-folder-title button.dropdown-toggle:hover .icon {
  511. filter: brightness(1.5);
  512. transition: 0.1s linear;
  513. }
  514. .tree-folder-title .title {
  515. background: inherit;
  516. color: var(--font-color);
  517. }
  518. .tree-folder-title:hover {
  519. background-color: var(--background-color-hover);
  520. }
  521. .tree-folder-title .title:hover {
  522. text-decoration: none;
  523. }
  524. .tree-folder.active .tree-folder-title {
  525. background-color: var(--background-color-grey);
  526. font-weight: bold;
  527. }
  528. .tree-folder.active .tree-folder-title .title {
  529. color: var(--font-color-link);
  530. }
  531. .tree-folder-items {
  532. background-color: var(--background-color-light-shadowed);
  533. border-top: 1px solid var(--border-color);
  534. border-bottom: 1px solid var(--border-color);
  535. }
  536. .tree-folder-items > .item {
  537. line-height: 1.7;
  538. font-size: 0.8rem;
  539. }
  540. .tree-folder-items .item:hover {
  541. background-color: var(--background-color-light);
  542. }
  543. .tree-folder-items > .item.active {
  544. background-color: var(--contrast-background-color-active);
  545. }
  546. .tree-folder-items > .item.active .icon {
  547. filter: brightness(3);
  548. }
  549. .tree-folder-items > .item > a {
  550. text-decoration: none;
  551. }
  552. .tree-folder-items > .item.active > a {
  553. color: var(--font-color-light);
  554. }
  555. /*=== STRUCTURE */
  556. /*===============*/
  557. /*=== Header */
  558. .header {
  559. background-color: var(--background-color-grey);
  560. }
  561. .header > .item {
  562. border-bottom: 1px solid var(--border-color);
  563. vertical-align: middle;
  564. text-align: center;
  565. }
  566. .header > .item.title {
  567. width: 300px;
  568. }
  569. .header > .item.title a:hover .logo {
  570. filter: brightness(1.4);
  571. }
  572. .header > .item.search input {
  573. width: 350px;
  574. }
  575. /*=== Body */
  576. .aside {
  577. background-color: var(--background-color-light);
  578. border-right: 1px solid var(--border-color);
  579. }
  580. .aside.aside_feed {
  581. padding: 0.5rem 0;
  582. text-align: center;
  583. background-color: var(--background-color-light);
  584. }
  585. .aside.aside_feed .tree {
  586. margin: 10px 0 50px;
  587. }
  588. /*=== Aside main page (categories) */
  589. .aside.aside_feed .category .title:not([data-unread="0"])::after,
  590. .global .box.category .title:not([data-unread="0"])::after,
  591. .global .feed .item-title:not([data-unread="0"])::after {
  592. background-color: var(--background-color-light-shadowed);
  593. color: var(--font-color-grey);
  594. }
  595. .aside.aside_feed .category .tree-folder-title:hover .title:not([data-unread="0"])::after {
  596. background-color: var(--background-color-light);
  597. }
  598. .aside.aside_feed .feed .item-title:not([data-unread="0"])::after {
  599. background-color: var(--background-color-light);
  600. color: var(--font-color-grey);
  601. }
  602. .aside.aside_feed .feed:hover .item-title:not([data-unread="0"])::after {
  603. background-color: var(--background-color-light-shadowed);
  604. }
  605. /*=== Aside main page (feeds) */
  606. .feed.item.empty.active {
  607. background-color: var(--empty-feed-color);
  608. }
  609. .feed.item.error.active {
  610. background-color: var(--error-feed-color);
  611. }
  612. .feed.item.empty,
  613. .feed.item.empty > a {
  614. color: var(--empty-feed-color);
  615. }
  616. .feed.item.error,
  617. .feed.item.error > a {
  618. color: var(--error-feed-color);
  619. }
  620. .feed.item.empty.active,
  621. .feed.item.error.active,
  622. .feed.item.empty.active > a,
  623. .feed.item.error.active > a {
  624. color: var(--font-color-light);
  625. }
  626. .aside_feed .tree-folder-items .dropdown-menu::after {
  627. left: 2px;
  628. }
  629. /*=== Prompt (centered) */
  630. .prompt .form-group {
  631. margin-bottom: 1rem;
  632. }
  633. .prompt .form-group::after {
  634. display: none;
  635. }
  636. .prompt .form-group.form-group-actions {
  637. display: flex;
  638. margin-top: 2rem;
  639. align-items: center;
  640. justify-content: space-between;
  641. }
  642. .prompt .btn.btn-important {
  643. padding-left: 1.5rem;
  644. padding-right: 1.5rem;
  645. font-size: 1.1rem;
  646. }
  647. /*=== New article notification */
  648. #new-article {
  649. background-color: var(--contrast-background-color);
  650. text-align: center;
  651. font-size: 0.9em;
  652. }
  653. #new-article > a {
  654. color: var(--font-color-light);
  655. font-weight: bold;
  656. }
  657. #new-article > a:hover {
  658. text-decoration: none;
  659. background-color: var(--contrast-background-color-hover);
  660. }
  661. /*=== Transition indication, e.g. day */
  662. .transition {
  663. padding: 0 10px;
  664. font-weight: bold;
  665. line-height: 3;
  666. background-color: var(--background-color-light);
  667. border-top: 1px solid var(--border-color);
  668. }
  669. .transition span {
  670. line-height: 1.5;
  671. }
  672. #new-article + .transition {
  673. border-top: none;
  674. }
  675. .transition .name {
  676. padding: 0 10px 0 0;
  677. color: var(--font-color-light-shadowed);
  678. font-size: 1.8em;
  679. opacity: 0.3;
  680. text-shadow: 0px -1px 0px var(--text-shadow-color-dark);
  681. font-style: italic;
  682. text-align: right;
  683. }
  684. /*=== Index menu */
  685. .nav_menu {
  686. background-color: var(--background-color-light-shadowed);
  687. border-bottom: 1px solid var(--border-color);
  688. }
  689. /*=== Feed articles */
  690. .flux {
  691. background-color: var(--background-color-light);
  692. border-left: 2px solid transparent;
  693. }
  694. .flux.current {
  695. background-color: var(--background-color-light);
  696. border-left: 2px solid var(--contrast-border-color-active);
  697. }
  698. .flux .flux_header:hover {
  699. background-color: var(--background-color-hover);
  700. }
  701. .flux .flux_header:not(.current):hover .flux_header,
  702. .flux.current .flux_header {
  703. background-color: var(--background-color-hover);
  704. }
  705. .flux.not_read {
  706. border-left: 2px solid var(--unread-article-border-color);
  707. }
  708. .flux.not_read .flux_header {
  709. background-color: var(--unread-article-background-color);
  710. }
  711. .flux.not_read:not(.current):hover .flux_header .title,
  712. .flux.not_read:not(.current):hover .flux_header,
  713. .flux.not_read.current .flux_header {
  714. background-color: var(--unread-article-background-color-hover);
  715. }
  716. .flux.favorite {
  717. border-left: 2px solid var(--favorite-article-border-color);
  718. }
  719. .flux.favorite:not(.current) .flux_header {
  720. background-color: var(--favorite-article-background-color);
  721. }
  722. .flux.favorite:not(.current):hover .flux_header .title,
  723. .flux.favorite:not(.current):hover .flux_header,
  724. .flux.favorite.current .flux_header {
  725. background-color: var(--favorite-article-background-color-hover);
  726. }
  727. /* stylelint-disable-next-line no-duplicate-selectors */
  728. .flux.current {
  729. border-left-width: 5px;
  730. border-left-style: double;
  731. }
  732. .flux.current > .flux_header {
  733. background: linear-gradient(to right, transparent 0, transparent 3px, var(--background-color-hover) 3px);
  734. margin-left: -3px; /* Compensate increased border-left-width */
  735. }
  736. .flux.not_read.current > .flux_header, .flux.not_read.current > .flux_header:hover {
  737. background: linear-gradient(to right, transparent 0, transparent 3px, var(--unread-article-background-color-hover) 3px);
  738. }
  739. .flux.favorite.current > .flux_header, .flux.favorite.current > .flux_header:hover {
  740. background: linear-gradient(to right, transparent 0, transparent 3px, var(--favorite-article-background-color-hover) 3px);
  741. }
  742. .flux_header {
  743. font-size: 0.9rem;
  744. border-top: 1px solid var(--border-color);
  745. cursor: pointer;
  746. }
  747. .flux .item .date {
  748. color: var(--font-color-grey);
  749. font-size: 0.7rem;
  750. }
  751. .flux .bottom {
  752. font-size: 0.8rem;
  753. text-align: center;
  754. }
  755. /*=== Content of feed articles */
  756. .content h1.title > a {
  757. color: var(--font-color);
  758. }
  759. .content hr {
  760. margin: 30px 10px;
  761. background-color: var(--background-color-grey);
  762. height: 1px;
  763. border: 0;
  764. box-shadow: 0 2px 5px var(--box-shadow-color);
  765. }
  766. .content pre {
  767. border: 1px solid var(--border-color);
  768. border-radius: 3px;
  769. }
  770. .content pre code {
  771. background: transparent;
  772. color: var(--font-color);
  773. border: none;
  774. }
  775. .content code {
  776. background-color: var(--background-color-light-shadowed);
  777. color: var(--error-feed-color);
  778. border-color: var(--border-color);
  779. border-radius: 3px;
  780. }
  781. .content blockquote {
  782. margin: 0;
  783. padding: 5px 20px;
  784. background-color: var(--background-color-light-shadowed);
  785. display: block;
  786. color: var(--font-color-grey);
  787. border-top: 1px solid var(--border-color);
  788. border-bottom: 1px solid var(--border-color);
  789. }
  790. .content blockquote p {
  791. margin: 0;
  792. }
  793. #stream-footer {
  794. border-top-color: var(--border-color);
  795. }
  796. /*=== Notification and actualize notification */
  797. .notification {
  798. font-size: 0.9em;
  799. border: 1px solid var(--notification-good-border-color);
  800. border-radius: 3px;
  801. box-shadow: 0 0 5px var(--box-shadow-color);
  802. text-align: center;
  803. font-weight: bold;
  804. vertical-align: middle;
  805. }
  806. .notification.good {
  807. background-color: var(--notification-good-background-color);
  808. color: var(--notification-good-font-color);
  809. border: 1px solid var(--notification-good-border-color);
  810. }
  811. .notification.bad {
  812. background-color: var(--notification-bad-background-color);
  813. color: var(--notification-bad-font-color);
  814. border: 1px solid var(--notification-bad-border-color);
  815. }
  816. .notification .close:hover {
  817. background-color: var(--notification-close-background-color-hover);
  818. }
  819. .notification .close .icon {
  820. filter: brightness(1.5);
  821. }
  822. .notification .close:hover .icon {
  823. filter: brightness(0.5);
  824. }
  825. .notification#actualizeProgress {
  826. line-height: 2em;
  827. }
  828. /*=== "Load more" part */
  829. #bigMarkAsRead.big {
  830. color: var(--font-color-grey);
  831. text-align: center;
  832. text-decoration: none;
  833. text-shadow: 0 -1px 0 var(--text-shadow-color);
  834. }
  835. #bigMarkAsRead:hover {
  836. background-color: var(--background-color-hover);
  837. color: var(--contrast-border-color-active);
  838. box-shadow: 0 -5px 10px var(--box-shadow-color-inset) inset;
  839. }
  840. #bigMarkAsRead:hover .bigTick {
  841. text-shadow: 0 0 5px var(--text-shadow-color);
  842. }
  843. /*=== Navigation menu (for articles) */
  844. #nav_entries {
  845. background-color: var(--background-color-light);
  846. border-top: 1px solid var(--border-color);
  847. }
  848. /*=== READER VIEW */
  849. /*================*/
  850. #stream.reader .flux {
  851. background-color: var(--background-color-grey);
  852. border: none;
  853. }
  854. #stream.reader .flux .flux_content {
  855. background-color: var(--background-color-light);
  856. border-color: var(--border-color);
  857. }
  858. #stream.reader .flux .author {
  859. color: var(--font-color-grey);
  860. }
  861. /*=== GLOBAL VIEW */
  862. /*================*/
  863. .box.category:not([data-unread="0"]) .box-title {
  864. background-color: var(--contrast-background-color);
  865. }
  866. .box.category .box-title .title {
  867. display: block;
  868. font-weight: normal;
  869. }
  870. .box.category:not([data-unread="0"]) .box-title .title {
  871. color: var(--font-color-light);
  872. font-weight: bold;
  873. }
  874. .box.category .title:not([data-unread="0"])::after {
  875. background: none;
  876. color: var(--font-color-light);
  877. border: 0;
  878. box-shadow: none;
  879. position: absolute;
  880. top: 5px; right: 10px;
  881. font-weight: bold;
  882. text-shadow: none;
  883. }
  884. /*=== DIVERS */
  885. /*===========*/
  886. .aside.aside_feed .nav-form input,
  887. .aside.aside_feed .nav-form select {
  888. width: 140px;
  889. }
  890. .aside.aside_feed .nav-form .dropdown .dropdown-menu {
  891. right: -20px;
  892. }
  893. .aside.aside_feed .nav-form .dropdown .dropdown-menu::after {
  894. right: 33px;
  895. }
  896. /*=== STATISTICS */
  897. /*===============*/
  898. .stat {
  899. margin: 10px 0 20px;
  900. }
  901. .stat th,
  902. .stat td,
  903. .stat tr {
  904. border: none;
  905. }
  906. .stat > table td,
  907. .stat > table th {
  908. border-bottom: 1px solid var(--border-color);
  909. }
  910. /*=== LOGS */
  911. /*=========*/
  912. .pagination .item.active {
  913. background-color: var(--contrast-background-color-active);
  914. color: white;
  915. }
  916. #loglist td {
  917. font-family: monospace;
  918. }
  919. /*=== MOBILE */
  920. /*===========*/
  921. @media (max-width: 840px) {
  922. .header > .item {
  923. padding: 0.5rem 1rem;
  924. }
  925. .header > .item.title {
  926. width: 75%;
  927. text-align: left;
  928. }
  929. .header > .item.configure {
  930. width: 25%;
  931. text-align: right;
  932. }
  933. .form-group .group-name {
  934. padding-bottom: 0;
  935. }
  936. .aside {
  937. transition: width 200ms linear;
  938. }
  939. .aside:target {
  940. box-shadow: 3px 0 3px var(--text-shadow-color);
  941. }
  942. .aside .toggle_aside,
  943. #overlay .close,
  944. .dropdown-menu .toggle_aside,
  945. #slider .toggle_aside {
  946. background-color: var(--background-color-light-shadowed);
  947. border-bottom: 1px solid var(--border-color);
  948. }
  949. .aside.aside_feed {
  950. padding: 0;
  951. }
  952. .post {
  953. padding-left: 1rem;
  954. padding-right: 1rem;
  955. }
  956. .nav_menu .btn {
  957. margin: 5px 10px;
  958. padding: 3px 5px;
  959. min-height: 0;
  960. }
  961. .nav_menu .stick,
  962. .nav_menu .group {
  963. margin: 0 10px;
  964. }
  965. .nav_menu .stick .btn,
  966. .nav_menu .group .btn {
  967. margin: 5px 0;
  968. }
  969. .dropdown-target:target ~ .dropdown-toggle::after {
  970. background-color: var(--background-color-light);
  971. border-top: 1px solid var(--border-color);
  972. border-left: 1px solid var(--border-color);
  973. }
  974. .dropdown-menu .dropdown-section:last-child {
  975. margin-bottom: 3rem;
  976. }
  977. .item.configure .dropdown .dropdown-menu {
  978. border-radius: 0;
  979. }
  980. #nav_menu_read_all .btn {
  981. border-left: 1px solid var(--border-color-shadow-side);
  982. border-radius: 3px;
  983. }
  984. #overlay {
  985. background-color: var(--background-color-light);
  986. }
  987. .form-group.form-actions {
  988. margin-left: -15px;
  989. margin-right: -15px;
  990. padding-left: 15px;
  991. padding-right: 15px;
  992. }
  993. .transition .name {
  994. font-size: 1.1rem;
  995. text-shadow: none;
  996. }
  997. .notification .close {
  998. background-color: transparent;
  999. display: block;
  1000. left: 0;
  1001. }
  1002. .notification .close:hover {
  1003. opacity: 0.5;
  1004. }
  1005. .notification .close .icon {
  1006. display: none;
  1007. }
  1008. }
  1009. @media screen and (prefers-color-scheme: dark) {
  1010. :root.darkMode_auto {
  1011. --frss-background-color: #000;
  1012. --frss-background-color-middle: #222;
  1013. --frss-border-color: #444;
  1014. --frss-font-color-grey-dark: #999;
  1015. --frss-font-color-dark: #ddd;
  1016. --frss-modal-background-color-transparent: #000000a3;
  1017. --frss-background-color-transparent: #000000a3;
  1018. --frss-scrollbar-handle: #fff1;
  1019. --frss-scrollbar-handle-hover: #fff4;
  1020. --frss-font-color-grey-light: #555;
  1021. --background-color-light-gradient1: #1c1c1c;
  1022. --background-color-light-gradient2: #111;
  1023. --background-color-light: #111;
  1024. --background-color-light-shadowed: #191919;
  1025. --background-color-light-shadowed-transparent: #191919cf;
  1026. --background-color-grey: #1f1f1f;
  1027. --background-color-hover: #212227;
  1028. --unread-article-background-color: #1b1817;
  1029. --unread-article-background-color-hover: #292422;
  1030. --unread-article-border-color: #ff5300;
  1031. --favorite-article-background-color: #24221d;
  1032. --favorite-article-background-color-hover: #302d26;
  1033. --favorite-article-border-color: #ffc300;
  1034. --contrast-background-color: #0084cc;
  1035. --contrast-background-color-gradient: #0045cc;
  1036. --contrast-background-color-hover: #06c;
  1037. --contrast-background-color-active: #038;
  1038. --contrast-border-color: #0062b7;
  1039. --contrast-background-font-color: #eee;
  1040. --attention-background-color-gradient1: #ea4a46;
  1041. --attention-background-color-gradient2: #911811;
  1042. --attention-background-color-gradient1-hover: #d14641;
  1043. --attention-background-color-gradient2-hover: #bd362f;
  1044. --attention-background-color-active: #bd362f;
  1045. --attention-border-color: #c44742;
  1046. --empty-feed-color: #e67e22;
  1047. --error-feed-color: #bd362f;
  1048. --alert-warn-background-color: #ffffe022;
  1049. --alert-warn-font-color: #ccc;
  1050. --alert-warn-border-color: #eeb;
  1051. --alert-success-background-color: #e8ffe814;
  1052. --alert-success-font-color: #96c196;
  1053. --alert-success-border-color: #cec;
  1054. --alert-error-background-color: #fdda;
  1055. --alert-error-font-color: #512b2b;
  1056. --alert-error-boder-color: #ecc;
  1057. --notification-good-background-color: #ffe;
  1058. --notification-good-border-color: #eeb;
  1059. --notification-good-font-color: #916a37;
  1060. --notification-bad-background-color: #fdd;
  1061. --notification-bad-font-color: #643838;
  1062. --notification-bad-border-color: #ecc;
  1063. --notification-close-background-color-hover: #aaa2;
  1064. --font-color: #ccc;
  1065. --font-color-grey: #aaa;
  1066. --font-color-light-shadowed: #555;
  1067. --font-color-light: #ccc;
  1068. --text-shadow-color: #1c1c1c;
  1069. --text-shadow-color-dark: #666;
  1070. --box-shadow-color: #0009;
  1071. --box-shadow-color-inset: #1f1f1f;
  1072. --font-color-link: #467eb3;
  1073. --font-color-link-hover: #0062be;
  1074. --border-color: #222;
  1075. --border-color-shadow-side: #333;
  1076. --contrast-border-color-active: #0062be;
  1077. --form-element-font-color-focus: #b8d0e7;
  1078. --form-element-border-color-focus: #0062be;
  1079. --form-element-focus-box-shadow-color-inset: #110;
  1080. --form-element-border-color-invalid: #f00;
  1081. --form-element-invalid-box-shadow-color-inset: none;
  1082. }
  1083. :root.darkMode_auto .nav_menu .btn {
  1084. color: #777;
  1085. }
  1086. :root.darkMode_auto .nav_menu .btn:hover {
  1087. color: var(--font-color-grey);
  1088. }
  1089. :root.darkMode_auto .nav_menu .btn.active,
  1090. :root.darkMode_auto .nav_menu .btn:active,
  1091. :root.darkMode_auto .nav_menu .dropdown-target:target ~ .btn.dropdown-toggle {
  1092. background: #292929;
  1093. }
  1094. :root.darkMode_auto .dropdown-menu {
  1095. background-color: #0a0a0a;
  1096. }
  1097. :root.darkMode_auto .nav_menu {
  1098. background-color: #141414;
  1099. }
  1100. :root.darkMode_auto .header {
  1101. background-color: var(--background-color-light-shadowed);
  1102. }
  1103. :root.darkMode_auto .btn.active .icon,
  1104. :root.darkMode_auto .btn:active .icon {
  1105. filter: brightness(1.4);
  1106. }
  1107. :root.darkMode_auto .spinner {
  1108. filter: invert(1) brightness(2);
  1109. }
  1110. }