From f627f661f29accd5fe1732cd0b83f479ec6101f3 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Wed, 4 Dec 2019 18:57:29 +0000 Subject: [PATCH] add bote's css and images --- webui/src/main/css/i2pbote.css | 934 +++++++++++++++++++++++ webui/src/main/css/noto.css | 24 + webui/src/main/css/roboto.css | 72 ++ webui/src/main/images/addressbook.png | Bin 0 -> 280 bytes webui/src/main/images/attachment.png | Bin 0 -> 328 bytes webui/src/main/images/clear_password.png | Bin 0 -> 290 bytes webui/src/main/images/compose.png | Bin 0 -> 272 bytes webui/src/main/images/connect_error.png | Bin 0 -> 421 bytes webui/src/main/images/connected.png | Bin 0 -> 371 bytes webui/src/main/images/connecting.png | Bin 0 -> 393 bytes webui/src/main/images/default.png | Bin 0 -> 213 bytes webui/src/main/images/delay.png | Bin 0 -> 424 bytes webui/src/main/images/delete.png | Bin 0 -> 199 bytes webui/src/main/images/favicon.png | Bin 0 -> 1624 bytes webui/src/main/images/folder.png | Bin 0 -> 207 bytes webui/src/main/images/identities.png | Bin 0 -> 294 bytes webui/src/main/images/inbox.png | Bin 0 -> 277 bytes webui/src/main/images/not_started.png | Bin 0 -> 435 bytes webui/src/main/images/outbox.png | Bin 0 -> 323 bytes webui/src/main/images/refresh.png | Bin 0 -> 356 bytes webui/src/main/images/send_white.png | Bin 0 -> 292 bytes webui/src/main/images/sent.png | Bin 0 -> 295 bytes webui/src/main/images/settings.png | Bin 0 -> 423 bytes webui/src/main/images/wait.gif | Bin 0 -> 5269 bytes webui/src/main/images/warning.png | Bin 0 -> 488 bytes 25 files changed, 1030 insertions(+) create mode 100644 webui/src/main/css/i2pbote.css create mode 100644 webui/src/main/css/noto.css create mode 100644 webui/src/main/css/roboto.css create mode 100644 webui/src/main/images/addressbook.png create mode 100644 webui/src/main/images/attachment.png create mode 100644 webui/src/main/images/clear_password.png create mode 100644 webui/src/main/images/compose.png create mode 100644 webui/src/main/images/connect_error.png create mode 100644 webui/src/main/images/connected.png create mode 100644 webui/src/main/images/connecting.png create mode 100644 webui/src/main/images/default.png create mode 100644 webui/src/main/images/delay.png create mode 100644 webui/src/main/images/delete.png create mode 100644 webui/src/main/images/favicon.png create mode 100644 webui/src/main/images/folder.png create mode 100644 webui/src/main/images/identities.png create mode 100644 webui/src/main/images/inbox.png create mode 100644 webui/src/main/images/not_started.png create mode 100644 webui/src/main/images/outbox.png create mode 100644 webui/src/main/images/refresh.png create mode 100644 webui/src/main/images/send_white.png create mode 100644 webui/src/main/images/sent.png create mode 100644 webui/src/main/images/settings.png create mode 100644 webui/src/main/images/wait.gif create mode 100644 webui/src/main/images/warning.png diff --git a/webui/src/main/css/i2pbote.css b/webui/src/main/css/i2pbote.css new file mode 100644 index 00000000..2b5f479f --- /dev/null +++ b/webui/src/main/css/i2pbote.css @@ -0,0 +1,934 @@ +@import url("roboto.css"); +@import url("noto.css"); + +/* General */ + +a:link { + text-decoration: none; + word-wrap: break-word; +} +a:visited { + color: #555; + text-decoration: none; +} +a:hover { + color: #4CA7FF; + text-decoration: underline; +} +a:active { + color: #909090; + text-decoration: underline; +} +body { + background: #f5f5f5; /* Grey 100 */ + color: #202020; + font: 62.5%/150% "Roboto", "NotoSans", arial, sans-serif; + margin: 0; + padding: 0em; +} +button, button:visited { + background: rgba(102, 90, 90, 0.2); /* 20% #999999 */ + border: medium none; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3); + color: #555; + cursor: pointer; + font-weight: 700; + height: 36px; + margin: 6px 0; + min-width: 88px; + text-align: center; + text-decoration: none; + text-transform: uppercase; + transition-duration: 0.25s; + transition-property: box-shadow; + vertical-align: middle; +} +button:active { + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2), 0 10px 14px rgba(0, 0, 0, 0.1); +} +button[disabled] { + background: rgba(0, 0, 0, 0.12); /* 12% #000000 */ + box-shadow: none; + color: rgba(0, 0, 0, 0.26); /* 26% #000000 */ + cursor: default; +} +h1 {font-size: 2em} /* displayed at 24px */ +h2 {font-size: 1.5em} /* displayed at 18px */ +h3 {font-size: 1.25em} /* displayed at 15px */ +h4 {font-size: 1em} /* displayed at 12px */ +img { + border: none; +} +input, select, th, td {font-size: 1em} +input { + background: white; + color: #202020; + margin: 10px 10px 10px 10px; + border: 1px solid white; + padding: 10px; + font-weight: bold; + text-decoration: none; + min-width: 110px; +} +input, input:visited { + border: 1px outset #999; + background: white; + color: #202020; + margin: 5px; + font-weight: bold; + padding: 1px 2px; + text-decoration: none; + min-width: 110px; + color: #006; + opacity: 0.9; +} +input:hover { + background: white; + color: #202020; + border: 1px solid #f60; + opacity: 1.0; +} +input:active { + background: white; + color: #202020; + border: 1px solid #f60; + opacity: 1.0; +} +input[type=text] { + background: white; + color: #001; + margin: 5px; + padding: 5px; + font-size: 1em; + font-weight: bold; + border: 1px solid #001; + text-decoration: none; +} +input[type=checkbox] { + min-width: 10px; /* for Chrome */ + border: 0 !important; +} +select { + background: white; + color: #202020; + padding: 2px; + margin: 5px; + border: 1px solid #001; + text-align: left !important; +} +submit { + background: #f00; + color: #eef; + margin: 10px 2px 10px 0; + padding: 2px; + font-weight: bold; + border: 1px solid #001; + text-decoration: none; +} +textarea { + width: 80%; + padding: 5px; + margin: 5px; + background: white; + color: #003; + line-height: 130%; + min-height: 100px; + border: 1px solid #001; +} +wbr:after { content: "\00200B" } /* For Opera */ + + +/* iframe styling */ + +iframe { + border: none; +} +.iframe-body { + background-color: transparent; + border: none; + margin: 0px; +} +.button-frame { + height: 78px; + width: 100%; +} +.folders-frame { + height: 266px; + width: 100%; +} +.status-frame { + height: auto; + max-height: 98px; + width: 100%; +} +.status-frame-connect { + text-align: center; +} + + +/* Header */ + +.titlebar { + background: #3f51b5; /* Indigo 500 */ + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + color: white; + min-height: 64px; + position: relative; + white-space: normal; + z-index: 8; +} +.title { + font-size: 2em; + padding: 22px 0 8px 28px; +} +.subtitle { + display: inline-block; + font-size: 1.4em; + padding: 0 0 22px 28px; + width: 212px; +} +.pagetitle { + display: inline-block; + font-size: 2em; + padding-left: 28px; +} +.password { + height: 24px; + position: absolute; + right: 16px; + top: 22px; + width: 24px; +} + + +/* Side menu */ + +aside { + background: white; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + float: left; + position: relative; + width: 240px; + z-index: 8; +} +.menubox { + clear: left; +} +.menubox, .folderbox, .statusbox { + font-size: 1.4em; +} +.menubox h2, .folderbox h2 { + color: rgba(0, 0, 0, 0.54); /* 54% #000000 */ + font-size: 1em; + font-weight: 500; + height: 48px; + line-height: 48px; + margin: 0 16px 0 28px; + overflow: hidden; + text-transform: none; +} +.menubox-divider { + border-bottom: 1px solid #eeeeee; + margin: 8px 0; +} +.menuitem { + color: rgba(0, 0, 0, 0.87) !important; /* 87% #000000 */ + display: block; + font-weight: 500; + line-height: 24px; + min-height: 24px; + padding: 12px 0 12px 28px; +} +.menuitem:hover, .menuitem.selected { + background: #e8e8e8; /* Grey 300 */ + color: #3f51b5 !important; /* Indigo 500 */ + text-decoration: none; +} +.menuitem div { + display: inline-block; + vertical-align: middle; +} +.menu-icon { + height: 24px; + width: 24px; + padding: 0; + margin: 0; + overflow: hidden; +} +.menu-icon img { + height: 24px; + outline: medium none; + width: 24px; +} +.menu-text { + margin: 0 24px; +} +.menubox h2 a { + font-size: 1em; + color: white; + letter-spacing: 0.05em; + font-weight: 100; + word-wrap: none; +} +.checkmail { + font-size: 1.2em; + margin-left: 28px; + margin-top: 12px; +} +.checkmail img { + vertical-align: middle; +} +.compose.frame { + display: none; +} +.lastcheck { + font-size: 1.2em; + margin-left: 28px; + margin-top: .25em; +} +/* +http://nicolasgallagher.com/css-image-replacement-with-pseudo-elements/ +See also .menu-icon +*/ +.folder .menu-icon:before, .menuitem.identities .menu-icon:before, .menuitem.address-book .menu-icon:before, .menuitem.settings .menu-icon:before { + display: inline-block; + font-size: 0; + line-height: 0; +} +.folder.Inbox .menu-icon:before { + content: url("images/inbox.png"); +} +.folder.Outbox .menu-icon:before { + content: url("images/outbox.png"); +} +.folder.Sent .menu-icon:before { + content: url("images/sent.png"); +} +.folder.Trash .menu-icon:before { + content: url("images/delete.png"); +} +.folder-new { + text-align: right; +} +.folder-incomplete { + font-size: 0.857143em; + font-weight: 300; + margin: 0 24px 0 48px; +} +.menuitem.identities .menu-icon:before { + content: url("images/identities.png"); +} +.menuitem.address-book .menu-icon:before { + content: url("images/addressbook.png"); +} +.menuitem.settings .menu-icon:before { + content: url("images/settings.png"); +} + + +/* Main content */ + +.main { + background: white; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + color: #202020; + font-size: 1.4em; + line-height: 1.4em; + margin: 0px 0px 0px 240px; + padding: 16px 28px 16px 28px; + text-align: left; +} +.main nav { + background: white; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + float: right; + margin: -16px -16px 16px 16px; + max-width: 240px; + padding-right: 1em; +} +@media screen and (min-width: 960px) { + .main { + margin-right: 240px; + } + .main nav { + margin-right: -256px; + } + .foldermain, .emailmain { + margin-right: 120px; + } +} +.main form { + color: #202020; + font-size: 1em; + margin-left: 1em; +} +.main form.onebutton { + display: inline-block; +} +.main h1 { + display: none; +} +.main p { + font-size: 1em; + margin-left: 1em; +} +.main noscript { +} +.snackbar { + position: fixed; + bottom: 0; + left: 0; + right: 0; + text-align: center; + z-index: 10; +} +.snackbar > div { + align-items: center; + background-color: #323232; + border-radius: 2px; + color: white; + display: inline-flex; + font-size: 1.07692em; + justify-content: space-between; + line-height: 1.69231em; + max-width: 568px; + min-height: 20px; + min-width: 288px; + padding: 14px 24px; + text-align: left; +} +.snackbar > div > .action { + color: #ffab40; /* Orange A200 */ + font-weight: 500; + margin-left: 48px; + text-transform: uppercase; +} +.errorMessage::before { + content: url("images/connect_error.png"); + display: block; + float: left; + margin-right: 0.5em; +} +.stackTrace { + white-space: pre; +} +.subheading { + font-weight: bold; +} +.warning { + color: red; +} +.underline { + border-bottom: 1px solid #000022; + padding: 5px 0px 5px 0px; + margin: 0px 0px 10px 0px; +} +.ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} + + +/* Tables */ + +table { + table-layout: fixed; + width: 100%; +} + +table td, th { + padding-left: 10px; + padding-top: 3px; + background: white; + white-space: nowrap; + overflow-x: hidden; + font-size: 1em; + font-weight: normal; +} +th[class^="header-column"] { + font-size: 0.923077em; +} +th[class^="header-column"], th[class^="header-column"] a { + color: #333; + font-weight: 500; + text-transform: uppercase; +} +.even-table-cell td { + background: white; + color: #202020; +} +.odd-table-cell td { + background: white; + color: #202020; +} +td a:link, td a:visited { + color: #202020; +} + + +/* Email folders */ + +.compose.float button { + background-color: #ff9100; /* Orange A400 */ + border: medium none; + border-radius: 50%; + bottom: 24px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3), 0 0 1px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.25) inset, 0 -1px 0 rgba(0, 0, 0, 0.15) inset; + height: 56px; + margin: 0; + min-width: auto; + padding: 0; + position: fixed; + right: 24px; + transition-duration: 0.25s; + transition-property: background-color, box-shadow; + width: 56px; + z-index: 1; +} +.compose.float button:hover { + background-color: #ffab40; /* Orange A200 */ + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2), 0 10px 14px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.25) inset, 0 -1px 0 rgba(0, 0, 0, 0.1) inset; +} +.compose.float img { + height: 24px; + width: 24px; +} +.emailmain { + background: none; + box-shadow: none; + padding: 0; +} +.emailtext { + background: white; + border: medium none; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); + margin: 40px 60px 20px; + padding: 0 15px 15px 25px; +} +.header-column-replied { + width: 6px; +} +.header-column-from { + width: 18%; +} +.header-column-known { + width: 6%; +} +.header-column-delivery { + width: 8%; +} +.header-column-to { + width: 18%; +} +.header-column-subject { + width: 30%; +} +.header-column-attachment { + width: 24px; +} +.header-column-date { + width: 18%; +} +.header-column-status { + width: 100px; +} +.header-column-trash { + width: 24px; +} +.sig-invalid { + color: red; + text-align: center; +} +.anon-sender { + font-style: italic; +} +.sender-known { + text-align: center; +} +.deliveryComplete { + color: green; + text-align: center; +} +.deliveryIncomplete { + color: black; + text-align: center; +} +.folder-item-new a { + font-weight: bold; +} +.folder-item-old a { + font-weight: normal; +} + + +/* Identities */ + +.header-column-default, .header-column-check-mail { + width: 24px; +} +.data-column-default { + text-align: center; +} +.header-column-public-name { + width: 20%; +} +.header-column-description { + width: 30%; +} +.header-column-id-email-dest { + width: 40%; +} +.header-column-check-email { + width: 24px; +} +.header-column-check { + width: 20px; +} +.header-column-name { + width: 20%; +} +.header-column-text { + width: 30%; +} +.header-column-addr-email-dest { + width: 40%; +} + + +/* Edit address */ + +.deleteIdentityBtn { + text-align: right; +} + +.addtl-text { + font-weight: 100; + font-size: 0.7em; +} + +.field-label { + font-weight: bold; + font-size: 1em; + height: 1em; +} + +.field-label-multiline { + font-weight: bold; + vertical-align: top; +} + +.destination { + color: #003; + font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; + word-wrap: break-word; +} + +.hidden-text { + display: none; +} + +.identity-form-label { + position: absolute; + margin-top: 10px; + margin-left: 5px; + font-weight: bold; +} +.identity-form-value { + top: 0px; + margin-left: 230px; + margin-right: 5px; + margin-top: 10px; +} +.identity-form-checkbox { + top: 0px; + margin-left: 230px; + margin-right: 5px; + margin-top: 7px; +} +.identity-form-picture img { + top: 0px; + margin-left: 230px; + margin-right: 5px; + margin-top: 10px; + width: 100px; +} +.identity-form-text { + top: 0px; + margin-left: 230px; + margin-right: 5px; + margin-top: 10px; + white-space: pre; + font-family: monospace; + white-space: -pre-wrap; + white-space: pre-wrap; + word-wrap: break-word; +} +.identity-buttons { + text-align: left; +} +.identity-delete { + text-align: right; +} +.identity-buttons, .identity-delete { + display: inline-block; + width: 250px; +} +.full-identity { + margin-right: 10px; + font-weight: bold; +} + +.publish-form-label { + position: absolute; + margin-top: 10px; + margin-left: 5px; + font-weight: bold; +} +.publish-form-value { + top: 0px; + margin-left: 180px; + margin-right: 5px; + margin-top: 10px; +} +.publish-form-value textarea { + width: 600px; +} + +.contact-detail-container { + margin: 0px auto; + overflow: hidden; +} +.contact-detail-left { + width: 100px; + float: left; + font-weight: bold; + padding-left: 10px; + padding-right: 15px; + padding-bottom: 10px; +} +.contact-detail-left img { + width: 100%; + padding-bottom: 5px; +} +.contact-detail-text { + width: 100%; + padding-left: 10px; + padding-bottom: 10px; + white-space: pre; + font-family: monospace; + white-space: -pre-wrap; + white-space: pre-wrap; + word-wrap: break-word; +} +.contact-detail-dest { + width: 100%; + padding-left: 10px; + padding-bottom: 10px; + word-wrap: break-word; +} +.contact-form-label { + position: absolute; + margin-top: 10px; + margin-left: 5px; + font-weight: bold; +} +.contact-form-value { + top: 0px; + margin-left: 150px; + margin-right: 5px; + margin-top: 10px; +} +.contact-form-picture img { + top: 0px; + margin-left: 120px; + margin-right: 5px; + margin-top: 10px; + width: 100px; +} +.contact-form-text { + top: 0px; + margin-left: 120px; + margin-right: 5px; + margin-top: 10px; + white-space: pre; + font-family: monospace; + white-space: -pre-wrap; + white-space: pre-wrap; + word-wrap: break-word; +} + + +/* New email */ + +.email-form-button-send { + height: 24px; + position: absolute; + right: 56px; + top: 22px; + width: 24px; + z-index: 10; +} +.email-form-button-send button { + background: none; + box-shadow: none; + height: 24px; + margin: 0; + min-width: auto; + overflow: hidden; + padding: 0; + width: 24px; +} +.email-form-button-send button:before { + content: url("images/send_white.png"); + display: inline-block; + font-size: 0; + line-height: 0; +} +.email-form-button-row { + top: 0px; + margin-left: 120px; + text-align: right; + width: 585px; + white-space: nowrap; +} +.email-form-label { + font-size: 1.07692em; + font-weight: bold; + padding-left: 5px; + padding-top: 10px; + position: absolute; +} +.email-form-recipient-label { + padding-top: 7px; + position: absolute; +} +.email-form-recipient-value { + top: 0px; + margin-left: 120px; + max-width: 600px; + white-space: nowrap; +} + +.email-form-recipient-value img, .email-form-button-row img { + vertical-align: middle; +} +.email-form-recipient-field { + width: 475px; +} +.email-form-value { + top: 0px; + margin-left: 120px; + margin-right: 5px; +} +.email-form-subject-field { + margin-right: 5px; + width: 567px; +} +.email-form-attach-label { + position: absolute; + padding-left: 5px; + padding-top: 16px; +} +.email-form-attach-files { + padding-left: 5px; + padding-bottom: 3px; + white-space: nowrap; +} +.email-form-attach-item { + position: absolute; + width: 300px; + overflow-x: hidden; +} +.email-form-attach-size { + color: #777; +} +.email-form-attach-remove { + margin-left: 305px; +} +.email-form-attach-small { + font-size: 0.8em; + padding-left: 5px; +} + +/* Show email */ + +.show-email-value { + margin-left: 120px; + margin-right: 5px; + padding-top: 10px; + min-height: 1em; + color: #202020; +} +.show-email-value a { + color: #202020; +} +.show-email-invalid-sig { + color: red; +} +.show-email-reply { + position: absolute; +} +.show-email-delete { + margin-left: 120px; +} + + +/* Settings */ + +.settings h3 { + border-bottom: 2px solid #ddd; + color: #aaa; + font-size: 0.923077em; + font-weight: 500; + line-height: 16px; + margin: 16px 0 4px; + overflow: hidden; + padding: 7px 0 0 28px; + text-transform: uppercase; +} + + +/* Set password */ + +.password-label { + position: absolute; + padding-top: 5px; +} +.password-field { + margin-left: 115px; +} + + +/* Network status */ + +.network-charts .chart { + display: inline-block; + position: relative; + width: 400px; +} +.network-charts .chart-text { + font-size: 3em; + position: absolute; + text-align: center; + top: 143px; + width: 100%; +} + + +/* About */ + +.contributor-category { + font-weight: bold; +} +.contributor-name { + margin-left: 100px; + position: absolute; +} +.contributor-role { + color: #555; + margin-left: 250px; + margin-top: 3px; +} + diff --git a/webui/src/main/css/noto.css b/webui/src/main/css/noto.css new file mode 100644 index 00000000..d7a1716d --- /dev/null +++ b/webui/src/main/css/noto.css @@ -0,0 +1,24 @@ +@font-face { + font-family: 'NotoSans'; + font-style: normal; + font-weight: 400; + src: local('NotoSans'), local('NotoSans-Regular'), url(fonts/NotoSans-Regular.ttf) format('truetype'); +} +@font-face { + font-family: 'NotoSans'; + font-style: normal; + font-weight: 700; + src: local('NotoSans Bold'), local('NotoSans-Bold'), url(fonts/NotoSans-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'NotoSans'; + font-style: italic; + font-weight: 400; + src: local('NotoSans Italic'), local('NotoSans-Italic'), url(fonts/NotoSans-Italic.ttf) format('truetype'); +} +@font-face { + font-family: 'NotoSans'; + font-style: italic; + font-weight: 700; + src: local('NotoSans Bold Italic'), local('NotoSans-BoldItalic'), url(fonts/NotoSans-BoldItalic.ttf) format('truetype'); +} diff --git a/webui/src/main/css/roboto.css b/webui/src/main/css/roboto.css new file mode 100644 index 00000000..5528488a --- /dev/null +++ b/webui/src/main/css/roboto.css @@ -0,0 +1,72 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: local('Roboto Thin'), local('Roboto-Thin'), url(fonts/Roboto-Thin.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(fonts/Roboto-Light.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(fonts/Roboto-Regular.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(fonts/Roboto-Medium.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(fonts/Roboto-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(fonts/Roboto-Black.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(fonts/Roboto-ThinItalic.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(fonts/Roboto-LightItalic.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local('Roboto Italic'), local('Roboto-Italic'), url(fonts/Roboto-Italic.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(fonts/Roboto-MediumItalic.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(fonts/Roboto-BoldItalic.ttf) format('truetype'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(fonts/Roboto-BlackItalic.ttf) format('truetype'); +} diff --git a/webui/src/main/images/addressbook.png b/webui/src/main/images/addressbook.png new file mode 100644 index 0000000000000000000000000000000000000000..719ca6ee20211c911b0412b4b3cc2377739c23a7 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJ` z!PCVt#Nu?aMry;M|11h2vdllFI$Bb)ICN?~FL4qU03Sc7R%^*^D=x@518z+ TWzim>+Za4u{an^LB{Ts5keFN& literal 0 HcmV?d00001 diff --git a/webui/src/main/images/attachment.png b/webui/src/main/images/attachment.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee82f8e7d9111169d2cde88a12e641b1ff5ab89 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKx zz|+Ms#NzbZ$s4(v0wh}BC%XvnMqb?P(*OCb;MGghvL7bA4LTp-@kMIl1fhk`gl;_$ z^~|5Rd(PYa&v(z6e^_7Os!G-Zp$mr(C8-x1&CNT3Ylev9ohA5L}!;FC>)# z+;RDQqbZ{=3sbLiW_t^R_SW=O=~G=WkJ` z%hSa%#NzbXE8bj(3uf^yV>t~iZnCdf~!q`g>F1ln(C3V?!@5-JzLJ3S+qGWpZewIt+TZ|Uq09PDWzfZ zEX;O`UBl0!6~_+zeyVo9j+N_d@#519DsxLDuPo?c-|40KdwF;lQ)z+8DZ>+?jh}SN g_AIXJO|W5TpMNU*`Eq6speq?XUHx3vIVCg!03`-)fB*mh literal 0 HcmV?d00001 diff --git a/webui/src/main/images/compose.png b/webui/src/main/images/compose.png new file mode 100644 index 0000000000000000000000000000000000000000..85cff0b919dd765d6aa45557d1b47e081d447a4b GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL+ z;pyTSVsZNH<-NQO3IYy^(>_m^EaBrW-%#LZt!(xzl0(q2DqVfcdvCoK;~Dwa|1d

2t?+KF{Qd1XyO;N07-#Y)VLhOn84k!38d7PJee$l{xLDlK^ z4`%H)@o$_F->B5@xbmd`gl9XyL{I(6IpwFU1=n3B&Cm63N{Y&-Y+m_udZ|Cq3k(dN Lu6{1-oD!MKVVP}0NNr`666=mz#g~m z;jgtZ5l^3lF-@Nm`j{4-1~BtYS?JJUVEWxYU3)U)@gVU(p-`V3AF33#WL|za{p#nRlGo2Y5x&l6&{NmLzTrh?TuO=~G=WkMH z+SA1`#Nu?aMydj@5f3ZxtEH2@@~8aM`Wsobx5Q~BR~>K9Qr@Nez5gp8j9+^7hl!7S zAW!q(9VRXbp?pn^FQhEIyuHpZwq%pM=Wtaayh^nF(9@+Cm)0N95pH2ScPZOqioSL# zn^q)yTD{)g;8(mC1Dc$F25tD1CbH3NLR+zhQ>jCG!wc1jDa{M?onP{+ysKNFl(ryP z;neI6H>w#z57#FgY24B<#XPC>MR?mK;|wR>2NyDqJTzX=#>8`wP2q^BvV;1@>2ZfN z|H{u^F6p(@TVH799@%LoH@rW4`%kYsy!cD@%f_Jlij!SA9T>Ld@Q1SfT^tMaHiM_D KpUXO@geCx7+=pTS literal 0 HcmV?d00001 diff --git a/webui/src/main/images/connecting.png b/webui/src/main/images/connecting.png new file mode 100644 index 0000000000000000000000000000000000000000..2eeb59cc827298a298f6277cf64508e7ac17d064 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkOt z$mr?f7-Dhy?&ZB+%z*-J4=;*z8mhcx)mAiDc%kaz#A2=Q7#PvLCsb;q!P2DUh4(sL zt6T#k%yZW{CjIlU>wbJ+?My;yJ#NQ6j=)=mnlIF2ewXmDk-?p_h7Vb!izSuu!=6(n4+lp%O|Qn=rccm iSuWRn<=qyB5QC?ypUXO@geCwD&Xke> literal 0 HcmV?d00001 diff --git a/webui/src/main/images/default.png b/webui/src/main/images/default.png new file mode 100644 index 0000000000000000000000000000000000000000..6a19d1caf5d2ffaa9456726ed692d6b8947e2ee2 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkM1 z>*?YcVsSb-L4wtyQ7`kkCfwv^}Lk{NPbQ~n$laO_H!IuNDg zS!nIzEutCMnxUwf;t=(3@+2OIC@HtkQc^${FzH@sZO=#q8qDD7>gTe~DWM4fr6oKt literal 0 HcmV?d00001 diff --git a/webui/src/main/images/delay.png b/webui/src/main/images/delay.png new file mode 100644 index 0000000000000000000000000000000000000000..aef292e0dc93de3b04e8c0d48ba1ad48c5e91a06 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkOt zsNm`17-Dhy?B$Jqha6;%e@r$ox%f-Mt>=WY1RJwmqy8iFKo6dNro;muWE}Dm${5v> zPd#xE_wcFX+w#S$TFr0P{UYDrJ5SsHoqO<)-m~)!H#R1D{7x@;)?hMi7Qe~QCkGiz z=XDAgo;3M&Y3bM;eCfP)#F5#~o6OgD+%(+bzNgr0eM^f=N0=OsV84Wq z=1T>($_-92YOj@6Do?B2;5^6RxYZM`=ET0GT{pxWMNfYzIOV-*lMiQCLhFuiVv8Ch zMB3{s4&>Gm+}~p4+N_vSt}3oSdf1{p;n5{}27DKlA?0Y7o4;Guj*& OfDE3lelF{r5}E)9%B42| literal 0 HcmV?d00001 diff --git a/webui/src/main/images/delete.png b/webui/src/main/images/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..e757fdb07dbd51e84e7d121d5939bb50b2894099 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKh z@9E+gVsScIBUORdh^K+A^%DEi{|i4ju4J;~{r}P7RffW0ewMTHR}EG*dho8_pjF=( m-CY0DTjx|QyOqCi0|Wovb7#d)y?6;Uiow&>&t;ucLK6Ue*Ey*G literal 0 HcmV?d00001 diff --git a/webui/src/main/images/favicon.png b/webui/src/main/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5592a5fac04ef45822e8eda8cbb05490a946f6 GIT binary patch literal 1624 zcmV-e2B-OnP)jnN>WlwR8&n>RZd-1AYfAiV`5fgWME}uNoHqdXJ}+Ha&cpFb8m8Va&vQP zb9HfZc64-fYjkyPbairdb!>HZa&>ogc6Mxbc5QZcaCdiYcXw`gd3bnnK6rR;czADk zd2)GqZ+Ured3ttwdT@GtdV6sm-%tE-u;teUN?ny#&zuCAP}v9YhNoUoSwu&gMLt=H}Gq>+9$2?C9<7>Bj)+$N=f-*Xi!=>gw3)@9*pD*z4=r>+taG$^h)_ z+3oGx?d{v{?%VJ0-0;l+@bKO7&H(Z8-tx}?^77yF^WgN+0QB_W^z`BN(E#=J;rG)3 z`PBe>tqkh`001C#QchC}*JY6$2p4vNHiS@W{(aNz2HJiit}|O7igw2nY%Z2?>jc z2m>iW0RetKNl6KDF;Q6=X(>5*E}#ZZ7sZkThmW1TeEs&FJNNECeE9h3(`R>=ta$wF z>C?v#AKt%r=g#fxm(LzMe4s?pg#)CaZi=SUK@<&>?fq-2yloewXgKJkIi(JwVe1M5 zqn!v1mqY3g9X)a4=>EK{hX@TjjSN<7g=yHc!%Sy2Ttm|G6X&npym{r^(Y_+MhSfS| zJN6(n95|e*Iuoj4dg+M^#~Zu?+pnEJ8nGIxVWw*4;R7fdjZLp0d!KYi1E>FXDh zvag-o5)IMNtkQZ6UBlV=8nIvv&ihZ-&UpFy^~<)YC--@QHNzxM1F#*|VliXe`FBVcC(351u@K_2%u{H?N*Qd2sQ_GTLakR2d&% zd5HuK7S*p`S6dLT;g+jfL4lgS@b&A$ zxeyK3_%vi{L4!5p_3I31uxjB>8fVP(axgXI=;2Cyn+%Lk6=P~BK4pwOdC%8~Lc}z( zhC6qnuw|fDrKa1sG~8}d!pNe~LI9@0JU7=IIW3_V0z1sKSED4pM?ip*_*QEp7c(mi z40jSrtvd}71=$o$$Ag43&_PF7QHfj_Z|Lak>h9@*WYM0U?yk;`4d{h2uY#$Io2O4e za9CtiR7`9_LSk}qN*WNPBqt{(B*exO=~G=WkM1 z?&;zfVsScIBUORdh$oDbP0l+XkKXBs_L literal 0 HcmV?d00001 diff --git a/webui/src/main/images/identities.png b/webui/src/main/images/identities.png new file mode 100644 index 0000000000000000000000000000000000000000..b9247a035b4386283e437bffce39b282e0b4a8b4 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJ` z&(p;*#Nzbc%eGw24gzft-yWTB*ED@2uVGC|)^#&`O=~G=WkL+ z>*?YcVsU!!lf&wLSn8b*zI^vHM)Zzoi$!G5QL~_lySF~SV3NyoX7`Ny zEn>zuCQJ5;sOg_e@CizIb1z7uMs!ldL!HOgioJp!U)oI6Cp5ErFOq)8G4pbm&<-b# zJEAo%sZ@!E5Yg8C-~f|)!& Q03F8Q>FVdQ&MBb@0Jh;;i2wiq literal 0 HcmV?d00001 diff --git a/webui/src/main/images/not_started.png b/webui/src/main/images/not_started.png new file mode 100644 index 0000000000000000000000000000000000000000..f6cf589b8a6c0ae8eeaa376e93cb494f46f37199 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkOt zsO{{iqpyx_-hFV1;LlTs`)3|L!(kNj}7tyvu7nqae)DRN22C#^dRrWkKi^HmFsI;7_1QOK~VwMg?x zr2}VV+9Ljsg#yoBE~;oUIJ(z#M@fxL(VT$4alJOuF_(X}_V83W1SWq?)H}EI+@bip bU(`2$n;tgl!|%Jmuw?Lb^>bP0l+XkKpD?J9 literal 0 HcmV?d00001 diff --git a/webui/src/main/images/outbox.png b/webui/src/main/images/outbox.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8e6dfca3a674e74c8fd72e39f77404a6d44d5c GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkLc z+tbA{#Nu?aMydj@5f3ZxtEH2@@~8aM`Wsobx5Q~BR~>K9Qr@Nez5gp8j9+^7hl!7S zAW!q(9VRXbp?pn^FQhEIyuHpZwphlmdKI;Vst04h3jG5`Po literal 0 HcmV?d00001 diff --git a/webui/src/main/images/refresh.png b/webui/src/main/images/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..c136c59fca31bd455695d7dc6ddbc4536a54a7ac GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKx z$J50z#Nzbb%l2N(i2`jObA8JElN6u*zgov0@H)eZBX8p5h|cL8%Y-fpN2G)sBn!8s z?B|Hqx?F3+Z+v)9yjphn&3J(}FX^rR(n}Bi`>LfY68308nb*$ji9%fdhpt`m2tR%! zMt4ugmJLF2u`*v|e%$z;#o?S--IAVH*Otw()WEh=y`|T{3P?u1*tXL-`(dQScENY8 zyH&Ob_fug%JP% literal 0 HcmV?d00001 diff --git a/webui/src/main/images/send_white.png b/webui/src/main/images/send_white.png new file mode 100644 index 0000000000000000000000000000000000000000..b06f25b346890fc1d115df1a75f13a5468302fd2 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJ` z$J50z#NzbP$-aCJ4m@u5oy-LcDtBh^h97XX;0#Z2{F|nd8!UY*CG2xr+;Z9cgS$W2 zF%|3kGVY$PdCLpu5r4< z>=ZtMeGyz~)HgtHGB9|$`njxgN@xNAbj4sc literal 0 HcmV?d00001 diff --git a/webui/src/main/images/sent.png b/webui/src/main/images/sent.png new file mode 100644 index 0000000000000000000000000000000000000000..6fef4883d32630714d7fb7f593d2af325f01d2fc GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkJ` z-_yl0#NzbP$p?9x4R~DTg_sX8EDf5uv3tq%64n<=DMGuLWL`9G^HRBOH2vDnXRi9+ z%1fU{gxWKy~b};Kse^YX0*8-Cr zv({BCILn&)Aco7MxxaPh9@}^1y*t*{?kmD%rnJ{ot~A!iK}@9xpzI ksXSpdQu(*}GW#pm750IG(~fR)2RfC()78&qol`;+0AvGZ{r~^~ literal 0 HcmV?d00001 diff --git a/webui/src/main/images/settings.png b/webui/src/main/images/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1b41f037163a02862327f74fb73cbf235682e2 GIT binary patch literal 423 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 Mi2VQhP$y%O zx4VnJ@)ZR^AcwQSBeIx*fm;}a85w5H0R>pMr;B5V#`(2p+=ZGP7+fy03A6dkFi1Sm z^6P!Qjkwc6gUy%Y{)Jz?r2pBb{JXU8eNNqs-Bs!h3tl(KIoyBOETAA0Wx&)>xYz%L zxoNctvr2-T