freshrss.css 15 KB

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