From 037af6890fe6fdb84a08d3c86083e847c90ec0ad Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Tue, 22 Oct 2013 08:17:26 -0400 Subject: [PATCH] Fix vulnerability in handling _session argument of utils/save-prefs (#1489382) --- skins/larry/styles.css | 864 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 770 insertions(+), 94 deletions(-) diff --git a/skins/larry/styles.css b/skins/larry/styles.css index 4b11ffb..39f01f7 100644 --- a/skins/larry/styles.css +++ b/skins/larry/styles.css @@ -1,15 +1,13 @@ /** * Roundcube webmail styles for skin "Larry" * - * Copyright (c) 2011, The Roundcube Dev Team + * Copyright (c) 2012, The Roundcube Dev Team * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com * * The contents are subject to the Creative Commons Attribution-ShareAlike * License. It is allowed to copy, distribute, transmit and to adapt the work * by keeping credits to the original autors in the README file. * See http://creativecommons.org/licenses/by-sa/3.0/ for details. - * - * $Id$ */ body { @@ -18,6 +16,11 @@ color: #333; background: url(images/linen.jpg) repeat #d1d5d8; margin: 0; +} + +body.noscroll { + /* also avoids bounce effect in Chrome and Safari */ + overflow: hidden; } a { @@ -54,6 +57,7 @@ -moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9); -webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9); -o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9); + outline: none; } input.placeholder, @@ -61,10 +65,15 @@ color: #aaa; } -select.selector { - padding: 2px 4px; +.bold { + font-weight: bold; } +/* fixes vertical alignment of checkboxes and labels */ +label input, +label span { + vertical-align: middle; +} /*** buttons ***/ @@ -219,6 +228,7 @@ a.button.disabled span.inner { opacity: 0.4; + filter: alpha(opacity=40); } a.button.pressed, @@ -235,7 +245,7 @@ .pagenav.dark a.button { font-weight: bold; border-color: #e6e6e6; - background: #f7f7f7; + background: #d8d8d8; background: -moz-linear-gradient(top, #d8d8d8 0%, #bababa 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d8d8d8), color-stop(100%,#bababa)); background: -o-linear-gradient(top, #d8d8d8 0%, #bababa 100%); @@ -259,6 +269,8 @@ .pagenav a.button { padding: 1px 3px; height: 16px; + vertical-align: middle; + margin-bottom: 1px; } .pagenav a.button span.inner { @@ -308,9 +320,14 @@ .pagenav .countdisplay { display: inline-block; - padding:0 1em; + padding: 3px 1em 0 1em; text-shadow: 0px 1px 1px #fff; min-width: 16em; +} + +.pagenavbuttons { + position: relative; + top: -2px; } a.iconbutton { @@ -318,12 +335,13 @@ width: 24px; height: 18px; text-decoration: none; - text-indent: -1000px; + text-indent: -5000px; background: url(images/buttons.png) -1000px 0 no-repeat; } a.iconbutton.disabled { opacity: 0.4; + filter: alpha(opacity=40); cursor: default; } @@ -343,6 +361,7 @@ display: inline-block; color: #888; text-decoration: none; + white-space: nowrap; padding: 2px 8px 2px 20px; background: url(images/buttons.png) -1000px 0 no-repeat; } @@ -360,7 +379,7 @@ } a.iconlink.remove { - background-position: -7px -377px; + background-position: -7px -378px; } a.iconlink.cancel { @@ -395,7 +414,7 @@ #message div.warning { color: #960; - background-position: 0 -25px; + background-position: 0 -86px; } #message div.error { @@ -405,11 +424,22 @@ #message div.confirmation { color: #093; - background-position: 0 -86px; + background-position: 0 -25px; } #message div.loading { background: url(images/ajaxloader.gif) 2px 6px no-repeat; +} + +#message div a, +#message div span { + padding-right: 0.5em; + text-decoration: none; +} + +#message div a:hover { + text-decoration: underline; + cursor: pointer; } #message.statusbar { @@ -432,8 +462,55 @@ text-overflow: ellipsis; } +.ui-dialog.error .ui-dialog-title, +.ui-dialog.warning .ui-dialog-title, +.ui-dialog.confirmation .ui-dialog-title { + padding-left: 25px; + background: url(images/messages.png) 0 5px no-repeat; + text-shadow: 0 1px 1px #fff; +} + +.ui-dialog.warning .ui-dialog-title { + color: #960; + background-position: 0 -90px; +} + +.ui-dialog.error .ui-dialog-title { + color: #cf2734; + background-position: 0 -60px; +} + +.ui-dialog.confirmation .ui-dialog-title { + color: #093; + background-position: 0 -30px; +} + +.ui-dialog.popupmessage .ui-dialog-titlebar { + padding: 8px 1em 4px 1em; + background: #e3e3e3; + background: -moz-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3e3e3), color-stop(100%,#cfcfcf)); + background: -o-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%); + background: -ms-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%); + background: linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%); +} + +.ui-dialog.popupmessage .ui-widget-content { + font-size: 12px; + background: #eee; + background: -moz-linear-gradient(top, #eee 0%, #dcdcdc 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dcdcdc)); + background: -o-linear-gradient(top, #eee 0%, #dcdcdc 100%); + background: -ms-linear-gradient(top, #eee 0%, #dcdcdc 100%); + background: linear-gradient(top, #eee 0%, #dcdcdc 100%); +} + /*** basic page layout ***/ + +#header { + overflow-x: hidden; /* Chrome bug #1488851 */ +} #topline { height: 18px; @@ -441,18 +518,20 @@ border-bottom: 1px solid #4f4f4f; padding: 2px 0 2px 10px; color: #aaa; + text-align: center; } #topnav { + position: relative; height: 46px; margin-bottom: 10px; padding: 0 0 0 10px; - background: #3a3a3a; - background: -moz-linear-gradient(top, rgba(64,64,64,1) 0%, rgba(6,6,6,1) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(64,64,64,1)), color-stop(100%,rgba(6,6,6,1))); - background: -o-linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%); - background: -ms-linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%); - background: linear-gradient(top, rgba(64,64,64,1) 0%,rgba(6,6,6,1) 100%); + background: #111; + background: -moz-linear-gradient(top, #404040 0%, #060606 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#404040), color-stop(100%,#060606)); + background: -o-linear-gradient(top, #404040 0%, #060606 100%); + background: -ms-linear-gradient(top, #404040 0%, #060606 100%); + background: linear-gradient(top, #404040 0%, #060606 100%); } #topline a, @@ -461,13 +540,13 @@ text-decoration: none; } -#topline a:hover, -#topnav a:hover { +#topline a:hover { text-decoration: underline; } #toplogo { padding-top: 2px; + cursor: pointer; } .topleft { @@ -500,8 +579,156 @@ color: #fff; } +#taskbar .button-logout { + display: none; +} + +#taskbar a.button-logout span.button-inner { + background-position: -2px -1791px; +} + +#taskbar a.button-logout:hover span.button-inner { + background-position: -2px -1829px; +} + + +/*** minimal version of the page header ***/ + +.minimal #topline { + position: fixed; + top: -18px; + background: #444; + z-index: 5000; + width: 100%; + height: 22px; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.minimal #topline:hover { + top: 0px; + opacity: 0.94; + filter: alpha(opacity=94); + -webkit-transition: top 0.3s ease-in-out; + -moz-transition: top 0.3s ease-in-out; + -o-transition: top 0.3s ease-in-out; + transition: top 0.3s ease-in-out; +} + +.extwin #topline, +.extwin #topline:hover { + position: static; + top: 0px; + height: 18px; + width: auto; + -moz-box-sizing: content-box; + box-sizing: content-box; + opacity: 0.999; +} + +.partwin #topline { + position: absolute; + right: 6px; + top: 18px; + width: auto; + z-index: 100; + background: transparent; + background: none; + border: 0; +} + +.minimal #topline a.button-logout { + display: none; +} + +.minimal #topline span.username { + display: inline-block; + padding-top: 2px; +} + +.minimal #topnav { + position: relative; + top: 4px; + height: 42px; +} + +.minimal #taskbar a { + position: relative; + padding: 10px 10px 0 6px; + height: 32px; +} + +.minimal #taskbar .button-logout { + display: inline-block; +} + +.minimal #taskbar .button-inner { + top: -4px; + padding: 0; + height: 24px !important; + width: 27px; + text-indent: -5000px; +} + +#taskbar .tooltip { + display: none; +} + +.minimal #taskbar .tooltip { + position: absolute; + top: -500px; + right: 2px; + display: inline-block; + padding: 2px 8px 3px 8px; + background: #444; + background: -moz-linear-gradient(top, #444 0%, #333 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#444), color-stop(100%,#333)); + background: -o-linear-gradient(top, #444 0%, #333 100%); + background: -ms-linear-gradient(top, #444 0%, #333 100%); + background: linear-gradient(top, #444 0%, #333 100%); + color: #eee; + font-weight: bold; + white-space: nowrap; + border: 1px solid #777; + box-shadow: 0 1px 5px 0 #333; + -moz-box-shadow: 0 1px 5px 0 #333; + -webkit-box-shadow: 0 1px 5px 0 #333; + -o-box-shadow: 0 1px 5px 0 #333; + z-index: 200; + white-space: nowrap; + text-shadow: 0px 1px 1px #000; +} + +.minimal #taskbar .tooltip:after { + content: ""; + position: absolute; + top: -4px; + right: 15px; + border-style: solid; + border-width: 0 4px 4px; + border-color: #888 transparent; + /* reduce the damage in FF3.0 */ + display: block; + width: 0; + z-index: 251; +} + +.ie8 .minimal #taskbar .tooltip:after { + top: -6px; +} + +.minimal #taskbar a:hover .tooltip { + display: block; + top: 39px; +} + /*** taskbar ***/ + +#taskbar { + position: relative; + padding-right: 18px; +} #taskbar a { display: inline-block; @@ -560,6 +787,22 @@ background-position: 0 -168px; } +#taskbar .minmodetoggle { + position: absolute; + top: 0; + right: 0; + display: block; + width: 19px; + height: 46px; + cursor: pointer; + background: url(images/buttons.png) -35px -1778px no-repeat; +} + +.minimal #taskbar .minmodetoggle { + height: 42px; + background-position: -35px -1820px; +} + #mainscreen { position: absolute; top: 88px; @@ -568,8 +811,24 @@ bottom: 20px; } +.minimal #mainscreen { + top: 62px; +} + +.minimal #mainscreen.offset { + top: 102px; +} + +.partwin #mainscreen { + top: 60px +} + +.extwin #mainscreen { + top: 40px; +} + #mainscreen.offset { - top: 130px; + top: 132px; } #mainscreen .offset { @@ -579,11 +838,21 @@ .uibox { border: 1px solid #a3a3a3; border-radius: 4px; + overflow: hidden; box-shadow: 0 0 2px #999; -o-box-shadow: 0 0 2px #999; -webkit-box-shadow: 0 0 2px #999; -moz-box-shadow: 0 0 2px #999; background: #fff; +} + +.minwidth { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 100%; + min-width: 1024px; } .scroller { @@ -608,6 +877,15 @@ background-repeat: no-repeat; } +/* fix scrolling within iframes in webkit browsers on touch devices */ +@media screen and (-webkit-min-device-pixel-ratio:0) and (max-device-width:1024px) { + .iframebox { + overflow: auto; + -webkit-overflow-scrolling: touch; + } +} + + /*** lists ***/ .listbox { @@ -621,7 +899,8 @@ left: 0; width: 100%; bottom: 0; - overflow: auto; + overflow-x: hidden; + overflow-y: auto; } .listbox .scroller.withfooter { @@ -636,11 +915,17 @@ .uibox .listing thead td { font-size: 12px; font-weight: bold; - padding: 10px 8px 8px 8px; + padding: 10px 8px 3px 8px; + height: 20px; /* doesn't affect table-cells in FF */ margin: 0; text-shadow: 0px 1px 1px #fff; border-bottom: 1px solid #bbd3da; white-space: nowrap; +} + +.uibox .listing thead td { + padding-bottom: 8px; + height: auto; } .uibox .boxtitle, @@ -670,23 +955,33 @@ text-shadow: 0px 1px 1px #fff; text-decoration: none; cursor: default; - padding: 7px 8px 5px 8px; + padding: 6px 8px 2px 8px; + height: 17px; /* doesn't affect table-cells in FF */ white-space: nowrap; } .listing tbody td { display: table-cell; + padding-bottom: 5px; + height: auto; + min-height: 14px; +} + +.webkit .listing tbody td { + height: 14px; } .listbox .listitem.selected, .listbox .tablink.selected, -.listbox .listitem.selected a, -.listbox .tablink.selected a, +.listbox .listitem.selected > a, +.listbox .tablink.selected > a, +.listing tbody tr.unfocused td, .listing tbody tr.selected td, .listing li.selected, -.listing li.selected a { +.listing li.selected > a { color: #004458; font-weight: bold; + background-color: #c7e3ef; } ul.listing { @@ -700,9 +995,17 @@ background-color: #d9ecf4; } +ul.listing li ul { + border-top: 1px solid #bbd3da; +} + ul.listing li.droptarget, table.listing tr.droptarget td { - background-color: #c7e3ef; + background-color: #e8e798; +} + +.listbox table.listing { + background-color: #d9ecf4; } table.listing, @@ -714,6 +1017,32 @@ table.layout td { vertical-align: top; +} + +ul.treelist li { + position: relative; +} + +ul.treelist li div.treetoggle { + position: absolute; + top: 13px; + left: 19px; + width: 13px; + height: 13px; + background: url(images/listicons.png) -3px -144px no-repeat; + cursor: pointer; +} + +ul.treelist li div.treetoggle.expanded { + background-position: -3px -168px; +} + +ul.treelist li.selected > div.collapsed { + background-position: -23px -144px; +} + +ul.treelist li.selected > div.expanded { + background-position: -23px -168px; } .listbox .boxfooter { @@ -731,6 +1060,10 @@ overflow: hidden; } +.uibox .boxfooter { + border-radius: 0 0 4px 4px; +} + .boxfooter .listbutton { display: inline-block; text-decoration: none; @@ -741,28 +1074,54 @@ margin-top: 1px; } +.uibox .boxfooter .listbutton:first-child { + border-radius: 0 0 0 4px; +} + .boxfooter .listbutton .inner { display: inline-block; width: 48px; height: 35px; - text-indent: -1000px; + text-indent: -5000px; background: url(images/buttons.png) -1000px 0 no-repeat; } .boxfooter .listbutton.add .inner { - background-position: 10px -1291px; + background-position: 10px -1301px; } .boxfooter .listbutton.delete .inner { - background-position: 10px -1332px; + background-position: 10px -1342px; } .boxfooter .listbutton.groupactions .inner { - background-position: 5px -1372px; + background-position: 5px -1382px; +} + +.boxfooter .listbutton.addto .inner { + background-position: 5px -1422px; +} + +.boxfooter .listbutton.addcc .inner { + background-position: 5px -1462px; +} + +.boxfooter .listbutton.addbcc { + width: 54px; +} + +.boxfooter .listbutton.addbcc .inner { + width: 54px; + background-position: 2px -1502px; +} + +.boxfooter .listbutton.removegroup .inner { + background-position: 5px -1540px; } .boxfooter .listbutton.disabled .inner { opacity: 0.4; + filter: alpha(opacity=40); } .boxfooter .countdisplay { @@ -786,6 +1145,7 @@ height: 13px; width: 14px; text-indent: 1000px; + vertical-align: bottom; overflow: hidden; background: url(images/buttons.png) -4px -286px no-repeat; } @@ -804,6 +1164,7 @@ .boxpagenav a.icon.disabled { opacity: 0.4; + filter: alpha(opacity=40); } .centerbox { @@ -843,12 +1204,14 @@ font-weight: bold; background: #d6eaf3; background: -moz-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%); - background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(14px,#d6eaf3), color-stop(100%,#d6eaf3)); + background: -webkit-gradient(linear, left top, right top, color-stop(0,#e3f2f6), color-stop(8%,#d6eaf3), color-stop(100%,#d6eaf3)); background: -o-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%); background: -ms-linear-gradient(left, #e3f2f6 0, #d6eaf3 14px ,#d6eaf3 100%); background: linear-gradient(left, #e3f2f6 0, #d6eaf3 14px, #d6eaf3 100%); border-left: 1px solid #bbd3da; padding: 8px 7px; + overflow: hidden; + text-overflow: ellipsis; } .records-table.sortheader thead td { @@ -858,13 +1221,15 @@ .records-table thead td a, .records-table thead td span { display: block; - padding: 8px 7px; + padding: 7px 7px; color: #69939e; text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; } .records-table tbody td { - padding: 3px 7px; + padding: 2px 7px; border-bottom: 1px solid #ddd; border-left: 1px dotted #bbd3da; white-space: nowrap; @@ -877,13 +1242,6 @@ .records-table thead tr td:first-child, .records-table tbody tr td:first-child { border-left: 0; -} - -.records-table tbody td a { - color: #333; - text-decoration: none; - white-space: nowrap; - cursor: default; } .records-table tr.selected td { @@ -903,7 +1261,7 @@ .records-table tr.unfocused td { color: #fff !important; - background: #4db0d2; + background: #4db0d2 !important; } .records-table tr.unfocused td a, @@ -931,8 +1289,12 @@ margin: 38px 0 10px 0; } -body.iframe.footerbuttons { - margin-bottom: 42px; +body.iframe.error { + background: #ededed; +} + +body.iframe.floatingbuttons { + margin-bottom: 40px; } body.iframe.fullheight { @@ -959,14 +1321,27 @@ z-index: 100; } -body.iframe .footerbuttons { +body.iframe .footerleft.floating, +#composeview-bottom .formbuttons.floating { position: fixed; left: 0; bottom: 0; width: 100%; z-index: 110; background: #fff; - padding: 8px; + padding-top: 8px; + padding-bottom: 12px; +} + +body.iframe .footerleft.floating:before, +#composeview-bottom .formbuttons.floating:before { + content: " "; + position: absolute; + top: -6px; + left: 0; + width: 100%; + height: 6px; + background: url(images/overflowshadow.png) top center no-repeat; } .boxcontent { @@ -982,8 +1357,16 @@ overflow: auto; } +.iframebox { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 28px; +} + .footerleft { - padding: 0 12px; + padding: 0 12px 4px 12px; } .propform fieldset { @@ -1083,13 +1466,22 @@ padding-top: 10px; } +#login-form .noscriptwarning { + margin: 0 auto; + width: 430px; + color: #cf2734; + font-size: 110%; + font-weight: bold; +} + #login-form td.input { + width: 80%; padding: 8px; } #login-form input[type="text"], #login-form input[type="password"] { - width: 24em; + width: 100%; border-color: #666; } @@ -1098,11 +1490,11 @@ text-shadow: 0px 1px 1px #fff; border-color: #f9f9f9; background: #f9f9f9; - background: -moz-linear-gradient(top, rgba(249,249,249,1) 0%, rgba(226,226,226,1) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(249,249,249,1)), color-stop(100%,rgba(226,226,226,1))); - background: -o-linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%); - background: -ms-linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%); - background: linear-gradient(top, rgba(249,249,249,1) 0%,rgba(226,226,226,1) 100%); + background: -moz-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#e2e2e2)); + background: -o-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%); + background: -ms-linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%); + background: linear-gradient(top, #f9f9f9 0%, #e2e2e2 100%); box-shadow: inset 0 1px 0 0 #fff; -moz-box-shadow: inset 0 1px 0 0 #fff; -webkit-box-shadow: inset 0 1px 0 0 #fff; @@ -1119,14 +1511,20 @@ #login-form input.button:active { color: #333; - background: -moz-linear-gradient(top, rgba(220,220,220,1) 0%, rgba(249,249,249,1) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(220,220,220,1)), color-stop(100%,rgba(249,249,249,1))); - background: -o-linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%); - background: -ms-linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%); - background: linear-gradient(top, rgba(220,220,220,1) 0%,rgba(249,249,249,1) 100%); + background: -moz-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dcdcdc), color-stop(100%,#f9f9f9)); + background: -o-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%); + background: -ms-linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%); + background: linear-gradient(top, #dcdcdc 0%, #f9f9f9 100%); +} + +#login-form form table { + width: 98%; } #login-form td.title { + width: 20%; + white-space: nowrap; color: #cecece; text-shadow: 0px 1px 1px black; text-align: right; @@ -1145,12 +1543,12 @@ #login-form #message { min-height: 40px; padding: 5px 25px; + text-align: center; } #login-form #message div { - display: block; - width: 200px; - margin: 0 auto; + display: inline-block; + padding-right: 0; } #bottomline { @@ -1163,33 +1561,52 @@ /*** quicksearch **/ -#quicksearchbar { - width: 100%; +.searchbox { + position: relative; } +#quicksearchbar { + position: absolute; + right: 1px; + top: 2px; + width: 240px; +} + +.searchbox input, #quicksearchbar input { width: 176px; margin: 0; - padding: 5px 26px 5px 38px; + padding: 3px 30px 3px 34px; + height: 18px; background: #f1f1f1; - border-color: #a3a3a3; + border-color: #ababab; font-weight: bold; + font-size: 11px; } +.searchbox #searchmenulink, #quicksearchbar #searchmenulink { position: absolute; top: 5px; - left: 8px; + left: 6px; } +.searchbox #searchreset, #quicksearchbar #searchreset { position: absolute; top: 4px; - right: 3px; + right: 1px; } /*** toolbar ***/ + +.toolbar .spacer { + display: inline-block; + width: 24px; + height: 40px; + padding: 0; +} .toolbar a.button { text-align: center; @@ -1197,6 +1614,7 @@ color: #555; min-width: 50px; max-width: 75px; + height: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -1208,10 +1626,12 @@ -o-box-shadow: none; background: url(images/buttons.png) -100px 0 no-repeat transparent; border: 0; + border-radius: 0; } .toolbar a.button.disabled { - opacity: 0.5; + opacity: 0.4; + filter: alpha(opacity=40); } .dropbutton { @@ -1222,24 +1642,40 @@ .dropbutton .dropbuttontip { display: block; position: absolute; - right: 2px; + right: 0; top: 0; height: 42px; width: 18px; - background: url(images/buttons.png) -24px -1249px no-repeat; + background: url(images/buttons.png) 0 -1255px no-repeat; cursor: pointer; } .dropbutton .dropbuttontip:hover { - background-position: 0 -1249px; + background-position: -26px -1255px; +} + +.dropbutton a.button.disabled + .dropbuttontip { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.dropbutton a.button.disabled + .dropbuttontip:hover { + background-position: 0 -1255px; +} + +.dropbutton a.button { + margin-left: 0; + padding-left: 0; + margin-right: 0; + padding-right: 0; } .toolbar a.button.back { - background-position: 0 -1210px; + background-position: 0 -1216px; } .toolbar a.button.checkmail { - background-position: center -1170px; + background-position: center -1176px; } .toolbar a.button.compose { @@ -1251,12 +1687,13 @@ } .toolbar a.button.reply-all { - background-position: center -610px; + min-width: 64px; + background-position: left -610px; } .toolbar a.button.forward { - min-width: 74px; - background-position: center -650px; + min-width: 64px; + background-position: left -650px; } .toolbar a.button.delete { @@ -1275,7 +1712,10 @@ background-position: center -810px; } -.toolbar a.button.markmessage, +.toolbar a.button.markmessage { + background-position: center -1094px; +} + .toolbar a.button.more { background-position: center -850px; } @@ -1285,7 +1725,17 @@ } .toolbar a.button.spellcheck { - background-position: center -930px; + min-width: 64px; + background-position: left -930px; +} + +.toolbar a.button.spellcheck.selected { + background-position: left -1620px; + color: #1978a1; +} + +.toolbar a.button.insertsig { + background-position: center -1135px; } .toolbar a.button.search { @@ -1293,12 +1743,25 @@ } .toolbar a.button.import { - background-position: center -1010px; + background-position: center -1012px; } .toolbar a.button.export { - background-position: center -1050px; + background-position: center -1054px; } + +.toolbar a.button.send { + background-position: center -1660px; +} + +.toolbar a.button.savedraft { + background-position: center -1700px; +} + +.toolbar a.button.close { + background-position: 0 -1745px; +} + a.menuselector { display: inline-block; @@ -1312,11 +1775,15 @@ background: linear-gradient(top, #f8f8f8 0%, #dddddd 100%); text-decoration: none; color: #333; + cursor: pointer; + white-space: nowrap; } a.menuselector .handle { display: inline-block; - padding: 3px 32px 4px 8px; + padding: 0 32px 0 6px; + height: 20px; + line-height: 19px; text-shadow: 0px 1px 1px #fff; background: url(images/selector.png) right center no-repeat; border-radius: 4px; @@ -1332,6 +1799,44 @@ text-decoration: none; } +select.decorated { + position: relative; + z-index: 10; + opacity: 0; + height: 22px; + cursor: pointer; + filter: alpha(opacity=0); + -khtml-appearance: none; + -webkit-appearance: none; +} + +html.opera select.decorated { + opacity: 1; +} + +select.decorated option { + color: #fff; + background: #444; + border: 0; + border-top: 1px solid #5a5a5a; + border-bottom: 1px solid #333; + text-shadow: 0px 1px 1px #333; + padding: 4px 6px; + outline: none; +} + + +/*** quota indicator ***/ + +#quotadisplay { + left: 6px; + font-size: 12px; + font-weight: bold; + text-shadow: 0px 1px 1px #fff; + padding-left: 30px; + height: 18px; + background: url(images/quota.png) -100px 0 no-repeat; +} /*** popup menus ***/ @@ -1376,12 +1881,14 @@ } .googie_list tr:first-child td, -ul.toolbarmenu li:first-child { +ul.toolbarmenu li:first-child, +select.decorated option:first-child { border-top: 0; } .googie_list tr:last-child td, -ul.toolbarmenu li:last-child { +ul.toolbarmenu li:last-child, +select.decorated option:last-child { border-bottom: 0; } @@ -1395,6 +1902,10 @@ padding: 6px 10px 6px 10px; } +.googie_list td span { + padding: 3px 10px; +} + .googie_list td span, ul.toolbarmenu li a.active { color: #fff; @@ -1403,7 +1914,9 @@ .googie_list td.googie_list_onhover, ul.toolbarmenu li a.active:hover, -#rcmKSearchpane ul li.selected { +#rcmKSearchpane ul li.selected, +select.decorated option:hover, +select.decorated option[selected='selected'] { background-color: #00aad6; background: -moz-linear-gradient(top, #00aad6 0%, #008fc9 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00aad6), color-stop(100%,#008fc9)); @@ -1412,8 +1925,13 @@ background: linear-gradient(top, #00aad6 0%, #008fc9 100%); } -ul.toolbarmenu.iconized li a { +ul.toolbarmenu.iconized li a, +ul.toolbarmenu.selectable li a { padding-left: 30px; +} + +ul.toolbarmenu.selectable li a.selected { + background: url(images/messages.png) 4px -27px no-repeat; } ul.toolbarmenu li label { @@ -1431,15 +1949,18 @@ ul.toolbarmenu li span.icon { display: block; min-height: 14px; - padding: 4px 4px 4px 24px; + padding: 4px 4px 1px 24px; + height: 17px; background-image: url(images/listicons.png); background-position: -100px 0; background-repeat: no-repeat; opacity: 0.2; + filter: alpha(opacity=20); } ul.toolbarmenu li a.active span.icon { opacity: 0.99; + filter: alpha(opacity=100); } ul.toolbarmenu li span.read { @@ -1509,6 +2030,7 @@ min-height: 14px; padding: 6px 10px 6px 10px; border: 0; + cursor: default; } .popupdialog { @@ -1571,6 +2093,7 @@ color: #ccc; white-space: nowrap; opacity: 0.92; + filter: alpha(opacity=92); text-shadow: 0px 1px 1px #333; } @@ -1585,16 +2108,166 @@ /* reduce the damage in FF3.0 */ display: block; width: 0; + z-index: 251; } -._draglayercopy:before { +.draglayercopy:before { position: absolute; - bottom: -5px; + bottom: -6px; left: -6px; content: " "; - width: 15px; - height: 15px; - background: url(images/buttons.png) -8px -360px no-repeat; + width: 16px; + height: 16px; + background: url(images/buttons.png) -7px -358px no-repeat; + z-index: 255; +} + + +/*** attachment list ***/ + +.attachmentslist { + list-style: none; + margin: 0; + padding: 0; + overflow: hidden; + text-overflow: ellipsis; +} + +.attachmentslist li { + display: block; + position: relative; + background: url(images/filetypes.png) 0 0 no-repeat; + margin-bottom: 1px; +} + +.attachmentslist li.pdf { + background-position: 0 -26px; +} + +.attachmentslist li.doc, +.attachmentslist li.docx, +.attachmentslist li.msword { + background-position: 0 -52px; +} + +.attachmentslist li.odt { + background-position: 0 -78px; +} + +.attachmentslist li.xls, +.attachmentslist li.xlsx, +.attachmentslist li.msexcel { + background-position: 0 -104px; +} + +.attachmentslist li.ods { + background-position: 0 -130px; +} + +.attachmentslist li.zip, +.attachmentslist li.gz { + background-position: 0 -156px; +} + +.attachmentslist li.rar { + background-position: 0 -182px; +} + +.attachmentslist li.image { + background-position: 0 -208px; +} + +.attachmentslist li.jpg, +.attachmentslist li.jpeg { + background-position: 0 -234px; +} + +.attachmentslist li.png { + background-position: 0 -260px; +} + +.attachmentslist li.m4p { + background-position: 0 -286px; +} + +.attachmentslist li.mp3, +.attachmentslist li.audio { + background-position: 0 -312px; +} + +.attachmentslist li.video { + background-position: 0 -338px; +} + +.attachmentslist li.txt, +.attachmentslist li.text { + background-position: 0 -416px; +} + +.attachmentslist li.ics, +.attachmentslist li.calendar { + background-position: 0 -364px; +} + +.attachmentslist li.vcard { + background-position: 0 -390px; +} + +.attachmentslist li.sig, +.attachmentslist li.pgp-signature, +.attachmentslist li.pkcs7-signature { + background-position: 0 -442px; +} + +.attachmentslist li.html { + background-position: 0 -468px; +} + +.attachmentslist li.eml, +.attachmentslist li.rfc822 { + background-position: 0 -494px; +} + +.attachmentslist li a, +#compose-attachments ul li { + display: block; + color: #333; + font-weight: bold; + padding: 8px 4px 3px 30px; + text-shadow: 0px 1px 1px #fff; + text-decoration: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +#compose-attachments ul li { + padding-right: 28px; +} + +.attachmentslist li a:hover { + text-decoration: underline; +} + +.attachmentslist li.uploading { + background: url(images/ajaxloader.gif) 2px 6px no-repeat; +} + +.attachmentslist li a.delete, +.attachmentslist li a.cancelupload { + position: absolute; + top: 6px; + right: 0; + width: 24px; + height: 18px; + padding: 0; + text-decoration: none; + text-indent: -5000px; + background: url(images/buttons.png) -7px -337px no-repeat; +} + +.attachmentslist li a.cancelupload { + background-position: -7px -377px; } @@ -1604,6 +2277,11 @@ margin-bottom: 12px; padding-top: 15px; height: 27px; + white-space: nowrap; +} + +.ui-dialog-content .tabsbar { + margin-bottom: 0; } .tabsbar .tablink { @@ -1637,7 +2315,7 @@ .tabsbar .tablink.selected a { color: #004458; - background: #fff; + background: #f6f6f6; background: -moz-linear-gradient(top, #fff 40%, #efefef 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(40%,#fff), color-stop(100%,#efefef)); background: -o-linear-gradient(top, #fff 40%, #efefef 100%); @@ -1650,5 +2328,3 @@ padding: 0; margin-left: 0; } - - -- Gitblit v1.9.1