nord.css 24 KB

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