commit 357bbde671897088c7e171be09b4807ba7a3d83b Author: Aleksander Machniak Date: Sun Nov 21 10:09:44 2021 +0100 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..26eb708 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +ROUNDCUBE WEBMAIL SKIN "LARRY" +============================== + +This skin package contains the "Larry" theme of the Roundcube Webmail +software. It can be used, modified and redistributed according to +the terms described in the LICENSE section. + +For information about building or modifying Roundcube skins please visit +https://github.com/roundcube/roundcubemail/wiki/Skins + +Screendesign by FLINT / Büro für Gestaltung, Bern, Switzerland +http://bueroflint.com + + +INSTALLATION +------------ + +The skin can be installed by putting the content in a subfolder of the +the Roundcube's `skins` folder or by using composer: +``` +composer require "roundcube/larry:~1.6.0" +``` +Note: make sure to use version of the skin that matches the Roundcube version. +If it is not available use the closest lower version number. For example, +if your Roundcube version is 1.6.5, use skin version 1.6.x (with max X that exists), +if 1.6.x does not exist use 1.5.x and so on. Using 1.7.x and up might not work. + + +LICENSE +------- + +The contents of this folder 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.md file. + +See https://creativecommons.org/licenses/by-sa/3.0/ for details. diff --git a/addressbook.css b/addressbook.css new file mode 100644 index 0000000..9e2d322 --- /dev/null +++ b/addressbook.css @@ -0,0 +1,444 @@ +/** + * Roundcube webmail styles for the Address Book section + * + * Copyright (c) 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. + */ + +#addressview-left { + position: absolute; + top: 0; + left: 0; + width: 200px; + bottom: 0; + z-index: 2; +} + +#addressview-right { + position: absolute; + top: 0; + left: 212px; + right: 0; + bottom: 0; + z-index: 3; +} + +#addressbooktoolbar { + position: absolute; + top: -6px; + left: 0; + height: 40px; + white-space: nowrap; + z-index: 10; +} + +#directorylistbox { + position: absolute; + top: 0; + left: 0; + width: 100%; + bottom: 0; +} + +#addresslist { + position: absolute; + top: 0; + left: 0; + width: 260px; + bottom: 0; +} + +#contacts-box { + position: absolute; + top: 0; + left: 272px; + right: 0; + bottom: 0; +} + +#addressview-left #quicksearchbar input { + width: 156px; +} + +#directorylist li a, +.treelist li.contactsearch a, +#contacts-table .contact td.name { + background-image: url(images/listicons.png); + background-position: -100px 0; + background-repeat: no-repeat; + overflow: hidden; + text-overflow: ellipsis; +} + +#directorylist li.addressbook a { + background-position: 6px -766px; +} + +#directorylist ul li.addressbook a { + background-position: 32px -766px; +} + +#directorylist ul ul li.addressbook a { + background-position: 58px -766px; +} + +#directorylist li.addressbook.selected > a { + background-position: 6px -791px; +} + +#directorylist ul li.addressbook.selected > a { + background-position: 32px -791px; +} + +#directorylist ul ul li.addressbook.selected > a { + background-position: 58px -791px; +} + +#directorylist li.contactgroup a { + background-position: 6px -1554px; +} + +#directorylist ul li.contactgroup a { + background-position: 32px -1554px; +} + +#directorylist ul ul li.contactgroup a { + background-position: 58px -1554px; +} + +#directorylist ul ul ul li.contactgroup a { + background-position: 84px -1554px; +} + +#directorylist li.contactgroup.selected a { + background-position: 32px -1578px; +} + +#directorylist ul ul li.contactgroup.selected a { + background-position: 58px -1578px; +} + +#directorylist ul ul ul li.contactgroup.selected a { + background-position: 84px -1578px; +} + +.treelist li.contactsearch a { + background-position: 6px -1651px; +} + +.treelist li.contactsearch.selected a { + background-position: 6px -1675px; +} + +#directorylist li.addressbook div.collapsed, +#directorylist li.addressbook div.expanded { + top: 15px; +} + +#contacts-table .contact.readonly td { + font-style: italic; +} + +#contacts-table td.name { + width: 95%; +} + +#contacts-table td.action { + width: 24px; + padding: 4px; +} + +#contacts-table td.action a { + display: block; + width: 16px; + height: 14px; + text-indent: -5000px; + overflow: hidden; + background: url(images/listicons.png) -2px -1180px no-repeat; +} + +#contacts-table .contact td.name { + background-position: 4px -1601px; +} + +#contacts-table .contact.selected td.name { + background-position: 4px -1625px; + font-weight: bold; +} + +#contacts-table .group td.name { + background-position: 4px -1555px; +} + +#contacts-table .group.selected td.name { + background-position: 4px -1578px; + font-weight: bold; +} + +#contacts-table.focus .group.selected.focused td.name { + background-position: 4px -1578px; +} + +#addresslist .boxtitle { + padding-right: 95px; + overflow: hidden; + text-overflow: ellipsis; +} + +#addresslist .boxtitle a.poplink { + color: #004458; + font-size: 14px; + line-height: 12px; + text-decoration: none; +} + +#contact-frame { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0px; + border: 0; + border-radius: 4px; +} + +#headerbuttons { + position: absolute; + top: 48px; + right: 10px; + width: auto; + z-index: 10; +} + +#sourcename { + color: #999; + font-size: 10px; + margin: -5px 0 8px 2px; +} + +#contactphoto { + float: left; + margin: 0 18px 20px 0; + width: 112px; + border: 0; + padding: 0; +} + +#contactpic { + width: 112px; + min-height: 112px; + background: white; +} + +#contactpic img { + max-width: 112px; + visibility: inherit; +} + +#contactpic.droptarget { + background-image: url(images/filedrop.png); + background-position: center; + background-repeat: no-repeat; +} + +#contactpic.droptarget.hover { + background-color: #d9ecf4; + box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9); +} + +#contactpic.droptarget.active img { + opacity: 0.15; +} + +#contactpic.droptarget.hover img { + opacity: 0.05; +} + +#contactphoto .formlinks a[aria-disabled='true'] { + visibility: hidden; +} + +#contacthead { + border: 0; + margin: 0 16em 1em 0; + padding: 0; + line-height: 1.5em; + font-size: 12px; +} + +#contacthead > legend { + display: none; +} + +form #contacthead { + margin-right: 0; +} + +#contacthead .names span.namefield, +#contacthead .names input { + font-size: 140%; + font-weight: bold; +} + +#contacthead .displayname span.namefield { + font-size: 120%; + font-weight: bold; +} + +#contacthead span.nickname:before, +#contacthead span.nickname:after { + content: '"'; +} + +#contacthead input { + margin-right: 6px; + margin-bottom: 0.2em; +} + +#contacthead .names input, +#contacthead .addnames input { + width: 180px; +} + +#contacthead input.ff_prefix, +#contacthead input.ff_suffix { + width: 90px; +} + +.contactfieldgroup { + border: 0; + border-radius: 0; + background: #f7f7f7; + margin: 0 0 12px 0; + padding: 8px; +} + +.contactfieldgroup legend { + display: block; + margin: 0 -8px; + width: 100%; + font-weight: bold; + padding: 8px 8px 6px 8px; + background: #e9e9e9; + border-bottom: 1px solid #dfdfdf; + border-radius: 0; +} + +.contactfieldgroup .row { + position: relative; + margin: 0.2em 0; +} + +.contactfieldgroup .contactfieldlabel { + position: absolute; + top: 0; + left: 2px; + width: 110px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #666; + line-height: 18px; +} + +.contactfieldgroup .contactfieldlabel select { + width: 100%; + color: #666; +} + +.contactfieldgroup .contactfieldcontent { + padding-left: 120px; + min-height: 1em; + line-height: 18px; +} + +.contactfieldgroup .contactfield { + line-height: 1.3em; +} + +.contactcontrolleraddress .contactfieldcontent input { + margin-bottom: 0.1em; +} + +.contactfieldcontent.composite { + padding-bottom: 8px; +} + +.contactfieldcontent .contactfieldbutton { + vertical-align: middle; + margin-left: 0.5em; +} + +.contactfield .ff_notes { + width: 99%; +} + +a.deletebutton { + position: relative; + left: 5px; + top: -3px; + display: inline-block; + width: 24px; + height: 18px; + text-decoration: none; + text-indent: -5000px; + background: url(images/buttons.png) -7px -377px no-repeat; +} + +#import-box { + position: absolute; + bottom: 0px; + top: 34px; + left: 0; + right: 0; + overflow: auto; + padding: 10px; +} + +#import-box p, +#import-box .propform { + max-width: 50em; +} + +ul.toolbarmenu li span.qrcode { + background-position: 0 -2408px; +} + +ul.toolbarmenu li span.assigngroup { + background-position: 0 -2358px; +} + +ul.toolbarmenu li span.removegroup { + background-position: 0 -2384px; +} + +#addressbook-selector li a, +#contactgroup-selector li a { + padding-left: 2px; +} + +#addressbook-selector li a span, +#contactgroup-selector li a span { + background: url(images/listicons.png) 4px 20px no-repeat; + display: block; + height: 17px; + min-height: 14px; + padding: 4px 4px 1px 28px; + overflow: hidden; + max-width: 120px; + text-overflow: ellipsis; +} + +#addressbook-selector li a.addressbook span { + background-position: 4px -2222px; +} + +#addressbook-selector li a.contactgroup span, +#contactgroup-selector li a.contactgroup span { + background-position: 4px -2245px; +} diff --git a/addressbook.min.css b/addressbook.min.css new file mode 100644 index 0000000..0a93376 --- /dev/null +++ b/addressbook.min.css @@ -0,0 +1 @@ +#addressview-left{position:absolute;top:0;left:0;width:200px;bottom:0;z-index:2}#addressview-right{position:absolute;top:0;left:212px;right:0;bottom:0;z-index:3}#addressbooktoolbar{position:absolute;top:-6px;left:0;height:40px;white-space:nowrap;z-index:10}#directorylistbox{position:absolute;top:0;left:0;width:100%;bottom:0}#addresslist{position:absolute;top:0;left:0;width:260px;bottom:0}#contacts-box{position:absolute;top:0;left:272px;right:0;bottom:0}#addressview-left #quicksearchbar input{width:156px}#directorylist li a,.treelist li.contactsearch a,#contacts-table .contact td.name{background-image:url(images/listicons.png?v=ce39.10766);background-position:-100px 0;background-repeat:no-repeat;overflow:hidden;text-overflow:ellipsis}#directorylist li.addressbook a{background-position:6px -766px}#directorylist ul li.addressbook a{background-position:32px -766px}#directorylist ul ul li.addressbook a{background-position:58px -766px}#directorylist li.addressbook.selected>a{background-position:6px -791px}#directorylist ul li.addressbook.selected>a{background-position:32px -791px}#directorylist ul ul li.addressbook.selected>a{background-position:58px -791px}#directorylist li.contactgroup a{background-position:6px -1554px}#directorylist ul li.contactgroup a{background-position:32px -1554px}#directorylist ul ul li.contactgroup a{background-position:58px -1554px}#directorylist ul ul ul li.contactgroup a{background-position:84px -1554px}#directorylist li.contactgroup.selected a{background-position:32px -1578px}#directorylist ul ul li.contactgroup.selected a{background-position:58px -1578px}#directorylist ul ul ul li.contactgroup.selected a{background-position:84px -1578px}.treelist li.contactsearch a{background-position:6px -1651px}.treelist li.contactsearch.selected a{background-position:6px -1675px}#directorylist li.addressbook div.collapsed,#directorylist li.addressbook div.expanded{top:15px}#contacts-table .contact.readonly td{font-style:italic}#contacts-table td.name{width:95%}#contacts-table td.action{width:24px;padding:4px}#contacts-table td.action a{display:block;width:16px;height:14px;text-indent:-5000px;overflow:hidden;background:url(images/listicons.png?v=ce39.10766) -2px -1180px no-repeat}#contacts-table .contact td.name{background-position:4px -1601px}#contacts-table .contact.selected td.name{background-position:4px -1625px;font-weight:700}#contacts-table .group td.name{background-position:4px -1555px}#contacts-table .group.selected td.name{background-position:4px -1578px;font-weight:700}#contacts-table.focus .group.selected.focused td.name{background-position:4px -1578px}#addresslist .boxtitle{padding-right:95px;overflow:hidden;text-overflow:ellipsis}#addresslist .boxtitle a.poplink{color:#004458;font-size:14px;line-height:12px;text-decoration:none}#contact-frame{position:absolute;top:0;left:0;right:0;bottom:0;border:0;border-radius:4px}#headerbuttons{position:absolute;top:48px;right:10px;width:auto;z-index:10}#sourcename{color:#999;font-size:10px;margin:-5px 0 8px 2px}#contactphoto{float:left;margin:0 18px 20px 0;width:112px;border:0;padding:0}#contactpic{width:112px;min-height:112px;background:#fff}#contactpic img{max-width:112px;visibility:inherit}#contactpic.droptarget{background-image:url(images/filedrop.png?v=be5d.415);background-position:center;background-repeat:no-repeat}#contactpic.droptarget.hover{background-color:#d9ecf4;box-shadow:0 0 5px 2px rgba(71,135,177,.9)}#contactpic.droptarget.active img{opacity:.15}#contactpic.droptarget.hover img{opacity:.05}#contactphoto .formlinks a[aria-disabled=true]{visibility:hidden}#contacthead{border:0;margin:0 16em 1em 0;padding:0;line-height:1.5em;font-size:12px}#contacthead>legend{display:none}form #contacthead{margin-right:0}#contacthead .names span.namefield,#contacthead .names input{font-size:140%;font-weight:700}#contacthead .displayname span.namefield{font-size:120%;font-weight:700}#contacthead span.nickname:before,#contacthead span.nickname:after{content:'"'}#contacthead input{margin-right:6px;margin-bottom:.2em}#contacthead .names input,#contacthead .addnames input{width:180px}#contacthead input.ff_prefix,#contacthead input.ff_suffix{width:90px}.contactfieldgroup{border:0;border-radius:0;background:#f7f7f7;margin:0 0 12px 0;padding:8px}.contactfieldgroup legend{display:block;margin:0 -8px;width:100%;font-weight:700;padding:8px 8px 6px 8px;background:#e9e9e9;border-bottom:1px solid #dfdfdf;border-radius:0}.contactfieldgroup .row{position:relative;margin:.2em 0}.contactfieldgroup .contactfieldlabel{position:absolute;top:0;left:2px;width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666;line-height:18px}.contactfieldgroup .contactfieldlabel select{width:100%;color:#666}.contactfieldgroup .contactfieldcontent{padding-left:120px;min-height:1em;line-height:18px}.contactfieldgroup .contactfield{line-height:1.3em}.contactcontrolleraddress .contactfieldcontent input{margin-bottom:.1em}.contactfieldcontent.composite{padding-bottom:8px}.contactfieldcontent .contactfieldbutton{vertical-align:middle;margin-left:.5em}.contactfield .ff_notes{width:99%}a.deletebutton{position:relative;left:5px;top:-3px;display:inline-block;width:24px;height:18px;text-decoration:none;text-indent:-5000px;background:url(images/buttons.png?v=2e08.13608) -7px -377px no-repeat}#import-box{position:absolute;bottom:0;top:34px;left:0;right:0;overflow:auto;padding:10px}#import-box p,#import-box .propform{max-width:50em}ul.toolbarmenu li span.qrcode{background-position:0 -2408px}ul.toolbarmenu li span.assigngroup{background-position:0 -2358px}ul.toolbarmenu li span.removegroup{background-position:0 -2384px}#addressbook-selector li a,#contactgroup-selector li a{padding-left:2px}#addressbook-selector li a span,#contactgroup-selector li a span{background:url(images/listicons.png?v=ce39.10766) 4px 20px no-repeat;display:block;height:17px;min-height:14px;padding:4px 4px 1px 28px;overflow:hidden;max-width:120px;text-overflow:ellipsis}#addressbook-selector li a.addressbook span{background-position:4px -2222px}#addressbook-selector li a.contactgroup span,#contactgroup-selector li a.contactgroup span{background-position:4px -2245px} \ No newline at end of file diff --git a/bin/build.sh b/bin/build.sh new file mode 100755 index 0000000..384eb79 --- /dev/null +++ b/bin/build.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +PWD=`dirname "$0"` + +$PWD/jsshrink.sh && $PWD/cssshrink.sh && $PWD/cssimages.sh diff --git a/bin/cssimages.sh b/bin/cssimages.sh new file mode 100755 index 0000000..fb94e56 --- /dev/null +++ b/bin/cssimages.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env php + $image) { + if (!in_array($image, $seen) && preg_match('/\.(gif|ico|png|jpg|jpeg)$/', $image)) { + $filepath = pathinfo($file, PATHINFO_DIRNAME) . "/$image"; + + if (file_exists($filepath)) { + $sum = substr(md5_file($filepath), 0, 4) . '.' . filesize($filepath); + } + else { + print "ERROR: Missing image: $filepath\n"; + continue; + } + + $content = str_replace($matches[0][$idx], "url($image?v=$sum)", $content); + } + + $seen[] = $image; + } + + file_put_contents($file, $content); + } +} + + +function get_files($dir) +{ + $files = []; + $dh = opendir($dir); + + while ($file = readdir($dh)) { + if (preg_match('/^(.+)\.min\.css$/', $file, $m)) { + $files[] = "$dir/$file"; + } + else if ($file[0] != '.' && is_dir("$dir/$file")) { + foreach (get_files("$dir/$file") as $f) { + $files[] = $f; + } + } + } + + closedir($dh); + + return $files; +} diff --git a/bin/cssshrink.sh b/bin/cssshrink.sh new file mode 100755 index 0000000..2cf3256 --- /dev/null +++ b/bin/cssshrink.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +set -e + +PWD=`dirname "$0"` + +do_shrink() { + rm -f "$2" + csso $1 -o $2 --no-restructure +} + +if which csso > /dev/null 2>&1; then + : +else + echo "csso not found. Please install e.g. 'npm install -g csso-cli'." + exit 1 +fi + +# compress single file from argument +if [ $# -gt 0 ]; then + CSS_FILE="$1" + + echo "Shrinking $CSS_FILE" + minfile=`echo $CSS_FILE | sed -e 's/\.css$/\.min\.css/'` + do_shrink "$CSS_FILE" "$minfile" + exit +fi + +DIRS="$PWD/.. $PWD/../plugins/*" +# default: compress application scripts +for dir in $DIRS; do + for file in $dir/*.css; do + if echo "$file" | grep -q -e '.min.css$'; then + continue + fi + if [ ! -f "$file" ]; then + continue + fi + + echo "Shrinking $file" + minfile=`echo $file | sed -e 's/\.css$/\.min\.css/'` + do_shrink "$file" "$minfile" + done +done diff --git a/bin/jsshrink.sh b/bin/jsshrink.sh new file mode 100755 index 0000000..16a2b0d --- /dev/null +++ b/bin/jsshrink.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +PWD=`dirname "$0"` +LANG_IN='ECMASCRIPT5' + +do_shrink() { + rm -f "$2" + # copy the first comment block with license information for LibreJS + grep -q '@lic' $1 && sed -n '/\/\*/,/\*\// { p; /\*\//q; }' $1 > $2 + uglifyjs --compress --mangle -- $1 >> $2 +} + +if which uglifyjs > /dev/null 2>&1; then + : +else + echo "uglifyjs not found. Please install e.g. 'npm install -g uglify-js'." + exit 1 +fi + +# compress single file from argument +if [ $# -gt 0 ]; then + JS_FILE="$1" + + if [ $# -gt 1 ]; then + LANG_IN="$2" + fi + + echo "Shrinking $JS_FILE" + minfile=`echo $JS_FILE | sed -e 's/\.js$/\.min\.js/'` + do_shrink "$JS_FILE" "$minfile" "$LANG_IN" + exit +fi + +DIRS="$PWD/.. $PWD/../plugins/*" +# default: compress application scripts +for dir in $DIRS; do + for file in $dir/*.js; do + if echo "$file" | grep -q -e '.min.js$'; then + continue + fi + if [ ! -f "$file" ]; then + continue + fi + + echo "Shrinking $file" + minfile=`echo $file | sed -e 's/\.js$/\.min\.js/'` + do_shrink "$file" "$minfile" "$LANG_IN" + done +done diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..d7b27bf --- /dev/null +++ b/composer.json @@ -0,0 +1,9 @@ +{ + "name": "roundcube/larry", + "description": "The Larry theme for Roundcube Webmail", + "license": "CC-BY-SA-3.0", + "type": "roundcube-skin", + "require": { + "roundcube/plugin-installer": ">=0.3.0" + } +} diff --git a/embed.css b/embed.css new file mode 100644 index 0000000..031e201 --- /dev/null +++ b/embed.css @@ -0,0 +1,36 @@ +/** + * Roundcube webmail "embedded" stylesheets + * + * Copyright (c) The Roundcube Dev Team + * + * 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. + */ + +.rcmail-inline-message { + font-family: sans-serif; + font-size: 11px; + font-weight: bold; + color: #996600; + border: 1px solid #ffdf0e; + background: url("images/messages.png") no-repeat scroll 5px -83px #fef893; + padding: 6px 12px 4px 30px; + margin-bottom: 0.8em; +} + +.rcmail-inline-message em { + font-size: 90%; +} + +.rcmail-inline-buttons { + margin-bottom: 0; + display: inline; +} + +.rcmail-inline-buttons > button { + margin-left: 1em; + vertical-align: baseline; + line-height: 12px; +} diff --git a/embed.min.css b/embed.min.css new file mode 100644 index 0000000..6003ec2 --- /dev/null +++ b/embed.min.css @@ -0,0 +1 @@ +.rcmail-inline-message{font-family:sans-serif;font-size:11px;font-weight:700;color:#960;border:1px solid #ffdf0e;background:url(images/messages.png?v=72e9.1264) no-repeat 5px -83px #fef893;padding:6px 12px 4px 30px;margin-bottom:.8em}.rcmail-inline-message em{font-size:90%}.rcmail-inline-buttons{margin-bottom:0;display:inline}.rcmail-inline-buttons>button{margin-left:1em;vertical-align:baseline;line-height:12px} \ No newline at end of file diff --git a/googiespell.css b/googiespell.css new file mode 100644 index 0000000..3408ac1 --- /dev/null +++ b/googiespell.css @@ -0,0 +1,108 @@ +/***** modified styles for GoogieSpell *****/ + +.googie_window { + font-size: 11px; + width: 185px; + margin: 0; + padding: 0; +} + +.googie_edit_layer { + padding: 4px; + font-size: 9pt; + font-family: monospace; + background-color: #fff; + border: 0; +} + +.googie_edit_layer span { + font-family: monospace; +} + +.googie_list { + width: 100%; + margin: 0; + padding: 0; + border-spacing: 0; +} + +.googie_list li { + min-width: 80px; + width: auto; +} + +.googie_list li.googie_list_selected { + background: #4db0d2; +} + +.googie_list form { + padding: 3px; +} + +.googie_list_close { + font-size: 11px; + color: #b91414; +} + +.googie_list_onhover .googie_list_close { + color: #fff; +} + +.googie_list_revert { + font-size: 11px; + color: #b91414; +} + +.googie_list_revert:hover { + color: #fff; +} + +.googie_link { + color: #b91414; + text-decoration: underline; + cursor: pointer; + font-size: 9pt; + font-family: monospace; +} + +.googie_check_spelling_link { + color: #0069A6; + font-size: 11px; + text-decoration: underline; + cursor: pointer; +} + +.googie_no_style { + text-decoration: none; +} + +.googie_check_spelling_ok, +.googie_resume_editing { + color: green; + font-size: 11px; + cursor: pointer; + text-decoration: underline; +} + +.googie_check_spelling_ok:hover, +.googie_resume_editing:hover { + text-decoration: underline; +} + +.googie_lang_3d_click img, +.googie_lang_3d_on img { + vertical-align: middle; + cursor: pointer; + border: 0; +} + +.googie_ok_button { + background: url(images/googiespell/ok.gif) no-repeat center center transparent !important; + width: 32px; + height: 16px; + cursor: pointer; + margin: 0 5px; + padding: 0; + border: 0 !important; + text-indent: -5000px; +} diff --git a/googiespell.min.css b/googiespell.min.css new file mode 100644 index 0000000..0913074 --- /dev/null +++ b/googiespell.min.css @@ -0,0 +1 @@ +.googie_window{font-size:11px;width:185px;margin:0;padding:0}.googie_edit_layer{padding:4px;font-size:9pt;font-family:monospace;background-color:#fff;border:0}.googie_edit_layer span{font-family:monospace}.googie_list{width:100%;margin:0;padding:0;border-spacing:0}.googie_list li{min-width:80px;width:auto}.googie_list li.googie_list_selected{background:#4db0d2}.googie_list form{padding:3px}.googie_list_close{font-size:11px;color:#b91414}.googie_list_onhover .googie_list_close{color:#fff}.googie_list_revert{font-size:11px;color:#b91414}.googie_list_revert:hover{color:#fff}.googie_link{color:#b91414;text-decoration:underline;cursor:pointer;font-size:9pt;font-family:monospace}.googie_check_spelling_link{color:#0069a6;font-size:11px;text-decoration:underline;cursor:pointer}.googie_no_style{text-decoration:none}.googie_check_spelling_ok,.googie_resume_editing{color:green;font-size:11px;cursor:pointer;text-decoration:underline}.googie_check_spelling_ok:hover,.googie_resume_editing:hover{text-decoration:underline}.googie_lang_3d_click img,.googie_lang_3d_on img{vertical-align:middle;cursor:pointer;border:0}.googie_ok_button{background:url(images/googiespell/ok.gif?v=e1b6.160) no-repeat center center!important;width:32px;height:16px;cursor:pointer;margin:0 5px;padding:0;border:0!important;text-indent:-5000px} \ No newline at end of file diff --git a/images/addcontact.png b/images/addcontact.png new file mode 100644 index 0000000..4c29878 Binary files /dev/null and b/images/addcontact.png differ diff --git a/images/ajaxloader.gif b/images/ajaxloader.gif new file mode 100644 index 0000000..89f0756 Binary files /dev/null and b/images/ajaxloader.gif differ diff --git a/images/ajaxloader_dark.gif b/images/ajaxloader_dark.gif new file mode 100644 index 0000000..f1cce35 Binary files /dev/null and b/images/ajaxloader_dark.gif differ diff --git a/images/buttons.png b/images/buttons.png new file mode 100644 index 0000000..a4ab579 Binary files /dev/null and b/images/buttons.png differ diff --git a/images/contactgroup.png b/images/contactgroup.png new file mode 100644 index 0000000..0290909 Binary files /dev/null and b/images/contactgroup.png differ diff --git a/images/contactpic.png b/images/contactpic.png new file mode 100644 index 0000000..cd309ee Binary files /dev/null and b/images/contactpic.png differ diff --git a/images/contactpic_32px.png b/images/contactpic_32px.png new file mode 100644 index 0000000..7f1b753 Binary files /dev/null and b/images/contactpic_32px.png differ diff --git a/images/contactpic_48px.png b/images/contactpic_48px.png new file mode 100644 index 0000000..a76aa05 Binary files /dev/null and b/images/contactpic_48px.png differ diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000..9f8c783 Binary files /dev/null and b/images/favicon.ico differ diff --git a/images/filedrop.png b/images/filedrop.png new file mode 100644 index 0000000..c06554a Binary files /dev/null and b/images/filedrop.png differ diff --git a/images/filetypes.png b/images/filetypes.png new file mode 100644 index 0000000..1294718 Binary files /dev/null and b/images/filetypes.png differ diff --git a/images/googiespell/change_lang.gif b/images/googiespell/change_lang.gif new file mode 100644 index 0000000..0ed3edc Binary files /dev/null and b/images/googiespell/change_lang.gif differ diff --git a/images/googiespell/indicator.gif b/images/googiespell/indicator.gif new file mode 100644 index 0000000..b556bb0 Binary files /dev/null and b/images/googiespell/indicator.gif differ diff --git a/images/googiespell/ok.gif b/images/googiespell/ok.gif new file mode 100644 index 0000000..f3fbdee Binary files /dev/null and b/images/googiespell/ok.gif differ diff --git a/images/googiespell/spellc.gif b/images/googiespell/spellc.gif new file mode 100644 index 0000000..6ed9360 Binary files /dev/null and b/images/googiespell/spellc.gif differ diff --git a/images/google-icon.svg b/images/google-icon.svg new file mode 100644 index 0000000..e2c39ed --- /dev/null +++ b/images/google-icon.svg @@ -0,0 +1 @@ + diff --git a/images/listicons.png b/images/listicons.png new file mode 100644 index 0000000..d58dad5 Binary files /dev/null and b/images/listicons.png differ diff --git a/images/messages.png b/images/messages.png new file mode 100644 index 0000000..b33705f Binary files /dev/null and b/images/messages.png differ diff --git a/images/messages_dark.png b/images/messages_dark.png new file mode 100644 index 0000000..c48b2d1 Binary files /dev/null and b/images/messages_dark.png differ diff --git a/images/microsoft-icon.svg b/images/microsoft-icon.svg new file mode 100644 index 0000000..25bec39 --- /dev/null +++ b/images/microsoft-icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/images/overflowshadow.png b/images/overflowshadow.png new file mode 100644 index 0000000..80f1b44 Binary files /dev/null and b/images/overflowshadow.png differ diff --git a/images/quota.png b/images/quota.png new file mode 100644 index 0000000..44efaa7 Binary files /dev/null and b/images/quota.png differ diff --git a/images/roundcube_logo.png b/images/roundcube_logo.png new file mode 100644 index 0000000..d32dea6 Binary files /dev/null and b/images/roundcube_logo.png differ diff --git a/images/selector.png b/images/selector.png new file mode 100644 index 0000000..9cd85f8 Binary files /dev/null and b/images/selector.png differ diff --git a/images/splitter.png b/images/splitter.png new file mode 100644 index 0000000..3fde7d9 Binary files /dev/null and b/images/splitter.png differ diff --git a/images/watermark.jpg b/images/watermark.jpg new file mode 100644 index 0000000..d4ea392 Binary files /dev/null and b/images/watermark.jpg differ diff --git a/includes/footer.html b/includes/footer.html new file mode 100644 index 0000000..3be29f0 --- /dev/null +++ b/includes/footer.html @@ -0,0 +1,5 @@ + + + diff --git a/includes/header.html b/includes/header.html new file mode 100644 index 0000000..89a625a --- /dev/null +++ b/includes/header.html @@ -0,0 +1,44 @@ + + + diff --git a/includes/links.html b/includes/links.html new file mode 100644 index 0000000..29ef88e --- /dev/null +++ b/includes/links.html @@ -0,0 +1,11 @@ + + + + + +.css" /> + + + + + diff --git a/includes/mailtoolbar.html b/includes/mailtoolbar.html new file mode 100644 index 0000000..5f6ede0 --- /dev/null +++ b/includes/mailtoolbar.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + +