freshrss.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825
  1. /* STRUCTURE */
  2. .header {
  3. display: table;
  4. width: 100%;
  5. background: #f4f4f4;
  6. table-layout: fixed;
  7. }
  8. .header > .item {
  9. display: table-cell;
  10. padding: 10px 0;
  11. border-bottom: 1px solid #aaa;
  12. vertical-align: middle;
  13. text-align: center;
  14. }
  15. .header > .item.title {
  16. width: 250px;
  17. white-space: nowrap;
  18. }
  19. .logo {
  20. display: inline-block;
  21. font-size: 48px;
  22. height: 32px;
  23. width: 32px;
  24. padding: 10px;
  25. }
  26. .header > .item.title h1 {
  27. display: inline-block;
  28. margin: 0;
  29. text-shadow: 1px -1px 0 #ccc;
  30. }
  31. .header > .item.search input {
  32. width: 230px;
  33. transition: width 200ms linear;
  34. }
  35. .header .item.search input:focus {
  36. width: 330px;
  37. }
  38. .header > .item.configure {
  39. width: 100px;
  40. }
  41. .item a:hover {
  42. text-decoration: none;
  43. }
  44. #global {
  45. display: table;
  46. width: 100%;
  47. height: 100%;
  48. background: #fafafa;
  49. table-layout: fixed;
  50. }
  51. .aside {
  52. display: table-cell;
  53. height: 100%;
  54. width: 250px;
  55. vertical-align: top;
  56. border-right: 1px solid #aaa;
  57. background: #fff;
  58. }
  59. .aside .nav-form input {
  60. width: 180px;
  61. }
  62. .aside.aside_flux {
  63. padding: 10px 0 40px;
  64. }
  65. .aside.aside_feed .nav-form input {
  66. width: 140px;
  67. }
  68. .aside.aside_feed .nav-form .dropdown .dropdown-menu {
  69. right: -20px;
  70. }
  71. .aside.aside_feed .nav-form .dropdown .dropdown-menu:after {
  72. right: 33px;
  73. }
  74. .nav-login {
  75. display: none;
  76. }
  77. .nav_menu {
  78. width: 100%;
  79. background: #fafafa;
  80. border-bottom: 1px solid #aaa;
  81. text-align: center;
  82. padding: 5px 0;
  83. }
  84. .favicon {
  85. height: 16px;
  86. width: 16px;
  87. }
  88. .categories {
  89. margin: 0;
  90. padding: 0;
  91. text-align: center;
  92. list-style: none;
  93. }
  94. .category {
  95. display: block;
  96. width: 220px;
  97. margin: 10px auto;
  98. text-align: left;
  99. overflow: hidden;
  100. white-space: nowrap;
  101. text-overflow: ellipsis;
  102. }
  103. .category .btn:first-child {
  104. width: 195px;
  105. position: relative;
  106. }
  107. .category.stick .btn:first-child {
  108. width:160px;
  109. }
  110. .category .btn:first-child:not([data-unread="0"]):after {
  111. content: attr(data-unread);
  112. position: absolute;
  113. top: 3px; right: 3px;
  114. padding: 1px 5px;
  115. background: #ccc;
  116. color: #fff;
  117. font-size: 90%;
  118. border: 1px solid #bbb;
  119. border-radius: 5px;
  120. box-shadow: 1px 3px 3px #aaa inset;
  121. text-shadow: 0 0 1px #aaa;
  122. }
  123. .category + .feeds:not(.active) {
  124. display:none;
  125. }
  126. .categories .feeds {
  127. width: 100%;
  128. margin: 0;
  129. list-style: none;
  130. }
  131. .categories .feeds .item.active {
  132. background: #0062BE;
  133. }
  134. .categories .feeds .item.active .feed {
  135. color: #fff;
  136. }
  137. .categories .feeds .item.empty .feed {
  138. color: #e67e22;
  139. }
  140. .categories .feeds .item.empty.active {
  141. background: #e67e22;
  142. }
  143. .categories .feeds .item.empty.active .feed {
  144. color: #fff;
  145. }
  146. .categories .feeds .item.error .feed {
  147. color: #BD362F;
  148. }
  149. .categories .feeds .item .feed {
  150. display: inline-block;
  151. margin: 0;
  152. width: 165px;
  153. line-height: 35px;
  154. font-size: 90%;
  155. vertical-align: middle;
  156. text-align: left;
  157. overflow: hidden;
  158. white-space: nowrap;
  159. text-overflow: ellipsis;
  160. }
  161. .feed:not([data-unread="0"]) {
  162. font-weight:bold;
  163. }
  164. .feed:not([data-unread="0"]):before {
  165. content: "(" attr(data-unread) ") ";
  166. }
  167. .categories .feeds .dropdown-menu {
  168. left: 0;
  169. }
  170. .categories .feeds .dropdown-menu:after {
  171. left: 2px;
  172. }
  173. .categories .feeds .item .dropdown-toggle > .icon {
  174. visibility: hidden;
  175. cursor: pointer;
  176. }
  177. .categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon,
  178. .categories .feeds .item:hover .dropdown-toggle > .icon,
  179. .categories .feeds .item.active .dropdown-toggle > .icon {
  180. background-color: #fff;
  181. border-radius: 3px;
  182. visibility: visible;
  183. }
  184. .post {
  185. padding: 10px 50px;
  186. }
  187. .post form {
  188. margin: 10px 0;
  189. }
  190. .day {
  191. min-height: 50px;
  192. padding: 0 10px;
  193. font-size: 130%;
  194. font-weight: bold;
  195. line-height: 50px;
  196. background: #fff;
  197. border-top: 1px solid #aaa;
  198. border-bottom: 1px solid #aaa;
  199. }
  200. .day:first-child {
  201. border-top: none;
  202. }
  203. .day .name {
  204. position: absolute;
  205. right: 0;
  206. width: 50%;
  207. height: 1.5em;
  208. padding: 0 10px 0 0;
  209. overflow: hidden;
  210. color: #aab;
  211. font-size: 1.8em;
  212. opacity: .3;
  213. text-shadow: 0px -1px 0px #333;
  214. font-style: italic;
  215. white-space: nowrap;
  216. text-overflow: ellipsis;
  217. text-align: right;
  218. }
  219. .flux {
  220. border-left: 3px solid #aaa;
  221. background: #fafafa;
  222. }
  223. .flux:hover {
  224. background: #fff;
  225. }
  226. .flux.active {
  227. border-left: 3px solid #0062BE;
  228. background: #fff;
  229. }
  230. .flux.not_read {
  231. border-left: 3px solid #FF5300;
  232. background: #FFF3ED;
  233. }
  234. .flux.favorite {
  235. border-left: 3px solid #FFC300;
  236. background: #FFF6DA;
  237. }
  238. .flux_header {
  239. height: 25px;
  240. font-size: 12px;
  241. line-height: 25px;
  242. border-top: 1px solid #ddd;
  243. }
  244. .item.manage {
  245. width: 40px;
  246. white-space: nowrap;
  247. text-align: center;
  248. }
  249. .flux_header .item.website {
  250. width: 200px;
  251. overflow: hidden;
  252. white-space: nowrap;
  253. text-overflow: ellipsis;
  254. line-height: 40px;
  255. }
  256. .flux_header .item.website .favicon {
  257. padding: 5px;
  258. }
  259. .flux_header .item.website a {
  260. display: block;
  261. height: 40px;
  262. }
  263. .flux_header .item.title {
  264. overflow: hidden;
  265. white-space: nowrap;
  266. text-overflow: ellipsis;
  267. cursor: pointer;
  268. }
  269. .flux_header .item.title a {
  270. color: #000;
  271. outline: none;
  272. }
  273. .flux.current .item.title a {
  274. text-decoration: underline;
  275. }
  276. .flux.not_read .flux_header .item.title {
  277. font-weight: bold;
  278. }
  279. .item.date {
  280. width: 200px;
  281. overflow: hidden;
  282. padding:0 5px 0 0;
  283. white-space: nowrap;
  284. text-overflow: ellipsis;
  285. text-align: right;
  286. font-size: 10px;
  287. color: #666;
  288. cursor: pointer;
  289. }
  290. .link {
  291. width: 40px;
  292. text-align: center;
  293. }
  294. #stream.reader .flux {
  295. padding: 0 0 30px;
  296. border: none;
  297. background: #f0f0f0;
  298. color: #333;
  299. }
  300. #stream.reader .flux .author {
  301. margin: 0 0 10px;
  302. font-size: 90%;
  303. color: #666;
  304. }
  305. #stream.global {
  306. text-align: center;
  307. }
  308. #stream.global .box-category {
  309. display: inline-block;
  310. width: 280px;
  311. margin: 20px 10px;
  312. vertical-align: top;
  313. background: #fff;
  314. border: 1px solid #aaa;
  315. border-radius: 5px;
  316. text-align: left;
  317. box-shadow: 0 0 5px #bbb;
  318. }
  319. #stream.global .category {
  320. width: 100%;
  321. margin: 0;
  322. }
  323. #stream.global .btn {
  324. display: block;
  325. width: auto;
  326. height: 35px;
  327. margin: 0;
  328. padding: 0 10px;
  329. background: #eee;
  330. border: none;
  331. border-bottom: 1px solid #aaa;
  332. border-radius: 5px 5px 0 0;
  333. line-height: 35px;
  334. font-size: 120%;
  335. }
  336. #stream.global .btn:not([data-unread="0"]) {
  337. font-weight:bold;
  338. }
  339. #stream.global .btn:first-child:not([data-unread="0"]):after {
  340. top: 0; right: 5px;
  341. border: 0;
  342. background: none;
  343. color: #666;
  344. font-weight: bold;
  345. box-shadow: none;
  346. }
  347. #stream.global .box-category .feeds {
  348. display: block;
  349. max-height: 250px;
  350. margin: 0;
  351. list-style: none;
  352. overflow: auto;
  353. }
  354. #stream.global .box-category .feeds .item {
  355. padding: 2px 10px;
  356. font-size: 90%;
  357. }
  358. #stream.global .box-category .feed {
  359. width: 220px;
  360. }
  361. .content {
  362. min-height: 300px;
  363. max-width: 550px;
  364. margin: 0 auto;
  365. padding: 20px 10px;
  366. line-height: 170%;
  367. word-wrap: break-word;
  368. }
  369. .content .title {
  370. margin: 0 0 5px;
  371. }
  372. .content h1, .content h2, .content h3 {
  373. margin: 20px 0 5px;
  374. }
  375. .content p {
  376. margin: 0 0 20px;
  377. }
  378. img.big {
  379. display: block;
  380. margin: 10px auto;
  381. }
  382. figure img.big {
  383. margin: 0;
  384. }
  385. .content hr {
  386. margin: 30px 0;
  387. height: 1px;
  388. background: #ddd;
  389. border: 0;
  390. }
  391. .content pre {
  392. margin: 10px auto;
  393. padding: 10px;
  394. overflow: auto;
  395. background: #000;
  396. color: #fff;
  397. font-size: 110%;
  398. }
  399. .content q, .content blockquote {
  400. display: block;
  401. margin: 5px 0;
  402. padding: 5px 20px;
  403. font-style: italic;
  404. border-left: 4px solid #ccc;
  405. color: #666;
  406. }
  407. .content blockquote p {
  408. margin: 0;
  409. }
  410. #panel {
  411. display: none;
  412. position: fixed;
  413. top: 10px; bottom: 10px;
  414. left: 100px; right: 100px;
  415. overflow: auto;
  416. background: #fff;
  417. border: 1px solid #95a5a6;
  418. border-radius: 5px;
  419. }
  420. #panel .close {
  421. position: fixed;
  422. top: 10px; right: 0;
  423. display: inline-block;
  424. width: 26px;
  425. height: 26px;
  426. margin: 0 10px 0 0;
  427. border: 1px solid #ccc;
  428. border-radius: 20px;
  429. text-align: center;
  430. line-height: 26px;
  431. background: #fff;
  432. }
  433. #overlay {
  434. display: none;
  435. position: fixed;
  436. top: 0; bottom: 0;
  437. left: 0; right: 0;
  438. background: rgba(0, 0, 0, 0.9);
  439. }
  440. .flux_content .bottom {
  441. font-size: 90%;
  442. text-align: center;
  443. }
  444. .hide_posts > :not(.active) > .flux_content {
  445. display:none;
  446. }
  447. /*** PAGINATION ***/
  448. .pagination {
  449. display: table;
  450. width: 100%;
  451. margin: 0;
  452. background: #fafafa;
  453. text-align: center;
  454. color: #333;
  455. font-size: 80%;
  456. line-height: 200%;
  457. table-layout: fixed;
  458. }
  459. .pagination .item {
  460. display: table-cell;
  461. line-height: 40px;
  462. }
  463. .pagination .item.pager-current {
  464. font-weight: bold;
  465. font-size: 140%;
  466. }
  467. .pagination .pager-first,
  468. .pagination .pager-previous,
  469. .pagination .pager-next,
  470. .pagination .pager-last {
  471. width: 100px;
  472. }
  473. .pagination .item a {
  474. display: block;
  475. color: #333;
  476. font-style: italic;
  477. }
  478. .pagination:first-child .item {
  479. border-bottom: 1px solid #aaa;
  480. }
  481. .pagination:last-child .item {
  482. border-top: 1px solid #aaa;
  483. }
  484. #nav_entries {
  485. display: table;
  486. width: 250px;
  487. height: 40px;
  488. position: fixed;
  489. bottom: 0;
  490. left: 0;
  491. margin: 0;
  492. background: #fff;
  493. border-top: 1px solid #ddd;
  494. text-align: center;
  495. line-height: 40px;
  496. table-layout: fixed;
  497. }
  498. #nav_entries .item {
  499. display: table-cell;
  500. width: 30%;
  501. }
  502. #nav_entries a {
  503. display: block;
  504. }
  505. #nav_entries .i_up {
  506. margin: 5px 0 0;
  507. vertical-align: top;
  508. }
  509. .loading {
  510. background: url("loader.gif") center center no-repeat;
  511. font-size: 0;
  512. }
  513. #bigMarkAsRead {
  514. display: block;
  515. font-style: normal;
  516. padding: 32px 0 64px 0;
  517. text-align: center;
  518. text-decoration: none;
  519. text-shadow: 0 -1px 0 #aaa;
  520. }
  521. #bigMarkAsRead:hover {
  522. background: #333;
  523. color: #fff;
  524. }
  525. .bigTick {
  526. font-size: 72pt;
  527. line-height: 1.6em;
  528. }
  529. /*** NOTIFICATION ***/
  530. .notification {
  531. position: fixed;
  532. top: 10px;
  533. left: 25%; right: 25%;
  534. min-height: 30px;
  535. padding: 10px;
  536. line-height: 30px;
  537. text-align: center;
  538. border-radius: 5px;
  539. box-shadow: 0 0 5px #666;
  540. background: #ddd;
  541. color: #666;
  542. font-weight: bold;
  543. z-index: 10;
  544. }
  545. .notification.good {
  546. background: #f4f899;
  547. }
  548. .notification.bad {
  549. background: #f4a899;
  550. }
  551. .notification a.close {
  552. display: inline-block;
  553. width: 16px;
  554. height: 16px;
  555. float: right;
  556. margin: -20px -20px 0 0;
  557. padding: 5px;
  558. background: #fff;
  559. border-radius: 50px;
  560. border: 1px solid #aaa;
  561. line-height: 16px;
  562. }
  563. .toggle_aside, .btn.toggle_aside {
  564. display: none;
  565. }
  566. .actualizeProgress {
  567. position: fixed;
  568. top: 10px;
  569. left: 25%; right: 25%;
  570. padding: 5px;
  571. background: #fff;
  572. text-align: center;
  573. border: 1px solid #ddd;
  574. border-radius: 5px;
  575. }
  576. .actualizeProgress progress {
  577. max-width: 100%;
  578. vertical-align: middle;
  579. }
  580. .actualizeProgress .progress {
  581. color: #999;
  582. font-size: 90%;
  583. vertical-align: middle;
  584. }
  585. .logs {
  586. border: 1px solid #aaa;
  587. }
  588. .log {
  589. padding: 5px 2%;
  590. overflow: auto;
  591. background: #fafafa;
  592. border-bottom: 1px solid #999;
  593. color: #333;
  594. font-size: 90%;
  595. }
  596. .log .date {
  597. display: block;
  598. }
  599. .log.error {
  600. background: #fdd;
  601. color: #844;
  602. }
  603. .log.warning {
  604. background: #ffe;
  605. color: #c95;
  606. }
  607. .log.notice {
  608. background: #f4f4f4;
  609. color: #aaa;
  610. }
  611. .log.debug {
  612. background: #111;
  613. color: #eee;
  614. }
  615. .form-group table {
  616. border-collapse:collapse;
  617. margin:10px 0 0 220px;
  618. text-align:center;
  619. }
  620. .form-group tr, .form-group th, .form-group td {
  621. border:1px solid #DDD;
  622. font-weight:normal;
  623. padding:.5em;
  624. }
  625. @media(max-width: 840px) {
  626. .header,
  627. .aside .btn-important,
  628. .aside .feeds .dropdown,
  629. .flux_header .item.website span,
  630. .item.date {
  631. display: none;
  632. }
  633. .flux_header .item.website {
  634. width: 40px;
  635. text-align: center;
  636. }
  637. .flux_header .item.website .favicon {
  638. padding: 12px;
  639. }
  640. .nav-login {
  641. display: block;
  642. }
  643. .content {
  644. font-size: 120%;
  645. }
  646. .pagination {
  647. margin: 0 0 40px;
  648. }
  649. .pagination .pager-previous, .pagination .pager-next {
  650. width: 100px;
  651. }
  652. .toggle_aside, .btn.toggle_aside {
  653. display: inline-block;
  654. }
  655. .aside {
  656. position: fixed;
  657. top: 0; left: 0;
  658. width: 0;
  659. overflow: hidden;
  660. border-right: none;
  661. z-index: 10;
  662. transition: width 200ms linear;
  663. }
  664. .aside.aside_flux {
  665. padding: 10px 0 0;
  666. }
  667. .aside:target {
  668. width: 80%;
  669. border-right: 1px solid #aaa;
  670. overflow: auto;
  671. }
  672. .aside .toggle_aside {
  673. position: absolute;
  674. right: 0;
  675. display: inline-block;
  676. width: 26px;
  677. height: 26px;
  678. margin: 0 10px 0 0;
  679. border: 1px solid #ccc;
  680. border-radius: 20px;
  681. text-align: center;
  682. line-height: 26px;
  683. }
  684. .aside .categories {
  685. margin: 30px 0;
  686. }
  687. #nav_entries {
  688. width: 100%;
  689. }
  690. .nav_menu .btn {
  691. margin: 5px 10px;
  692. }
  693. .nav_menu .stick {
  694. margin: 0 10px;
  695. }
  696. .nav_menu .stick .btn {
  697. margin: 5px 0;
  698. }
  699. #panel {
  700. left: 5px; right: 5px;
  701. }
  702. .day .date {
  703. display: none;
  704. }
  705. .day .name {
  706. height: 2.6em;
  707. font-size: 1em;
  708. text-shadow: none;
  709. }
  710. .notification,
  711. .actualizeProgress {
  712. left: 10px;
  713. right: 10px;
  714. }
  715. }
  716. /*** FALLBACK ***/
  717. .btn {
  718. background: #fff;
  719. background: -moz-linear-gradient(top, #fff 0%, #eee 100%);
  720. background: -webkit-linear-gradient(top, #fff 0%, #eee 100%);
  721. background: -o-linear-gradient(top, #fff 0%, #eee 100%);
  722. background: -ms-linear-gradient(top, #fff 0%, #eee 100%);
  723. }
  724. .btn:hover {
  725. background: #f0f0f0;
  726. background: -moz-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%);
  727. background: -webkit-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%);
  728. background: -o-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%);
  729. background: -ms-linear-gradient(top, #f8f8f8 0%, #f0f0f0 100%);
  730. }
  731. .btn-important {
  732. background: #0084CC;
  733. background: -moz-linear-gradient(top, #0084CC 0%, #0045CC 100%);
  734. background: -webkit-linear-gradient(top, #0084CC 0%, #0045CC 100%);
  735. background: -o-linear-gradient(top, #0084CC 0%, #0045CC 100%);
  736. background: -ms-linear-gradient(top, #0084CC 0%, #0045CC 100%);
  737. }
  738. .btn-important:hover {
  739. background: -moz-linear-gradient(top, #0066CC 0%, #0045CC 100%);
  740. background: -webkit-linear-gradient(top, #0066CC 0%, #0045CC 100%);
  741. background: -o-linear-gradient(top, #0066CC 0%, #0045CC 100%);
  742. background: -ms-linear-gradient(top, #0066CC 0%, #0045CC 100%);
  743. }
  744. .btn-attention {
  745. background: #E95B57;
  746. background: -moz-linear-gradient(top, #E95B57 0%, #BD362F 100%);
  747. background: -webkit-linear-gradient(top, #E95B57 0%, #BD362F 100%);
  748. background: -o-linear-gradient(top, #E95B57 0%, #BD362F 100%);
  749. background: -ms-linear-gradient(top, #E95B57 0%, #BD362F 100%);
  750. }
  751. .btn-attention:hover {
  752. background: -moz-linear-gradient(top, #D14641 0%, #BD362F 100%);
  753. background: -webkit-linear-gradient(top, #D14641 0%, #BD362F 100%);
  754. background: -o-linear-gradient(top, #D14641 0%, #BD362F 100%);
  755. background: -ms-linear-gradient(top, #D14641 0%, #BD362F 100%);
  756. }
  757. .dropdown-menu:after {
  758. -moz-transform: rotate(45deg);
  759. -webkit-transform: rotate(45deg);
  760. -ms-transform: rotate(45deg);
  761. }
  762. .nav-head {
  763. background: #fff;
  764. background: -moz-linear-gradient(top, #fff 0%, #f0f0f0 100%);
  765. background: -webkit-linear-gradient(top, #fff 0%, #f0f0f0 100%);
  766. background: -o-linear-gradient(top, #fff 0%, #f0f0f0 100%);
  767. background: -ms-linear-gradient(top, #fff 0%, #f0f0f0 100%);
  768. }
  769. .header > .item.search input {
  770. -moz-transition: width 200ms linear;
  771. -webkit-transition: width 200ms linear;
  772. -o-transition: width 200ms linear;
  773. -ms-transition: width 200ms linear;
  774. }
  775. @media(max-width: 840px) {
  776. .aside {
  777. -moz-transition: width 200ms linear;
  778. -webkit-transition: width 200ms linear;
  779. -o-transition: width 200ms linear;
  780. -ms-transition: width 200ms linear;
  781. }
  782. }