From 99cdca46b7bcc46fe6affd9e9f9f60a546b2e5b8 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Thu, 05 Jun 2014 03:18:07 -0400 Subject: [PATCH] Merge branch 'dev-accessibility' --- skins/larry/styles.css | 543 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 459 insertions(+), 84 deletions(-) diff --git a/skins/larry/styles.css b/skins/larry/styles.css index f0d5ddd..17543c8 100644 --- a/skins/larry/styles.css +++ b/skins/larry/styles.css @@ -35,6 +35,10 @@ border: 0; } +.voice { + display: none; +} + input[type="text"], input[type="password"], textarea { @@ -312,6 +316,16 @@ border-left-color: #555; } +.buttongroup a.button:focus, +.buttongroup a.button.selected:focus { + background: #f2f2f2; + background: -moz-linear-gradient(top, #49b3d2 0, #66bcd9 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0,#49b3d2), color-stop(100%,#66bcd9)); + background: -o-linear-gradient(top, #49b3d2 0, #66bcd9 100%); + background: -ms-linear-gradient(top, #49b3d2 0, #66bcd9 100%); + background: linear-gradient(top, #49b3d2 0, #66bcd9 100%); +} + .pagenav a.button { padding: 1px 3px; height: 16px; @@ -325,6 +339,7 @@ margin-bottom: 0; } +a.button span.icon, .pagenav a.button span.inner { display: inline-block; width: 16px; @@ -334,54 +349,75 @@ background: url(images/buttons.png) -6px -211px no-repeat; } +a.button.prevpage span.icon, .pagenav a.prevpage span.inner { background-position: -7px -226px; } +a.button.nextpage span.icon, .pagenav a.nextpage span.inner { background-position: -28px -226px; } +a.button.lastpage span.icon, .pagenav a.lastpage span.inner { background-position: -28px -211px; } +a.button.pageup span.icon, .pagenav a.pageup span.inner { background-position: -7px -241px; } +a.button.pagedown span.icon, .pagenav a.pagedown span.inner { background-position: -29px -241px; } +a.button.reply span.icon, .pagenav a.reply span.inner { background-position: -7px -256px; } +a.button.forward span.icon, .pagenav a.forward span.inner { background-position: -29px -256px; } +a.button.replyall span.icon, .pagenav a.replyall span.inner { background-position: -7px -271px; } +a.button.extwin span.icon, .pagenav a.extwin span.inner { background-position: -29px -271px; } +a.button.changeformat.html span.icon, .pagenav a.changeformat.html span.inner { background-position: -7px -1859px; } +a.button.changeformat.html.selected span.icon, .pagenav a.changeformat.html.selected span.inner { background-position: -29px -1859px; } +a.button.changeformat.text span.icon, .pagenav a.changeformat.text span.inner { background-position: -7px -1874px; } +a.button.changeformat.text.selected span.icon, .pagenav a.changeformat.text.selected span.inner { background-position: -29px -1874px; +} + +a.button.add span.icon { + background-position: -7px -2009px; +} + +a.button.delete span.icon { + background-position: -29px -2009px; } .pagenav .countdisplay { @@ -398,7 +434,7 @@ a.iconbutton { display: inline-block; - width: 24px; + width: 20px; height: 18px; text-decoration: none; text-indent: -5000px; @@ -411,17 +447,50 @@ cursor: default; } +a.iconbutton.searchicon, a.iconbutton.searchoptions { + width: 24px; background-position: -2px -317px; } +a.iconbutton.searchicon { + width: 15px; +} + a.iconbutton.reset { + width: 24px; background-position: -25px -317px; } +a.iconbutton.remove, a.iconbutton.cancel { - background-position: -7px -377px; + background-position: -7px -378px; } + +a.iconbutton.delete { + background-position: -7px -338px; +} + +a.iconbutton.add { + background-position: -7px -358px; +} + +a.iconbutton.remove { + background-position: -7px -379px; +} + +a.iconbutton.cancel { + background-position: -7px -398px; +} + +a.iconbutton.edit { + background-position: -7px -418px; +} + +a.iconbutton.upload { + background-position: -6px -438px; +} + a.iconlink { display: inline-block; @@ -509,6 +578,7 @@ } #message.statusbar { + display: none; position: absolute; bottom: 0; left: 0; @@ -526,6 +596,102 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; +} + +#messagestack { + position: absolute; + bottom: 20px; + right: 12px; + z-index: 50000; + width: auto; + height: auto; + max-height: 85%; + overflow-y: auto; + padding: 2px; +} + +#messagestack div { + display: block; + position: relative; + width: 280px; + height: auto; + min-height: 16px; + margin: 3px 2px 5px 2px; + padding: 8px 10px 7px 30px; + cursor: default; + font-size: 12px; + font-weight: bold; + border-radius: 4px; + border: 1px solid #444; + color: #ebebeb; + text-shadow: 0 1px 1px #000; + + background: rgba(64,64,64,0.85); + background: -moz-linear-gradient(top, rgba(64,64,64,0.85) 0%, rgba(48,48,48,0.9) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(64,64,64,0.85)), color-stop(100%,rgba(48,48,48,0.9))); + background: -webkit-linear-gradient(top, rgba(64,64,64,0.85) 0%, rgba(48,48,48,0.85) 100%); + background: -o-linear-gradient(top, rgba(64,64,64,0.85) 0%, rgba(48,48,48,0.85) 100%); + background: -ms-linear-gradient(top, rgba(64,64,64,0.85) 0%, rgba(48,48,48,0.85) 100%); + background: linear-gradient(to bottom, rgba(64,64,64,0.85) 0%, rgba(48,48,48,0.85) 100%); + + -moz-box-shadow: 0 1px 4px 0 rgba(50,50,50,0.8), inset 0px 1px 0 0px #888; + -webkit-box-shadow: 0 1px 4px 0 rgba(50,50,50,0.8), inset 0px 1px 0 0px #888; + -o-box-shadow: 0 1px 4px 0 rgba(50,50,50,0.8), inset 0px 1px 0 0px #888; + box-shadow: 0 1px 4px 0 rgba(50,50,50,0.8), inset 0px 1px 0 0px #888; +} + +#messagestack div:after { + content: ""; + position: absolute; + display: block; + top: 0; + left: 4px; + width: 20px; + height: 24px; + background: url(images/messages_dark.png) 0 7px no-repeat; +} + +#messagestack div.error { + color: #ff615d; +} + +#messagestack div.error:after { + background-position: 0 -55px; +} + +#messagestack div.warning { + color: #f4bf0e; +} + +#messagestack div.warning:after { + background-position: 0 -84px; +} + +#messagestack div.confirmation { + color: #00e05a; +} + +#messagestack div.confirmation:after { + background-position: 0 -25px; +} + +#messagestack div.loading { + color: #ddd; +} + +#messagestack div.loading:after { + top: 4px; + left: 6px; + background: url(images/ajaxloader_dark.gif) 0 4px no-repeat; +} + +#messagestack div a { + color: #94c0da; +} + +#messagestack div a:hover { + text-decoration: underline; + cursor: pointer; } .ui-dialog.error .ui-dialog-title, @@ -764,13 +930,9 @@ border-width: 0 4px 4px; border-color: #888 transparent; /* reduce the damage in FF3.0 */ - display: block; + display: block; width: 0; z-index: 251; -} - -.ie8 .minimal #taskbar .tooltip:after { - top: -6px; } .minimal #taskbar a:hover .tooltip { @@ -800,6 +962,13 @@ padding: 5px 0 0 34px; height: 19px; background: url(images/buttons.png) -1000px 0 no-repeat; +} + +#taskbar a:focus { + color: #fff; + text-shadow: 0px 1px 1px #666; + background-color: rgba(73,180,210,0.7); + outline: none; } #taskbar a.button-selected { @@ -867,6 +1036,14 @@ bottom: 20px; } +#mainscreencontent { + position: absolute; + top: 42px; + left: 0; + right: 0; + bottom: 0; +} + .minimal #mainscreen { top: 62px; } @@ -899,11 +1076,6 @@ } .minwidth { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 100%; min-width: 1024px; } @@ -964,23 +1136,26 @@ } .boxtitle, +.uibox .listing thead th, .uibox .listing thead td { font-size: 12px; font-weight: bold; - padding: 10px 8px 3px 8px; - height: 20px; /* doesn't affect table-cells in FF */ + padding: 7px 8px 6px 8px; + line-height: 20px; margin: 0; text-shadow: 0px 1px 1px #fff; border-bottom: 1px solid #bbd3da; white-space: nowrap; } +.uibox .listing thead th, .uibox .listing thead td { padding-bottom: 8px; height: auto; } .uibox .boxtitle, +.uibox .listing thead th, .uibox .listing thead td { background: #b0ccd7; color: #004458; @@ -999,6 +1174,7 @@ } .listbox .listitem a, +.listbox .listitem span, .listbox .tablink a, .listing tbody td, .listing li a { @@ -1007,27 +1183,49 @@ text-shadow: 0px 1px 1px #fff; text-decoration: none; cursor: default; - padding: 6px 8px 2px 8px; - height: 17px; /* doesn't affect table-cells in FF */ + padding: 4px 8px; + line-height: 17px; white-space: nowrap; } .listing tbody td { display: table-cell; - padding-bottom: 5px; height: auto; min-height: 14px; + outline: none; +} + +.listing tbody td a { + color: #376572; + text-shadow: 0px 1px 1px #fff; + text-decoration: none; } .webkit .listing tbody td { height: 14px; } +/* This padding-left minus the focused padding left should be half of the focused border-left */ +.listing thead tr td:first-child, +.listing tbody tr td:first-child { + border-left: 2px solid transparent; + padding-left: 6px; +} + +.listing.iconized thead tr td:first-child, +.listing.iconized tbody tr td:first-child { + padding-left: 34px; +} + +/* because of border-collapse, we make the left border twice what we want it to be - half will be hidden to the left */ +.listing.focus tbody tr.focused > td:first-child { + border-left: 2px solid #739da8; +} + .listbox .listitem.selected, .listbox .tablink.selected, .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 { @@ -1045,6 +1243,9 @@ ul.listing li { background-color: #d9ecf4; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } ul.listing li ul { @@ -1075,14 +1276,69 @@ position: relative; } +ul.treelist li ul { + margin: 0; + padding: 0; +} + +ul.treelist li ul li:last-child { + border-bottom: 0; +} + +ul.treelist li a { + display: block; + padding-left: 20px; + overflow: hidden; + text-overflow: ellipsis; +} + +ul.treelist li a:focus, +ul.listing .listitem a:focus, +ul.listing .listitem span:focus, +ul.listing.focus .listitem.focused span { + color: #fff !important; + background-color: rgba(73,180,210,0.6); + text-shadow: 0px 1px 1px #666; + outline: none; +} + +ul.treelist ul li a { + padding-left: 38px; +} + +ul.treelist ul ul li a { + padding-left: 54px; +} + +ul.treelist.iconized li a { + padding-left: 36px; +} + +ul.treelist.iconized li ul li a { + padding-left: 62px; +} + ul.treelist li div.treetoggle { position: absolute; - top: 13px; - left: 19px; + top: 7px; + left: 4px; width: 13px; height: 13px; background: url(images/listicons.png) -3px -144px no-repeat; cursor: pointer; +} + +ul.treelist li ul li div.treetoggle { + left: 22px; +} + +ul.treelist.iconized li div.treetoggle { + top: 13px; + left: 19px; +} + +ul.treelist.iconized li ul li div.treetoggle { + left: 35px; } ul.treelist li div.treetoggle.expanded { @@ -1126,6 +1382,13 @@ margin-top: 1px; } +.boxfooter a.listbutton:focus { + color: #fff; + background-color: rgba(73,180,210,0.6); + text-shadow: 0px 1px 1px #666; + outline: none; +} + .uibox .boxfooter .listbutton:first-child { border-radius: 0 0 0 4px; } @@ -1135,7 +1398,9 @@ width: 48px; height: 35px; text-indent: -5000px; - background: url(images/buttons.png) -1000px 0 no-repeat; + background-image: url(images/buttons.png); + background-position: -1000px 0; + background-repeat: no-repeat; } .boxfooter .listbutton.add .inner { @@ -1241,7 +1506,6 @@ display: table; width: 100%; table-layout: fixed; - border-collapse: collapse; border-spacing: 0; border: 1px solid #bbd3da; } @@ -1250,6 +1514,7 @@ border: 0; } +.records-table thead th, .records-table thead td { color: #69939e; font-size: 11px; @@ -1264,13 +1529,17 @@ padding: 8px 7px; overflow: hidden; text-overflow: ellipsis; + text-align: left; } +.records-table.sortheader thead th, .records-table.sortheader thead td { padding: 0; } +.records-table thead th a, .records-table thead td a, +.records-table thead th span, .records-table thead td span { display: block; padding: 7px 7px; @@ -1278,6 +1547,14 @@ text-decoration: none; overflow: hidden; text-overflow: ellipsis; +} + +.records-table thead th a:focus, +.records-table thead td a:focus { + color: #fff; + background-color: rgba(73,180,210,0.7); + text-shadow: 0px 1px 1px #666; + outline: none; } .records-table tbody td { @@ -1289,24 +1566,28 @@ overflow: hidden; text-overflow: ellipsis; background-color: #fff; + outline: none; } /* This padding-left minus the focused padding left should be half of the focused border-left */ +.records-table thead tr th:first-child, .records-table thead tr td:first-child, .records-table tbody tr td:first-child { - border-left: 0; - padding-left: 6px; + border-left: 2px solid transparent; + padding-left: 4px; } - /* because of border-collapse, we make the left border twice what we want it to be - half will be hidden to the left */ -.records-table tbody tr.focused > td:first-child { - border-left: 8px solid #DDDDDD; - padding-left: 2px; +.records-table.focus tbody tr.focused > td:first-child { + border-left: 2px solid #49b3d2; } -.records-table tr.selected td, .records-table tr.focused > td.focus { +.records-table tr.selected td { color: #fff !important; + background-color: #4db0d2 !important; +} + +.records-table.focus tr.selected td { background: #019bc6; background: -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); @@ -1317,16 +1598,6 @@ .records-table tr.selected td a, .records-table tr.selected td span { - color: #fff !important; -} - -.records-table tr.unfocused td { - color: #fff !important; - background: #4db0d2 !important; -} - -.records-table tr.unfocused td a, -.records-table tr.unfocused td span { color: #fff !important; } @@ -1413,7 +1684,7 @@ top: 34px; left: 0; right: 0; - bottom: 28px; + bottom: 0px; overflow: auto; } @@ -1422,7 +1693,7 @@ top: 0; left: 0; right: 0; - bottom: 28px; + bottom: 0px; } .footerleft { @@ -1460,6 +1731,12 @@ .propform div.prop.block input, .propform div.prop.block textarea { width: 95%; +} + +.propform a.disabled { + color: #999; + text-decoration: none; + cursor: default; } fieldset.floating { @@ -1619,11 +1896,13 @@ min-height: 40px; padding: 5px 25px; text-align: center; + font-size: 1.1em; } #login-form #message div { display: inline-block; padding-right: 0; + font-size: 12px; } #bottomline { @@ -1642,7 +1921,7 @@ #quicksearchbar { position: absolute; - right: 1px; + right: 2px; top: 2px; width: 240px; } @@ -1659,6 +1938,7 @@ font-size: 11px; } +.searchbox .searchicon, .searchbox #searchmenulink, #quicksearchbar #searchmenulink { position: absolute; @@ -1667,12 +1947,25 @@ } .searchbox #searchreset, +.searchbox .iconbutton.reset, #quicksearchbar #searchreset { position: absolute; top: 4px; right: 1px; } +.listsearchbox { + position: relative; + padding: 4px; + background: #c7e3ef; +} + +.listsearchbox input { + width: 100%; + height: 26px; + -moz-box-sizing: border-box; + box-sizing: border-box; +} /*** toolbar ***/ @@ -1704,6 +1997,14 @@ border-radius: 0; } +.dropbutton .dropbuttontip:focus, +.toolbar a.button:focus { + color: #fff; + text-shadow: 0px 1px 1px #666; + background-color: rgba(30,150,192, 0.5); + border-radius: 3px; +} + .toolbar a.button.disabled { opacity: 0.4; filter: alpha(opacity=40); @@ -1719,12 +2020,16 @@ position: absolute; right: 0; top: 0; - height: 42px; + height: 41px; width: 18px; + overflow: hidden; + text-indent: -5000px; background: url(images/buttons.png) 0 -1255px no-repeat; cursor: pointer; + outline: none; } +.dropbutton .dropbuttontip:focus, .dropbutton .dropbuttontip:hover { background-position: -26px -1255px; } @@ -1789,6 +2094,10 @@ .toolbar a.button.markmessage { background-position: center -1094px; +} + +.toolbar a.button.move { + background-position: center -1971px; } .toolbar a.button.more { @@ -1911,15 +2220,28 @@ } +a.menuselector:focus, +a.menuselector.focus, +a.iconbutton:focus, +.pagenav a.button:focus { + border-color: #4fadd5; + -webkit-box-shadow: 0 0 4px 2px rgba(71,135,177, 0.8); + -moz-box-shadow: 0 0 4px 2px rgba(71,135,177, 0.8); + -o-box-shadow: 0 0 4px 2px rgba(71,135,177, 0.8); + box-shadow: 0 0 4px 2px rgba(71,135,177, 0.8); + outline: none; +} + + /*** quota indicator ***/ #quotadisplay { left: 6px; + height: 18px; 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; } @@ -1988,7 +2310,7 @@ text-shadow: 0px 1px 1px #333; text-decoration: none; min-height: 14px; - padding: 6px 10px 6px 10px; + padding: 6px 16px 6px 10px; } .googie_list td span { @@ -2003,6 +2325,7 @@ .googie_list td.googie_list_onhover, ul.toolbarmenu li a.active:hover, +ul.toolbarmenu li a.active:focus, #rcmKSearchpane ul li.selected, select.decorated option:hover, select.decorated option[selected='selected'] { @@ -2012,6 +2335,7 @@ background: -o-linear-gradient(top, #00aad6 0%, #008fc9 100%); background: -ms-linear-gradient(top, #00aad6 0%, #008fc9 100%); background: linear-gradient(top, #00aad6 0%, #008fc9 100%); + outline: none; } ul.toolbarmenu.iconized li a, @@ -2111,6 +2435,14 @@ ul.toolbarmenu li span.conversation { background-position: 0 -1532px; +} + +ul.toolbarmenu li span.move { + background-position: 0 -2126px; +} + +ul.toolbarmenu li span.copy { + background-position: 0 -2150px; } #snippetslist { @@ -2225,6 +2557,42 @@ z-index: 255; } +/*** folder selector ***/ + +#folder-selector { + z-index: 1000; +} + +#folder-selector li a span { + background: url("images/listicons.png") 4px -2021px no-repeat; + display: block; + height: 17px; + min-height: 14px; + padding: 4px 4px 1px 28px; + overflow: hidden; + max-width: 120px; + text-overflow: ellipsis; +} + +#folder-selector li a.virtual { + opacity: .2; +} + +#folder-selector li a.inbox span { + background-position: 4px -2049px; +} +#folder-selector li a.drafts span { + background-position: 4px -1388px; +} +#folder-selector li a.sent span { + background-position: 4px -2074px; +} +#folder-selector li a.trash span { + background-position: 4px -1508px; +} +#folder-selector li a.junk span { + background-position: 4px -2100px; +} /*** attachment list ***/ @@ -2241,6 +2609,11 @@ position: relative; background: url(images/filetypes.png) 0 0 no-repeat; margin-bottom: 1px; +} + +.attachmentslist li.txt, +.attachmentslist li.text { + background-position: 0 -416px; } .attachmentslist li.pdf { @@ -2302,11 +2675,6 @@ background-position: 0 -338px; } -.attachmentslist li.txt, -.attachmentslist li.text { - background-position: 0 -416px; -} - .attachmentslist li.ics, .attachmentslist li.calendar { background-position: 0 -364px; @@ -2331,6 +2699,18 @@ background-position: 0 -494px; } +.attachmentslist li.ppt, +.attachmentslist li.pptx, +.attachmentslist li.ppsx, +.attachmentslist li.vnd.mspowerpoint { + background-position: 0 -520px; +} + +.attachmentslist li.odp, +.attachmentslist li.otp { + background-position: 0 -546px; +} + .attachmentslist li a, #compose-attachments ul li { display: block; @@ -2343,6 +2723,7 @@ overflow: hidden; text-overflow: ellipsis; line-height: 20px; + outline: none; } .attachmentslist li a.drop { @@ -2354,6 +2735,15 @@ right: 0; top: 0; padding: 0; + overflow: hidden; + text-indent: -5000px; + outline: none; +} + +.attachmentslist li a:focus, +.attachmentslist li a.drop:focus { + background-color: rgba(30,150,192, 0.5); + border-radius: 2px; } #compose-attachments ul li { @@ -2388,26 +2778,22 @@ /*** fieldset tabs ***/ -.tabsbar { - margin-bottom: 12px; - padding-top: 15px; - height: 27px; - white-space: nowrap; +.tabbed.ui-tabs { + padding: 0; + border: 0 !important; + background: none; +} + +.boxcontent.tabbed.ui-tabs { + padding: 10px; +} + +.ui-tabs .tabsbar.ui-tabs-nav { + margin-bottom: 10px; } .ui-dialog-content .tabsbar { margin-bottom: 0; -} - -.tabsbar .tablink { - padding: 15px 1px 15px 0; - background: #f8f8f8; - background: -moz-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(50%,#d3d3d3), color-stop(100%,#f8f8f8)); - background: -webkit-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); - background: -o-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); - background: -ms-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); - background: linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); } .tabsbar .tablink:last-child { @@ -2418,28 +2804,17 @@ border-right: 0; } -.tabsbar .tablink a { - padding: 15px; - color: #999; - font-size: 12px; - font-weight: bold; - text-decoration: none; +.ui-tabs .ui-tabs-nav li.tablink a { background: #fff; - border-right: 1px solid #fafafa; } -.tabsbar .tablink.selected a { - color: #004458; - 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%); - background: -ms-linear-gradient(top, #fff 40%, #efefef 100%); - background: linear-gradient(top, #fff 40%, #efefef 100%); -} - -fieldset.tab { +.ui-tabs fieldset.ui-tabs-panel { border: 0; padding: 0; margin-left: 0; + background: none; +} + +#image-selector-form.droptarget { + background: url(images/filedrop.png) center bottom no-repeat; } -- Gitblit v1.9.1