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 0000000..b2a23b8 Binary files /dev/null and b/img/mobile-sprite-2x.png differ diff --git a/index.php b/index.php index 42006e3..264c701 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,27 @@ -