template.css 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660
  1. @charset "UTF-8";
  2. /*=== GENERAL */
  3. /*============*/
  4. html, body {
  5. margin: 0;
  6. padding: 0;
  7. font-size: 100%;
  8. }
  9. /*=== Links */
  10. a {
  11. text-decoration: none;
  12. }
  13. a:hover {
  14. text-decoration: underline;
  15. }
  16. /*=== Lists */
  17. ul, ol, dd {
  18. margin: 0;
  19. padding: 0;
  20. }
  21. /*=== Titles */
  22. h1 {
  23. margin: 0.3em 0 0.6em;
  24. font-size: 1.8em;
  25. }
  26. h2 {
  27. margin: 0.25em 0 0.5em;
  28. font-size: 1.6em;
  29. }
  30. h3 {
  31. margin: 0.25em 0 0.5em;
  32. font-size: 1.4em;
  33. }
  34. /*=== Paragraphs */
  35. p {
  36. margin: 1em 0 0.5em;
  37. font-size: 1em;
  38. }
  39. /*=== Images */
  40. img {
  41. height: auto;
  42. max-width: 100%;
  43. }
  44. img.favicon {
  45. height: 16px;
  46. width: 16px;
  47. vertical-align: middle;
  48. }
  49. /*=== Videos */
  50. iframe, embed, object, video {
  51. max-width: 100%;
  52. }
  53. /*=== Forms */
  54. legend {
  55. display: block;
  56. width: 100%;
  57. clear: both;
  58. }
  59. label {
  60. display: block;
  61. }
  62. input {
  63. width: 180px;
  64. }
  65. textarea {
  66. width: 300px;
  67. }
  68. input, select, textarea {
  69. display: inline-block;
  70. max-width: 100%;
  71. }
  72. input[type="radio"],
  73. input[type="checkbox"] {
  74. width: 15px !important;
  75. min-height: 15px !important;
  76. }
  77. input.extend:focus {
  78. width: 300px;
  79. }
  80. /*=== COMPONENTS */
  81. /*===============*/
  82. /*=== Forms */
  83. .form-group:after {
  84. content: "";
  85. display: block;
  86. clear: both;
  87. }
  88. .form-group.form-actions {
  89. min-width: 250px;
  90. }
  91. .form-group .group-name {
  92. display: block;
  93. float: left;
  94. width: 200px;
  95. }
  96. .form-group .group-controls {
  97. min-width: 250px;
  98. margin: 0 0 0 220px;
  99. }
  100. .form-group .group-controls .control {
  101. display: block;
  102. }
  103. /*=== Buttons */
  104. .stick {
  105. display: inline-block;
  106. white-space: nowrap;
  107. }
  108. .btn,
  109. a.btn {
  110. display: inline-block;
  111. cursor: pointer;
  112. overflow: hidden;
  113. }
  114. .btn-important {
  115. font-weight: bold;
  116. }
  117. /*=== Navigation */
  118. .nav-list .nav-header,
  119. .nav-list .item {
  120. display: block;
  121. }
  122. .nav-list .item,
  123. .nav-list .item > a {
  124. display: block;
  125. overflow: hidden;
  126. white-space: nowrap;
  127. text-overflow: ellipsis;
  128. }
  129. .nav-head {
  130. display: block;
  131. }
  132. .nav-head .item {
  133. display: inline-block;
  134. }
  135. /*=== Horizontal-list */
  136. .horizontal-list {
  137. display: table;
  138. table-layout: fixed;
  139. width: 100%;
  140. }
  141. .horizontal-list .item {
  142. display: table-cell;
  143. }
  144. /*=== Dropdown */
  145. .dropdown {
  146. position: relative;
  147. display: inline-block;
  148. }
  149. .dropdown-target {
  150. display: none;
  151. }
  152. .dropdown-menu {
  153. display: none;
  154. min-width: 200px;
  155. margin: 0;
  156. position: absolute;
  157. right: 0;
  158. background: #fff;
  159. border: 1px solid #aaa;
  160. overflow: auto;
  161. }
  162. .dropdown-header {
  163. display: block;
  164. }
  165. .dropdown-menu > .item {
  166. display: block;
  167. }
  168. .dropdown-menu > .item > a {
  169. display: block;
  170. }
  171. .dropdown-menu > .item[aria-checked="true"] > a:before {
  172. content: '✓';
  173. }
  174. .dropdown-menu .input {
  175. display: block;
  176. }
  177. .dropdown-menu .input select,
  178. .dropdown-menu .input input {
  179. display: block;
  180. max-width: 95%;
  181. }
  182. .dropdown-target:target ~ .dropdown-menu {
  183. display: block;
  184. z-index: 10;
  185. }
  186. .dropdown-close {
  187. display: inline;
  188. }
  189. .dropdown-close a {
  190. font-size: 0;
  191. position: fixed;
  192. top: 0; bottom: 0;
  193. left: 0; right: 0;
  194. display: block;
  195. z-index: -10;
  196. }
  197. .separator {
  198. display: block;
  199. height: 0;
  200. border-bottom: 1px solid #aaa;
  201. }
  202. /*=== Alerts */
  203. .alert {
  204. display: block;
  205. width: 90%;
  206. }
  207. .alert-head {
  208. margin: 0;
  209. font-weight: bold;
  210. }
  211. /*=== Icons */
  212. .icon {
  213. display: inline-block;
  214. width: 16px;
  215. height: 16px;
  216. vertical-align: middle;
  217. line-height: 16px;
  218. }
  219. /*=== Pagination */
  220. .pagination {
  221. display: table;
  222. width: 100%;
  223. table-layout: fixed;
  224. }
  225. .pagination .item {
  226. display: table-cell;
  227. }
  228. .pagination .pager-first,
  229. .pagination .pager-previous,
  230. .pagination .pager-next,
  231. .pagination .pager-last {
  232. width: 100px;
  233. }
  234. /*=== STRUCTURE */
  235. /*===============*/
  236. /*=== Header */
  237. .header {
  238. display: table;
  239. width: 100%;
  240. table-layout: fixed;
  241. }
  242. .header > .item {
  243. display: table-cell;
  244. }
  245. .header > .item.title {
  246. width: 250px;
  247. white-space: nowrap;
  248. }
  249. .header > .item.title h1 {
  250. display: inline-block;
  251. }
  252. .header > .item.title .logo {
  253. display: inline-block;
  254. height: 32px;
  255. width: 32px;
  256. vertical-align: middle;
  257. }
  258. .header > .item.configure {
  259. width: 100px;
  260. }
  261. /*=== Body */
  262. #global {
  263. display: table;
  264. width: 100%;
  265. height: 100%;
  266. table-layout: fixed;
  267. }
  268. .aside {
  269. display: table-cell;
  270. height: 100%;
  271. width: 250px;
  272. vertical-align: top;
  273. }
  274. .aside.aside_flux {
  275. background: #fff;
  276. }
  277. /*=== Aside main page (categories) */
  278. .category {
  279. display: block;
  280. overflow: hidden;
  281. white-space: nowrap;
  282. text-overflow: ellipsis;
  283. }
  284. .category .btn:not([data-unread="0"]):after {
  285. content: attr(data-unread);
  286. }
  287. /*=== Aside main page (feeds) */
  288. .categories .feeds {
  289. width: 100%;
  290. list-style: none;
  291. }
  292. .categories .feeds:not(.active) {
  293. display: none;
  294. }
  295. .categories .feeds .feed {
  296. display: inline-block;
  297. overflow: hidden;
  298. white-space: nowrap;
  299. text-overflow: ellipsis;
  300. vertical-align: middle;
  301. }
  302. .categories .feeds .feed:not([data-unread="0"]):before {
  303. content: "(" attr(data-unread) ") ";
  304. }
  305. .categories .feeds .dropdown-menu {
  306. left: 0;
  307. }
  308. .categories .feeds .item .dropdown-toggle > .icon {
  309. visibility: hidden;
  310. cursor: pointer;
  311. vertical-align: top;
  312. }
  313. .categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon,
  314. .categories .feeds .item:hover .dropdown-toggle > .icon,
  315. .categories .feeds .item.active .dropdown-toggle > .icon {
  316. visibility: visible;
  317. }
  318. /*=== New article notification */
  319. #new-article {
  320. display: none;
  321. }
  322. #new-article > a {
  323. display: block;
  324. }
  325. /*=== Day indication */
  326. .day .name {
  327. position: absolute;
  328. right: 0;
  329. width: 50%;
  330. overflow: hidden;
  331. white-space: nowrap;
  332. text-overflow: ellipsis;
  333. }
  334. /*=== Feed article header and footer */
  335. .flux_header {
  336. position: relative;
  337. }
  338. .flux .item {
  339. font-size: 0.9em;
  340. line-height: 40px;
  341. white-space: nowrap;
  342. text-overflow: ellipsis;
  343. }
  344. .flux .item.manage,
  345. .flux .item.link {
  346. width: 40px;
  347. text-align: center;
  348. }
  349. .flux .item.website {
  350. width: 200px;
  351. }
  352. .flux.not_read .item.title,
  353. .flux.current .item.title {
  354. font-weight: bold;
  355. }
  356. .flux:not(.current):hover .item.title {
  357. position: absolute;
  358. top: 0;
  359. height: auto;
  360. max-width: calc(100% - 320px);
  361. background: #fff;
  362. white-space: normal;
  363. z-index: 10;
  364. }
  365. .flux .item.title a {
  366. color: #000;
  367. text-decoration: none;
  368. }
  369. .flux .item.date {
  370. width: 145px;
  371. font-size: 0.7em;
  372. text-align: right;
  373. }
  374. .flux .item:not(.title) > a {
  375. display: block;
  376. }
  377. .flux .flux_header .item,
  378. .flux .bottom .item.date {
  379. overflow: hidden;
  380. }
  381. .flux .item.share > a {
  382. display: list-item;
  383. list-style-position: inside;
  384. list-style-type: decimal;
  385. }
  386. /*=== Feed article content */
  387. .hide_posts > .flux:not(.active) > .flux_content {
  388. display: none;
  389. }
  390. .content {
  391. min-height: 20em;
  392. margin: auto;
  393. line-height: 1.7em;
  394. word-wrap: break-word;
  395. }
  396. .content ul,
  397. .content ol,
  398. .content dd {
  399. margin: 0 0 0 15px;
  400. padding: 0 0 5px 15px;
  401. }
  402. .content pre {
  403. overflow: auto;
  404. }
  405. /*=== Notification and actualize notification */
  406. #notification {
  407. position: absolute;
  408. top: 1em;
  409. left: 25%; right: 25%;
  410. z-index: 10;
  411. background: #fff;
  412. border: 1px solid #aaa;
  413. }
  414. #notification.closed {
  415. display: none;
  416. }
  417. #notification a.close {
  418. position: absolute;
  419. right: 0;
  420. display: inline-block;
  421. }
  422. .actualizeProgress {
  423. position: fixed;
  424. top: 1em;
  425. left: 25%; right: 25%;
  426. background: #fff;
  427. border: 1px solid #aaa;
  428. }
  429. .actualizeProgress progress {
  430. max-width: 100%;
  431. }
  432. /*=== Navigation menu (for articles) */
  433. #nav_entries {
  434. position: fixed;
  435. bottom: 0; left: 0;
  436. display: table;
  437. width: 250px;
  438. background: #fff;
  439. table-layout: fixed;
  440. }
  441. #nav_entries .item {
  442. display: table-cell;
  443. width: 30%;
  444. }
  445. #nav_entries a {
  446. display: block;
  447. }
  448. /*=== "Load more" part */
  449. #load_more {
  450. min-height: 40px;
  451. }
  452. .loading {
  453. background: url("loader.gif") center center no-repeat;
  454. font-size: 0;
  455. }
  456. #bigMarkAsRead {
  457. display: block;
  458. padding: 5em 0;
  459. text-align: center;
  460. }
  461. .bigTick {
  462. font-size: 7em;
  463. line-height: 1.6em;
  464. }
  465. /*=== Statistiques */
  466. .stat table {
  467. width: 100%;
  468. }
  469. /*=== GLOBAL VIEW */
  470. /*================*/
  471. /*=== Category boxes */
  472. #stream.global .box-category {
  473. display: inline-block;
  474. width: 20em;
  475. max-width: 95%;
  476. border: 1px solid #aaa;
  477. vertical-align: top;
  478. }
  479. #stream.global .category {
  480. width: 100%;
  481. }
  482. #stream.global .btn {
  483. display: block;
  484. }
  485. #stream.global .box-category .feeds {
  486. display: block;
  487. overflow: auto;
  488. }
  489. /*=== Panel */
  490. #overlay {
  491. display: none;
  492. position: fixed;
  493. top: 0; bottom: 0;
  494. left: 0; right: 0;
  495. background: rgba(0, 0, 0, 0.9);
  496. }
  497. #panel {
  498. display: none;
  499. position: fixed;
  500. top: 1em; bottom: 1em;
  501. left: 2em; right: 2em;
  502. overflow: auto;
  503. background: #fff;
  504. }
  505. #panel .close {
  506. position: fixed;
  507. top: 0; bottom: 0;
  508. left: 0; right: 0;
  509. display: block;
  510. }
  511. #panel .close img {
  512. display: none;
  513. }
  514. /*=== DIVERS */
  515. /*===========*/
  516. .nav-login,
  517. .nav_menu .search,
  518. .nav_menu .toggle_aside {
  519. display: none;
  520. }
  521. .aside .toggle_aside {
  522. position: absolute;
  523. right: 0;
  524. display: none;
  525. width: 30px;
  526. height: 30px;
  527. line-height: 30px;
  528. text-align: center;
  529. }
  530. /*=== MOBILE */
  531. /*===========*/
  532. @media(max-width: 840px) {
  533. .header,
  534. .aside .btn-important,
  535. .aside .feeds .dropdown,
  536. .flux_header .item.website span,
  537. .item.date, .day .date {
  538. display: none;
  539. }
  540. .nav-login,
  541. #panel .close img {
  542. display: block;
  543. }
  544. .nav_menu .toggle_aside,
  545. .aside .toggle_aside,
  546. .nav_menu .search {
  547. display: inline-block;
  548. }
  549. .aside {
  550. position: fixed;
  551. top: 0; left: 0;
  552. width: 0;
  553. overflow: hidden;
  554. z-index: 10;
  555. }
  556. .aside:target {
  557. width: 80%;
  558. overflow: auto;
  559. }
  560. .flux_header .item.website {
  561. width: 40px;
  562. }
  563. .flux:not(.current):hover .item.title {
  564. position: relative;
  565. width: auto;
  566. white-space: nowrap;
  567. }
  568. #notification,
  569. .actualizeProgress {
  570. top: 0;
  571. left: 0;
  572. right: 0;
  573. }
  574. #nav_entries {
  575. width: 100%;
  576. }
  577. #panel {
  578. top: 0; bottom: 0;
  579. left: 0; right: 0;
  580. }
  581. #panel .close {
  582. top: 0; right: 0;
  583. left: auto; bottom: auto;
  584. display: inline-block;
  585. width: 30px;
  586. height: 30px;
  587. }
  588. }
  589. /*=== PRINTER */
  590. /*============*/
  591. @media print {
  592. .header, .aside,
  593. .nav_menu, .day,
  594. .flux_header,
  595. .flux_content .bottom,
  596. .pagination,
  597. #nav_entries {
  598. display: none;
  599. }
  600. html, body {
  601. background: #fff;
  602. color: #000;
  603. font-family: Serif;
  604. }
  605. #global,
  606. .flux_content {
  607. display: block !important;
  608. }
  609. .flux_content .content {
  610. width: 100% !important;
  611. }
  612. .flux_content .content a {
  613. color: #000;
  614. }
  615. .flux_content .content a:after {
  616. content: " [" attr(href) "] ";
  617. font-style: italic;
  618. }
  619. }