nord.rtl.css 24 KB

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