From d9fa43b2638a75102d91a5bb706ce32a80642515 Mon Sep 17 00:00:00 2001 From: Hannes Mannerheim Date: Sat, 23 Nov 2013 00:31:04 +0100 Subject: [PATCH] better responsive design, etc --- README.md | 16 +- css/{1.css => 4.css} | 988 ++- img/mobile-sprite-2x.png | Bin 0 -> 24163 bytes index.php | 117 +- ...jax-functions-1.js => ajax-functions-4.js} | 0 js/codemirror.3.14.js | 5715 +++++++++++++++++ js/{dom-functions-1.js => dom-functions-4.js} | 467 +- js/{lan-1.js => lan-4.js} | 332 +- ...isc-functions-1.js => misc-functions-4.js} | 42 +- js/{qvitter-1.js => qvitter-4.js} | 546 +- 10 files changed, 7694 insertions(+), 529 deletions(-) rename css/{1.css => 4.css} (81%) create mode 100644 img/mobile-sprite-2x.png rename js/{ajax-functions-1.js => ajax-functions-4.js} (100%) create mode 100644 js/codemirror.3.14.js rename js/{dom-functions-1.js => dom-functions-4.js} (77%) rename js/{lan-1.js => lan-4.js} (68%) rename js/{misc-functions-1.js => misc-functions-4.js} (94%) rename js/{qvitter-1.js => qvitter-4.js} (71%) diff --git a/README.md b/README.md index 33e8780..463d737 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ Qvitter ========================================== * Author: Hannes Mannerheim () -* Last mod.: September, 2013 -* Version: 1 +* Last mod.: November, 2013 +* Version: 2 * GitHub: Qvitter is free software: you can redistribute it and / or modify it @@ -28,9 +28,13 @@ Setup 3. You should really put some security-by-obscurity-stuff in the registration process. E-mail h@nnesmannerhe.im if you want to copy mine. -(Qvitter uses a slightly modified statusnet API. Some things will not work +Qvitter uses a slightly modified statusnet API. Some things will not work if you connect to a site with standard API. Files are included if you want -to Qvitter-mod your Statusnet API.) +to Qvitter-mod your Statusnet API. + +Recently MMN-o has implemented these API-changes in GNU Social. The API changes should +only be needed if you are running Statusnet 1.1.1, not if you have a recent GNU Social +version. TODO @@ -48,8 +52,6 @@ TODO 7. Settings (e.g. don't show replies to people I don't follow) -8. Syntax-coloring in queet-box, maybe codemirror (worked nicely for ltr but not rtl text when I tried it) - 9. Image/file upload, drag-n-drop! 10. Search users @@ -58,8 +60,6 @@ TODO 12. Filters (hide queets containing strings, e.g. mute users) -13. Better responsive design - 14. More languages 15. Queet-page diff --git a/css/1.css b/css/4.css similarity index 81% rename from css/1.css rename to css/4.css index 48b3518..177ee02 100644 --- a/css/1.css +++ b/css/4.css @@ -68,6 +68,10 @@ button.icon.nav-search { background-image: url("../img/sprite_bgs.png"); } +#top-compose { + display:none; + } + #logo { background-image:url("../img/logo.png"); } @@ -342,12 +346,18 @@ body.rtl .dropdown-menu li:not(.dropdown-caret) { } .dropdown-menu li:not(.dropdown-caret) a:hover { background-color: #2271A9; - background: -moz-linear-gradient(top, #2f7eb6 0px, #2271a9 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#2f7eb6), color-stop(100%,#2271a9)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* IE10+ */ - background: linear-gradient(to bottom, #2f7eb6 0px,#2271a9 100%); /* W3C */ + background: -moz-linear-gradient(top, #2f7eb6 0px, #2271a9 100%); /* FF3.6+ */ + + background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#2f7eb6), color-stop(100%,#2271a9)); /* Chrome,Safari4+ */ + + background: -webkit-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* Chrome10+,Safari5.1+ */ + + background: -o-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* Opera 11.10+ */ + + background: -ms-linear-gradient(top, #2f7eb6 0px,#2271a9 100%); /* IE10+ */ + + background: linear-gradient(to bottom, #2f7eb6 0px,#2271a9 100%); /* W3C */ + background-repeat: repeat-x; color: #FFFFFF; text-decoration: none; @@ -441,13 +451,13 @@ body.rtl .front-welcome-text { font-size: 14px; color: #333333; line-height: 18px; - background: #ffffff; /* Old browsers */ - background: -moz-linear-gradient(top, #ffffff 0px, #dddddd 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#ffffff), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* IE10+ */ - background: linear-gradient(to bottom, #ffffff 0px,#dddddd 100%); /* W3C */ + background: #ffffff; /* Old browsers */ + background: -moz-linear-gradient(top, #ffffff 0px, #dddddd 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#ffffff), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* IE10+ */ + background: linear-gradient(to bottom, #ffffff 0px,#dddddd 100%); /* W3C */ background-clip: border-box; background-origin: padding-box; background-size: auto auto; @@ -476,7 +486,11 @@ body.rtl .front-welcome-text { margin-top:123px; height: 206px; } - +.front-signup:not(#popup-signup) { + height: auto; + padding-bottom: 53px; + } + .front-signup input, #login-content input#username, #login-content input#password { @@ -598,12 +612,18 @@ button#submit-login { font-size: 13px; font-weight: 700; color: #FFFFFF; - line-height: 18px; - background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */ + line-height: 18px; + + background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */ + + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */ + + background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */ + + background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */ + + background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */ + background: linear-gradient(to bottom, #33bcef 0%,#019ad2 100%); /* W3C */ background-repeat: repeat-x; height: 30px; @@ -645,12 +665,18 @@ button#submit-login { cursor: pointer; text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px; } -button#submit-login:hover { - background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */ +button#submit-login:hover { + + background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */ + + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */ + + background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */ + + background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */ + + background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */ + background: linear-gradient(to bottom, #2daddc 0%,#0271bf 100%); /* W3C */ background-repeat: repeat-x; border-color:#096eb3; @@ -865,15 +891,16 @@ button#submit-login:hover { overflow:hidden; opacity:0; } -.menu-container div:first-child { +.menu-container a:first-child { border-top-left-radius: 6px; border-top-right-radius: 6px; } -.menu-container div:last-child { +.menu-container a:last-child { border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; } -.menu-container div { +.menu-container a { + display:block; cursor:pointer; background-color: #FFFFFF; text-decoration: none; @@ -884,7 +911,7 @@ button#submit-login:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset; font-size: 14px; } -.menu-container div .chev-right { +.menu-container a .chev-right { background-repeat: no-repeat; display: block; height: 13px; @@ -894,7 +921,7 @@ button#submit-login:hover { right: 12px; top: 9px; } -.menu-container div .close-right { +.menu-container a .close-right { background-repeat: no-repeat; display: none; height: 9px; @@ -903,24 +930,27 @@ button#submit-login:hover { margin-left:5px; margin-top:4px; } -.menu-container div:hover { +.menu-container a:hover { background-color:#fff; } -.menu-container div:hover .chev-right { +.menu-container a:hover .chev-right { background-position: 0 -160px; } -.menu-container div:hover .close-right { +.menu-container a:hover .close-right { display:inline-block; } -.menu-container div .close-right:hover { +.menu-container a .close-right:hover { background-position: -40px -510px; } -.menu-container div.current { +.menu-container a.current { background-color:#fff; font-weight:bold; color:#333; } -.menu-container div.current .chev-right { +.menu-container a.my-timeline { + display:none; + } +.menu-container a.current .chev-right { background-position: 0 -160px; } #history-container { @@ -963,6 +993,18 @@ button#submit-login:hover { transition: background 0.2s linear 0s; padding-right: 5px; } + +#settings-container #moresettings { + cursor: pointer; + display: block; + font-size: 13px; + margin-left: 130px; + margin-top: 10px; + text-align: left; + } +#settings-container #moresettings:hover { + text-decoration:underline; + } #feed { display:none; @@ -1292,13 +1334,19 @@ body.rtl .view-more-container-bottom { direction:rtl; } color: #333333; line-height: 18px; } -.stream-item-header .screen-name { +.stream-item-header .screen-name, +.stream-item-header .reply-to, +.stream-item-header .in-groups { font-family: "Helvetica Neue",Arial,sans-serif; font-size: 12px; color: #999999; line-height: 18px; direction: ltr; } +.stream-item-header .addressees span:first-child:before { + content:" ▸ "; + font-style:normal; + } .stream-item-header .created-at { font-family: "Helvetica Neue",Arial,sans-serif; font-size: 12px; @@ -1349,6 +1397,17 @@ body.rtl .view-more-container-bottom { direction:rtl; } display: block; background-position: -60px -450px; } + +.stream-item > .queet.rtl .dogear { + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; + right:auto; + left:0; + } .queet-text { font-family:"Helvetica Neue",Arial,sans-serif; @@ -1539,7 +1598,7 @@ ul.queet-actions li .icon.sm-fav { .queet.rtl .account-group > .screen-name { direction: rtl; text-align:right; - } + } .queet.rtl .created-at { float:left; } @@ -1768,6 +1827,10 @@ ul.stats .avatar-row .avatar { font-size: 12px; line-height: 24px; } +.longdate a, +.longdate a:visited { + color:#999999; + } .permalink-link { color: #999999; @@ -1782,6 +1845,11 @@ ul.stats .avatar-row .avatar { background: none repeat scroll 0 0 #F6F6F6; border-top:1px solid #DDDDDD; } + +.inline-reply-queetbox .CodeMirror { + width: 420px; + } + .queet-box-template { font-family: "Helvetica Neue",Arial,​sans-serif; font-size: 13px; @@ -1841,7 +1909,12 @@ ul.stats .avatar-row .avatar { opacity:0.5; } -.queet-box-template:focus { border-color: #56B4EF; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 0 8px rgba(82, 168, 236, 0.6); color: #333333; outline: 0 none; +.queet-box-template:focus { + border-color: #56B4EF; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 0 8px rgba(82, 168, 236, 0.6); + color: #333333; + outline: 0 none; + } .queet-box-template.active { height:80px; @@ -2181,12 +2254,18 @@ ul.stats li:hover a strong, font-size: 13px; font-weight: 700; color: #FFFFFF; - line-height: 16px; - background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */ + line-height: 16px; + + background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */ + + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */ + + background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */ + + background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */ + + background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */ + background: linear-gradient(to bottom, #33bcef 0%,#019ad2 100%); /* W3C */ background-repeat: repeat-x; margin-top: 0px; @@ -2238,12 +2317,18 @@ button.signup-btn.disabled, text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); } #queet-toolbar button.enabled:hover, -.queet-toolbar button.enabled:hover { - background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */ +.queet-toolbar button.enabled:hover { + + background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */ + + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */ + + background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */ + + background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */ + + background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */ + background: linear-gradient(to bottom, #2daddc 0%,#0271bf 100%); /* W3C */ background-repeat: repeat-x; border-color:#096eb3; @@ -2456,6 +2541,7 @@ div.clearfix { } .member-button, +.external-follow-button, .follow-button { font-family: "Helvetica Neue",Arial,sans-serif; margin: 0; @@ -2481,14 +2567,17 @@ div.clearfix { padding: 0; } .member-button.disabled, +.external-follow-button.disabled, .follow-button.disabled { color:#ccc; } .member-button.disabled i, +.external-follow-button.disabled i, .follow-button.disabled i { opacity:0.2; } .member-button:not(.disabled):not(.member):hover, +.external-follow-button:not(.disabled):not(.following):hover, .follow-button:not(.disabled):not(.following):hover { background-color: #D8D8D8; background: -moz-linear-gradient(top, rgba(248,248,248,1) 0%, rgba(216,216,216,1) 100%); @@ -2501,6 +2590,7 @@ div.clearfix { text-decoration: none; } .member-button:not(.disabled):not(.member):active, +.external-follow-button:not(.disabled):not(.following):active, .follow-button:not(.disabled):not(.following):active { background: none; background-color: #D8D8D8; @@ -2508,6 +2598,7 @@ div.clearfix { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) inset, 0 1px 0 rgba(255, 255, 255, 0.5); } .member-button .button-text, +.external-follow-button .button-text, .follow-button .button-text { display:none; font-family: "Helvetica Neue",Arial,sans-serif; @@ -2516,12 +2607,14 @@ div.clearfix { text-align: center; } .member-button .join-text, +.external-follow-button .follow-text, .follow-button .follow-text { padding: 5px 20px 5px 60px; text-align:right; min-width: 0; } .member-button .join-text i, +.external-follow-button .follow-text i, .follow-button .follow-text i { background-image: url("../img/button_birds.png"); display: block; @@ -2532,6 +2625,7 @@ div.clearfix { width: 40px; } .member-button.member, +.external-follow-button.following, .follow-button.following { background-color: #019AD2; background: -moz-linear-gradient(top, rgba(51,188,239,1) 0%, rgba(1,154,210,1) 100%); @@ -2547,6 +2641,7 @@ div.clearfix { text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); } .member-button.member:hover, +.external-follow-button.following:hover, .follow-button.following:hover { background-color: #c43c35; background: -moz-linear-gradient(top, rgba(238,95,91,1) 0%, rgba(196,60,53,1) 100%); @@ -2559,22 +2654,27 @@ div.clearfix { border-color: #a93730 #a93730 #952f2a; } .member-button .join-text, +.external-follow-button .follow-text, .follow-button .follow-text { display:block; } .member-button.member .join-text, +.external-follow-button.following .follow-text, .follow-button.following .follow-text { display:none; } .member-button.member .ismember-text, +.external-follow-button.following .following-text, .follow-button.following .following-text { display:block; } .member-button.member:hover .ismember-text, +.external-follow-button.following:hover .following-text, .follow-button.following:hover .following-text { display:none; } .member-button.member:hover .leave-text, +.external-follow-button.following:hover .unfollow-text, .follow-button.following:hover .unfollow-text { display:block; } @@ -2775,8 +2875,9 @@ body.rtl .modal-body .inline-reply-queetbox { direction:rtl; text-align:right; } -.modal-body .inline-reply-queetbox .queet-box-template { - width:478px; +.modal-body .inline-reply-queetbox .queet-box-template, +.modal-body .inline-reply-queetbox .CodeMirror { + width:auto; } .modal-body .queet { background-color:#f5f5f5; @@ -2875,6 +2976,35 @@ body.rtl .modal-footer button { height: 20px; } +#popup-external-follow .modal-body { + padding:20px; + } +#popup-external-follow input { + background-color: #FFFFFF; + border-color: #CCCCCC; + border-image: none; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 1px 0 #EEEEEE inset, 0 1px 0 #FFFFFF; + color: #000000; + display: block; + font-family: Arial,​sans-serif; + font-size: 13px; + height: 20px; + line-height: 15.4333px; + margin: 0; + outline: 0 none #000000; + padding: 4px; + transition: background 0.2s cubic-bezier(0, 0, 1, 1) 0s; + width:80%; + } +#popup-external-follow input:focus { + border: 1px solid #56B4EF; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 0 8px rgba(82, 168, 236, 0.6); + } + + /* RTL @@ -3068,7 +3198,7 @@ body.rtl #settingslink .caret { margin-right:25px; top:13px; } -body.rtl .menu-container div .chev-right { +body.rtl .menu-container a .chev-right { right:auto; left:12px; -webkit-transform: rotate(180deg); @@ -3077,10 +3207,10 @@ body.rtl .menu-container div .chev-right { -o-transform: rotate(180deg); transform: rotate(180deg); } -body.rtl .menu-container div .close-right { +body.rtl .menu-container a .close-right { margin-right:5px; } -body.rtl .menu-container div { +body.rtl .menu-container a { direction:rtl; } @@ -3110,6 +3240,263 @@ body.rtl #feed-header-inner h2 { font-family: Tahoma,Arial,sans-serif !important; } +body.rtl .CodeMirror-wrap { + direction: rtl; + } + +/* CODEMIRROR BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + background-color: #FFFFFF; + border-color: #CCCCCC; + border-image: none; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 1px 0 rgba(255, 255, 255, 0.075); + color: #333333; + display: block; + font-family: "Helvetica Neue",Arial,​sans-serif; + font-size: 13px; + height: 80px; + line-height: 18px; + margin: 0 0 8px; + outline: 0 none #333333; + overflow-x: hidden; + overflow-y: auto; + padding: 6px 8px 5px; + text-shadow: none; + vertical-align: top; + width: 258px; + word-wrap: break-word; + } + +.CodeMirror-focused { + border-color: #56B4EF; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 0 8px rgba(82, 168, 236, 0.6); + color: #333333; + outline: 0 none; + } + +body.rtl .CodeMirror { + font-family: Tahoma,Arial,sans-serif; + } + +.CodeMirror-scroll { + /* Set scrolling behaviour here */ + overflow: auto; +} + +/* PADDING */ + +.CodeMirror-lines { + line-height:18px; + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; +} + +/* CURSOR */ + +.CodeMirror div.CodeMirror-cursor { + border-left: 1px solid black; + z-index: 3; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid #000; +} +.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { + width: auto; + border: 0; + background: #7e7; + z-index: 1; +} +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {} + +.cm-tab { display: inline-block; } + +/* DEFAULT THEME */ + +.cm-mention, +.cm-tag, +.cm-group, +.cm-url, +.cm-email { + color:#0084B4 + } + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + line-height: 1; + position: relative; + overflow: hidden; + background: white; + color: black; +} + +.CodeMirror-scroll { + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; padding-right: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actuall scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + padding-bottom: 30px; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + padding-bottom: 30px; + margin-bottom: -32px; + display: inline-block; + /* Hack to make IE7 behave */ + *zoom:1; + *display:inline; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} + +.CodeMirror-lines { + cursor: text; +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto; +} + +.CodeMirror-widget { +} + +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; height: 0px; + overflow: hidden; + visibility: hidden; +} +.CodeMirror-measure pre { position: static; } + +.CodeMirror div.CodeMirror-cursor { + position: absolute; + visibility: hidden; + border-right: none; + width: 0; +} +.CodeMirror-focused div.CodeMirror-cursor { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} +.CodeMirror-wrap { + display:none; + } + + + /* =Responsive Structure ----------------------------------------------- */ @@ -3131,7 +3518,132 @@ body.rtl #feed-header-inner h2 { } } -@media (max-width: 866px) { +@media (max-width: 866px) { + + + .language-dropdown { + width:170px; + right:50%; + margin-right:-85px; + margin-top:5px; + } + + .language-dropdown a.dropdown-toggle { + color:#fff; + } + .language-dropdown a.dropdown-toggle small, + .language-dropdown a.dropdown-toggle span { + font-size:14px; + } + .language-dropdown .dropdown-toggle .caret { + border-top-color:#fff; } + + .front-welcome-text { + opacity:0; + height:250px; + overflow:hidden; + } + #page-container { + margin-top:69px; + background-color:transparent; + } + + #login-content, + .front-signup { + left: 50%; + margin-left: -150px; + z-index:1; + margin-top:10px; + } + .front-signup { + margin-top:130px; + } + + #feed, + .profile-card { + position:relative; + z-index:10; + } + + #search-query-hint { + display:none; + } + + #search-query { + background-image: url("../img/mobile-sprite-2x.png"); + background-position: -100px -4px; + background-size: 800px 600px; + border: 0 none; + border-radius: 0; + box-shadow: none; + color: #444444; + display: block; + font-family: "Helvetica Neue",Arial,sans-serif; + font-size: 12px; + height: 40px; + line-height: 1; + margin: 0; + outline: 0 none; + padding: 6px 27px 6px 12px; + position: fixed; + right: 60px; + top: 0; + transition: all 0.2s ease-in-out 0s; + width: 25px; + z-index: 2; + } + + #search-query:focus { + right:auto; + left:70px; + z-index:101; + display:block; + width:100%; + font-size:25px; + line-height:40px; + background-color: #FFFFFF; + box-shadow: none; + color: #666666; + text-shadow: none; + } + + #search-query::-webkit-input-placeholder { + opacity:0; + font-size:0; + } + + #search-query:-moz-placeholder { /* Firefox 18- */ + opacity:0; + font-size:0; + } + + #search-query::-moz-placeholder { /* Firefox 19+ */ + opacity:0; + font-size:0; + } + + #search-query:-ms-input-placeholder { + opacity:0; + font-size:0; + } + + + #top-compose { + background-image: url("../img/mobile-sprite-2x.png"); + background-position: -55px 0; + background-size: 800px 600px; + cursor: pointer; + display: block; + height: 49px; + margin-top: -3px; + position: fixed; + right: 10px; + width: 49px; + z-index: 100; + } + #top-compose.hidden { + display:none; + } #page-container { width: 520px; @@ -3169,8 +3681,6 @@ body.rtl #feed-header-inner h2 { #queet-box[contenteditable="true"] { width:478px; } - } -@media (max-width: 566px) { body { overflow-x:hidden; @@ -3217,6 +3727,14 @@ body.rtl #feed-header-inner h2 { margin-left:2.5%; margin-top:14px; } + #user-container { + width:100%; + margin-left:0%; + margin-top:0px; + top:50px; + margin-bottom:-3px; + position:fixed; + } body.rtl #user-container { margin-right:2.5%; margin-left:0; @@ -3232,6 +3750,8 @@ body.rtl #feed-header-inner h2 { .modal-draggable { width:95%; } + + #queet-box, #queet-box[contenteditable="true"], .queet-box-template, @@ -3247,9 +3767,9 @@ body.rtl #feed-header-inner h2 { max-width: 100%; } - } - -@media (max-width: 466px) { + body { + background-color:#000 !important; + } #logo { display:none; } @@ -3278,41 +3798,357 @@ body.rtl #feed-header-inner h2 { left: auto; right: 10px; } - - body, .topbar .global-nav { - background-image:none !important; - background-color:#222; + .topbar { + box-shadow:none; + } + .topbar .global-nav { + height:52px; + background-image:none; + background-color:orange; } #birds-top { - width:80px; - } + display:none; + } + .nav-session { + background-image: url("../img/mobile-sprite-2x.png"); + background-size:800px 600px; + background-position: 0 0; + height: 49px; + width: 49px; + } + #settingslink:hover i.nav-session { + background-position: 0 0; + } + #settingslink .caret { + display:none; + } + #settingslink .dropdown-toggle { + padding:0; + } + #user-footer, #feed-header-inner { border-radius:0 0 0 0; } - #user-container { - width:100%; - margin-left:0%; - margin-top:-3px; - margin-bottom:-3px; - } + body.rtl #user-container { margin-right:-1px; margin-left:0%; } + + #user-header, + #user-body, + #user-footer { + display:none; + } + + #history-container { + display:none !important; + } + .menu-container { + margin:0; + height:59px; + border:0 none !important; + border-radius:0 0 0 0 !important; + -moz-box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7); + -webkit-box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7); + box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7); + } + .menu-container a.my-timeline { + display:block; + } + .menu-container a.favorites { + display:none; + } + .menu-container a, + .menu-container a.current { + background-color:transparent; + width:25%; + float:left; + font-size:0; + color:transparent; + height:55px; + padding:0; + margin:0; + border-radius:0 0 0 0 !important; + background-image: url("../img/mobile-sprite-2x.png"); + background-size:800px 600px; + background-position: center -203px; + } + .menu-container a:hover, + .menu-container a.current:hover { + background-color:transparent; + } + .menu-container a, + .menu-container a.current { + border:0 none !important; + } + .menu-container a:not(.current) { + height:63px; + } + .menu-container a:after, + .menu-container a.current:after { + + } + .menu-container a .chev-right { + display:none; + } + + .stream-selection.friends-timeline:after, + .stream-selection.mentions:after, + .stream-selection.my-timeline:after, + .stream-selection.public-timeline:after { + content: ""; + position: absolute; + top: 0; + left: 50%; + margin-left: -35px; + width: 70px; + height: 55px; + background-image: url("../img/mobile-sprite-2x.png"); + background-size:800px 600px; + background-color:#ccc; + } + .stream-selection.friends-timeline:after { + background-position:0px -61px ; + } + .stream-selection.mentions:after { + background-position:-78px -61px ; + } + .stream-selection.my-timeline:after { + background-position:-150px -61px ; + } + .stream-selection.public-timeline:after { + background-position:-230px -61px ; + } + .stream-selection.current:after { + background-color:transparent; + } + #feed-header { + display: none; + } + .profile-card { + width:100%; + border:0 none; + margin-bottom:0; + border-bottom:1px solid #E8E8E8; + border-radius:0 0 0 0; + } + .profile-card ul.stats { + width:100%; + border-bottom:1px solid #E8E8E8; + height: 50px; + } + .profile-card ul.stats li { + width:25%; + display:inline-block; + } + .profile-banner-footer ul.stats li a strong { + font-size: 16px; + } + .profile-header-inner, + .profile-banner-footer { + border-radius:0 0 0 0; + } + #new-queets-bar { + height:55px; + line-height:55px; + font-size:15px; + } + #feed { width:101%; margin-left:-1px; } - #feed-header{ + + .stream-item.expanded > .queet .stream-item-header { + height:50px; + } + .stream-item.expanded > .queet .stream-item-header .avatar { + margin-top:-7px; + } + .stream-item.expanded > .queet .stream-item-header .name { + margin-top:10px; + display:block; + } + .stream-item.expanded > .queet .stream-item-header .created-at { + display:none; + } + + .stream-item > .queet a { + pointer-events: none; + } + .stream-item.expanded > .queet a { + pointer-events: auto; } + + .queet:active { + background-color:#eee; + } + + .stream-item.expanded > .queet .queet-text { + font-size: 16px; + line-height: 22px; + margin-left: -63px; + margin-top: 5px; + } + + .show-full-conversation { + background: none repeat scroll 0 0 #ddd; + color: #333333; + display: block; + float: none; + font-style: normal; + height: 45px; + line-height: 45px; + margin-top: -35px; + padding: 0 10px 0 0; + position: absolute; + right: 0; + text-align: right; + width: 45%; + } + .show-full-conversation:before { + content: ""; + position: absolute; + top: 0; + left:-30px; + height:0; + width:0; + border-left:30px solid transparent; + border-bottom:45px solid #ddd; + } + + ul.queet-actions li { + margin-right: 30px; + } + ul.queet-actions li .with-icn { + margin-left: 0; + } ul.queet-actions li .with-icn b { display:none; } + .stream-item:hover > .queet ul.queet-actions { + display: none; + } + .stream-item.expanded:hover > .queet ul.queet-actions { + display: block; + } + .stream-item.expanded:not(.collapsing) > .queet ul.queet-actions { + display: block; + position:relative; + width:100%; + border-top: 1px solid #E8E8E8; + border-bottom: 1px solid #E8E8E8; + height:45px; + margin-top:20px; + } + .stream-item.collapsing > .queet ul.queet-actions { + display:none !important; + } + ul.queet-actions li .icon.sm-fav, + ul.queet-actions li .icon.sm-rt, + ul.queet-actions li .icon.sm-trash, + ul.queet-actions li .icon.sm-reply { + background-image: url("../img/mobile-sprite-2x.png"); + background-size:800px 600px; + width:35px; + height:35px; + } + ul.queet-actions li .icon.sm-reply { + background-position: -10px -120px; + } + ul.queet-actions li .icon.sm-rt { + background-position: -60px -120px; + } + ul.queet-actions li .icon.sm-fav { + background-position:-110px -120px; + } + ul.queet-actions li .icon.sm-trash { + background-position:-145px -121px; + } + .stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-reply { + background-position: -10px -162px; + } + .stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-rt { + background-position: -60px -162px; + } + .stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-fav { + background-position:-110px -162px; + } + .stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-trash { + background-position:-145px -163px; + } + + .queet ul.stats { + border-top: 0 none; + margin-left:-63px; + margin-top:0; + } + + .queet ul.stats li.rq-count a, + .queet ul.stats li.fav-count a { + padding: 7px; + text-align: center; + } + .queet ul.stats li:first-child a { + padding-left:0 !important; + } + .client-and-actions { + margin-left:-63px; + } + .client-and-actions .permalink-link { + display:none; + } + + .stream-item-expand { + display: none; + } + .stream-item.expanded:not(.collapsing) > .queet .stream-item-expand { + display: block; + height: 23px; + line-height: 23px; + margin-top: -40px; + padding: 5px 10px; + position: absolute; + right: 0; + } + .stream-item:not(.expanded) .queet { + padding-bottom: 5px; + } + .stream-item.expanded > .queet .stream-item-footer { + margin-left: -63px; + } + .stream-item.expanded > .queet .stream-item-footer .context { + display:none; + } .stream-item-footer .with-icn .requeet-text { font-size:0; } .stream-item-footer .with-icn .requeet-text a { font-size:12px; } + + .stream-item.expanded div:last-child, + .stream-item.expanded div:first-child, + .queet, + .view-more-container-top, + .stream-item.expanded { + border-radius: 0 0 0 0; + } + .inline-reply-queetbox { + display:none; + } + .modal-container .inline-reply-queetbox { + display:block; + } + + .stream-item, + .stream-item.expanded { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + } diff --git a/img/mobile-sprite-2x.png b/img/mobile-sprite-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a23b85f25edb7f3a5e0c8b2c40a160ef0cdaf0 GIT binary patch literal 24163 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 N(=@nSq47BCe*gvK$Ke0~ literal 0 HcmV?d00001 diff --git a/index.php b/index.php index 42006e3..264c701 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,27 @@ -