Merge branch 'master' into UserMailTemplates

# Conflicts:
#	dev/App/User.js
#	dev/Common/Enums.js
#	dev/Screen/User/Settings.js
#	dev/Settings/Admin/General.js
#	snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php
#	snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Admin.php
#	snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php
This commit is contained in:
djmaze 2022-03-15 15:00:14 +01:00
commit f7f56b3789
794 changed files with 96444 additions and 74188 deletions

View file

@ -6,17 +6,12 @@
@import "../../vendors/bootstrap/less/grid.less";
@import "../../vendors/bootstrap/less/type.less";
@import "../../vendors/bootstrap/less/code.less";
@import "../../vendors/bootstrap/less/forms.less";
@import "../../vendors/bootstrap/less/tables.less";
@import "../../vendors/bootstrap/less/dropdowns.less";
@import "../../vendors/bootstrap/less/close.less";
@import "../../vendors/bootstrap/less/buttons.less";
@import "../../vendors/bootstrap/less/button-groups.less";
@import "../../vendors/bootstrap/less/alerts.less";
@import "../../vendors/bootstrap/less/modals.less";
@import "../../vendors/bootstrap/less/utilities.less";
@import "../../vendors/bootstrap/less/wells.less";
@import "_FontasticToBoot.less";
@import "_BootstrapFix.less";
@ -31,12 +26,11 @@
@import "Admin/Layout.less";
@import "Admin/General.less";
@import "Admin/Branding.less";
@import "Admin/Config.less";
@import "Admin/Domains.less";
@import "Admin/Domain.less";
@import "Admin/Packages.less";
@import "Admin/Plugin.less";
@import "Admin/About.less";
@import "Animations.less";
@import "_End.less";

View file

@ -27,34 +27,7 @@ body {
width: 100%;
}
.e-spinner {
margin: 5px auto 0;
width: 100px;
text-align: center;
}
.e-spinner div {
animation: bouncedelay 1.4s infinite ease-in-out;
background-color: var(--loading-color, #000);
border-radius: 100%;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
display: inline-block;
height: 15px;
margin: 0 5px;
width: 15px;
/* Prevent first frame from flickering when animation starts */
animation-fill-mode: both;
}
.e-spinner div + div {
animation-delay: 0.16s;
}
.e-spinner div + div + div {
animation-delay: 0.32s;
}
@keyframes bouncedelay {
0%, 80%, 100% { transform: scale(0.0); }
40% { transform: scale(1.0); }
#rl-loading .icon-spinner {
height: 1em;
width: 1em;
}

View file

@ -6,17 +6,16 @@
@import "../../vendors/bootstrap/less/grid.less";
@import "../../vendors/bootstrap/less/type.less";
@import "../../vendors/bootstrap/less/code.less";
@import "../../vendors/bootstrap/less/forms.less";
@import "../../vendors/bootstrap/less/tables.less";
@import "../../vendors/bootstrap/less/dropdowns.less";
@import "../../vendors/bootstrap/less/close.less";
@import "../../vendors/bootstrap/less/buttons.less";
@import "../../vendors/bootstrap/less/button-groups.less";
@import "../../vendors/bootstrap/less/alerts.less";
@import "../../vendors/bootstrap/less/modals.less";
@import "../../vendors/bootstrap/less/utilities.less";
@import "../../vendors/bootstrap/less/code.less";
@import "../../vendors/bootstrap/less/dropdowns.less";
@import "../../vendors/bootstrap/less/navs.less";
@import "../../vendors/bootstrap/less/utilities.less";
@import "_FontasticToBoot.less";
@import "_BootstrapFix.less";
@ -56,6 +55,5 @@
@import "User/SquireUI.less";
@import "User/Animations.less";
@import "Animations.less";
@import "_End.less";

View file

@ -1,5 +1,5 @@
.b-admin-about {
#V-Settings-About {
.rl-logo {
display: inline-block;
width: 250px;

View file

@ -1,4 +1,4 @@
.b-admin-branding {
#V-Settings-Branding {
}

View file

@ -0,0 +1,8 @@
#V-Settings-Config {
user-select: text;
em {
display: block;
}
}

View file

@ -1,18 +1,10 @@
.b-domain-alias-content {
&.modal {
max-width: 330px;
}
.error-desc {
color: red;
}
#V-PopupsDomainAlias {
max-width: 330px;
}
.b-domain-content {
#V-PopupsDomain {
&.modal {
max-width: 810px;
}
max-width: 810px;
.domain-desc {
color: #666;
@ -28,10 +20,6 @@
}
}
.error-desc {
color: red;
}
.testing-done {
color: green !important;
}

View file

@ -1,7 +1,8 @@
.b-admin-domains-list-table {
width: 600px;
#V-Settings-Domains {
table {
width: 600px;
}
.domain-name {
display: inline-block;
@ -16,36 +17,16 @@
padding-left: 5px;
}
.button-delete {
position: relative;
right: 0;
visibility: hidden;
opacity: 0;
white-space: nowrap;
&.delete-access {
visibility: visible;
right: -15px;
opacity: 1;
}
}
.delete-domain, .disabled-domain {
cursor: pointer;
}
.delete-domain:not(:hover), .disabled-domain:not(:hover) {
opacity: 0.5;
&:hover {
opacity: 1;
}
}
&.disabled {
tr.disabled {
.domain-name, .domain-alias {
color: #bbb;
}
.disabled-domain {
opacity: 0.5;
}
}
}

View file

@ -1,5 +1,4 @@
.b-admin-general {
#V-Settings-General {
}

View file

@ -1,24 +1,21 @@
.UserBackground body {
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
#rl-left, #rl-right {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
padding: 0;
margin: 0;
border: 0;
z-index: 0;
#rl-content {
display:flex;
height: 100%;
}
#rl-left {
flex-grow: 0;
flex-shrink: 0;
overflow: auto;
padding-top: 50px + @rlLowMargin + 10px;
transition: width 0.3s ease-out;
width: @rlLeftWidth;
nav {
@ -45,13 +42,15 @@
}
#rl-right {
flex-grow: 1;
transition: left 0.3s ease-out, right 0.3s ease-out;
z-index: 1;
left: @rlLeftWidth;
}
.b-admin-right {
#V-AdminPane {
height: 100%;
.b-toolbar {
> .b-toolbar {
position: absolute;
top: 0;
right: 0;
@ -65,25 +64,9 @@
h4 {
flex-grow: 1;
margin: 8px;
}
}
.b-content {
position: absolute;
top: 50px + @rlLowMargin;
bottom: @rlLowMargin;
left: 0;
right: @rlLowMargin;
overflow-y: auto;
z-index: 2;
background-color: #fff;
border: 1px solid @rlMainDarkColor;
box-shadow: @rlMainShadow;
border-radius: @rlMainBorderRadius;
}
}
.btn.btn-logout {
@ -91,18 +74,15 @@
padding-right: 12px;
}
#rl-popups > .rl-view-model {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 1100;
overflow: auto;
background-color: rgba(0,0,0,0.3);
}
#rl-settings-subscreen {
background-color: #fff;
border: 1px solid @rlMainDarkColor;
border-radius: @rlMainBorderRadius;
box-shadow: @rlMainShadow;
box-sizing: border-box;
height: calc(100% - 50px - @rlLowMargin - @rlLowMargin);
margin: (50px + @rlLowMargin) @rlLowMargin @rlLowMargin 0;
overflow-y: auto;
padding: 20px;
}
@ -118,10 +98,6 @@
#rl-left {
width: @rlLeftWidth + 20;
}
#rl-right {
left: @rlLeftWidth + 20;
}
}
/* mobile and tablet */
@ -130,16 +106,13 @@
padding: 10px;
}
html:not(.rl-left-panel-disabled) #rl-right {
right: 5-@rlLeftWidth;
#rl-right {
min-width: calc(100% - @rlLowMargin);
}
html.rl-left-panel-disabled {
#rl-left {
width: 0 !important;
}
#rl-right {
left: 5px !important;
width: 0;
}
}
}

View file

@ -1,5 +1,5 @@
.b-admin-packages {
#V-Settings-Packages {
.alert {
width: 650px;
@ -10,33 +10,33 @@
opacity: 0.5;
}
}
table {
.b-admin-packages-list-table {
width: 700px;
width: 700px;
.package-img {
font-size: 12px;
margin-right: 2px;
div:first-child {
display: flex;
}
}
.package-name {
flex-grow: 1;
}
.package-name.core {
font-weight: bold;
}
.package-desc {
color: #999;
font-size: 12px;
opacity: 0.7;
}
.package-release, .package-actions {
td + td {
text-align: center;
}
.package-actions {
vertical-align: middle;
white-space: nowrap;
}
.package-configure, .package-active {
a {
cursor: pointer;
margin-right: 1em;
}

View file

@ -1,12 +1,6 @@
.b-plugin-content {
#V-PopupsPlugin {
&.modal {
max-width: 660px;
}
.modal-body {
overflow: auto;
}
max-width: 660px;
.information {
display: inline-block;

View file

@ -1,70 +0,0 @@
@keyframes login-form-shake {
0% {transform: translateX(0);}
12.5% {transform: translateX(-6px)}
37.5% {transform: translateX(5px)}
62.5% {transform: translateX(-3px)}
87.5% {transform: translateX(2px)}
100% {transform: translateX(0)}
}
html.rl-started-delay {
#rl-left {
transition: width 0.3s ease-out;
}
#rl-right {
transition: left 0.3s ease-out, right 0.3s ease-out;
}
#rl-sub-right {
transition: left 0.3s ease-out;
}
}
@media screen and (min-width: 1000px) {
html.rl-started-trigger .b-login-content {
/*transform: scale(1.1);*/
transform: translateY(-20px);
opacity: 0.5;
}
.b-login-content .errorAnimated {
animation: login-form-shake 400ms ease-in-out;
}
.b-login-content .errorAnimated .buttonLogin {
color: #b94a48;
font-weight: bold;
}
.b-login-content {
transition: all 0.3s ease-out;
}
.button-delete-transitions {
transition: all 0.2s linear;
}
#rl-popups > .rl-view-model .modal {
transition: all .2s ease-out;
}
#rl-popups > .rl-view-model:not(.show) .modal {
top: -25%;
}
#rl-popups > .rl-view-model .modal.fade {
opacity: 1;
}
#rl-popups > .rl-view-model:not(.show) .modal.fade {
opacity: 0;
}
}
#rl-popups > .rl-view-model {
transition: background-color 0.2s linear;
}
#rl-popups > .rl-view-model:not(.show) {
background-color: rgba(0,0,0,0);
}

View file

@ -1,4 +1,4 @@
.b-ask-content {
#V-PopupsAsk {
.modal-body {
font-size: 18px;

View file

@ -14,7 +14,7 @@
left: 5px;
width: 10px;
height: 18px;
border: 2px solid #0F9D58;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
@ -31,121 +31,76 @@
.e-component {
&.e-select {
white-space: nowrap;
select:focus {
outline: 1px dotted;
}
* {
display: inline-block;
}
select:focus {
outline: 1px dotted;
}
&.e-checkbox {
cursor: pointer;
margin-bottom: 6px;
margin-left: -2px;
padding: 2px;
cursor: pointer;
&:focus {
outline: 1px dotted;
}
.e-checkbox-icon {
padding: 1px 0 0 1px;
}
&.disabled {
cursor: not-allowed;
opacity: 0.5;
}
}
&.e-radio {
span {
margin-left: 0.5em;
white-space: normal;
}
cursor: pointer;
&.disabled {
cursor: not-allowed;
opacity: 0.5;
}
select + span {
line-height: 1.43em;
padding: 4px 0;
}
}
.e-component.material-design {
.e-checkbox.material-design {
line-height: 20px;
&.e-checkbox {
> div {
position: relative;
width: 18px;
height: 18px;
vertical-align: top;
}
margin-top: 2px;
padding: 2px 2px 1px 2px;
> div > div {
position: absolute;
box-sizing: border-box;
margin-top: 1px;
.sub-checkbox-container {
display: inline-block;
position: relative;
transform: translateZ(0);
width: 18px;
height: 18px;
vertical-align: bottom;
margin-bottom: 3px;
}
animation: checkmark-to-box 200ms ease-out forwards;
}
.sub-label {
padding-left: 12px;
}
.sub-checkbox {
position: absolute;
box-sizing: border-box;
margin-top: 1px;
.checkbox-box-sizes();
}
.sub-checkbox.checked {
border-color: #0F9D58;
.checkbox-mark-sizes();
}
// animation
.sub-checkbox.checked {
&.box {
border: solid 2px;
animation: box-shrink 140ms ease-out forwards;
}
&.checkmark {
animation: checkmark-expand 140ms ease-out forwards;
}
}
.sub-checkbox.unchecked {
&.box {
animation: box-expand 140ms ease-out forwards;
}
&.checkmark {
transform: rotate(45deg);
animation: checkmark-shrink 140ms ease-out forwards;
}
}
div.checked {
animation: box-to-checkmark 200ms ease-out forwards;
}
}
@keyframes box-shrink {
@keyframes box-to-checkmark {
0% { .checkbox-box-sizes(); }
100% { .checkbox-result-sizes(); }
}
@keyframes checkmark-expand {
0% { .checkbox-result-sizes(); }
50% { .checkbox-result-sizes(); }
100% { .checkbox-mark-sizes(); }
}
@keyframes checkmark-shrink {
@keyframes checkmark-to-box {
0% { .checkbox-mark-sizes(); }
100% { .checkbox-result-sizes(); }
}
@keyframes box-expand {
0% { .checkbox-result-sizes(); }
50% { .checkbox-result-sizes(); }
100% { .checkbox-box-sizes(); }
}

View file

@ -1,8 +1,6 @@
.b-languages-content {
#V-PopupsLanguages {
&.modal {
max-width: 700px;
}
max-width: 710px;
label {
display: inline-block;
@ -37,7 +35,7 @@
}
@media screen and (max-width: 999px) {
.b-languages-content label {
#V-PopupsLanguages label {
width: calc(100% - 40px);
}
}

View file

@ -1,4 +1,4 @@
.RL-Login, .RL-AdminLogin {
#V-Login, #V-AdminLogin {
position: fixed;
left: 50%;
top: 50%;
@ -6,6 +6,7 @@
width: 100%;
min-width: 250px;
max-width: 600px;
transition: all 0.3s ease-out;
z-index: 5;
}
@ -13,9 +14,7 @@
@glass-error-color: #f76260;
@glass-m-color: rgba(255, 255, 255, .8);
.b-login-content {
position: relative;
.LoginView {
.descWrapper {
color: var(--loading-color, #000);
@ -25,10 +24,6 @@
text-shadow: var(--loading-text-shadow);
}
.controls, .control-group {
margin-bottom: 25px;
}
form {
background-color: var(--login-bg-color, rgba(0, 0, 0, .5));
border: var(--login-border, 1px solid rgba(255, 255, 255, .2));
@ -43,16 +38,9 @@
color: var(--login-color, @glass-m-color);
}
.controls.error {
.input-append .add-on,
.input-append .add-on * {
color: @glass-error-color;
}
input {
color: @glass-error-color;
border-color: @glass-error-color;
}
.controls.error * {
color: @glass-error-color;
border-color: @glass-error-color;
}
&.submitting > * {
@ -78,61 +66,64 @@
}
}
.controls {
.input-block-level {
font-size: 18px;
height: 40px;
padding-left: 12px;
}
.inputIcon {
padding-right: 35px;
}
.controls, .control-group {
margin-bottom: 25px;
position: relative;
}
input, .btn {
background: none !important;
border: 1px solid @glass-m-color;
input {
font-size: 18px;
height: 40px;
padding-right: 30px;
&:placeholder {
color: @glass-color;
}
input {
&:placeholder {
color: @glass-color;
}
&:focus, &:hover {
border-color: @glass-color;
}
}
.btn {
text-transform: uppercase;
font-size: 13px;
&:hover, &:active {
border-color: @glass-color;
}
&:focus, &:hover {
border-color: @glass-color;
}
}
.signMeLabel .e-checkbox {
margin-top: 5px;
input, .btn {
background: none !important;
border: 1px solid @glass-m-color;
color: @glass-color;
}
.input-append .add-on {
margin-left: -1.5em;
.fontastic + input {
padding-left: 30px;
}
.controls > .fontastic:first-child {
position: absolute;
font-size: 17px;
line-height: 29px;
right: 6px;
top: 6px;
z-index: 6;
line-height: 38px;
left: 6px;
}
.input-append .add-on * {
input + button {
border: none;
background: none;
cursor: pointer;
display: inline-block;
font-size: 17px;
line-height: 29px;
line-height: 38px;
margin: 0;
padding: 0;
position: absolute;
right: 6px;
top: 0;
}
.btn {
text-transform: uppercase;
font-size: 13px;
&:hover, &:active {
border-color: @glass-color;
}
}
.buttonLogin {
@ -153,17 +144,28 @@
}
.language-buttons {
flex-grow: 1;
margin-top: 5px;
text-align: right;
}
.language-button {
padding: 5px;
text-decoration: none;
}
.errorAnimated {
animation: login-form-shake 400ms ease-in-out;
}
.errorAnimated .buttonLogin {
color: #b94a48;
font-weight: bold;
}
}
@media screen and (max-width: 480px) {
.b-login-content {
.LoginView {
form {
padding: 30px 4vw 10px;
}
@ -174,11 +176,15 @@
to {transform: rotate(1turn);}
}
.btn-submit-icon-wrp {
border: none;
background: none;
display: inline-block;
margin: 0;
padding: 0;
cursor: pointer;
@keyframes login-form-shake {
0% {transform: translateX(0);}
12.5% {transform: translateX(-6px)}
37.5% {transform: translateX(5px)}
62.5% {transform: translateX(-3px)}
87.5% {transform: translateX(2px)}
100% {transform: translateX(0)}
}
html.rl-started-trigger .LoginView {
opacity: 0.5;
}

View file

@ -12,7 +12,7 @@ html, body {
body {
-webkit-touch-callout: none;
font-size: @baseFontSize;
position: fixed;
top: 0;
left: 0;
@ -25,10 +25,6 @@ html.list-loading body {
cursor: progress;
}
html:not(.rl-mobile) {
min-width: 700px;
}
@media screen and (min-width: 1000px) {
body {
background-image: var(--main-bg-image);
@ -47,21 +43,88 @@ option:disabled {
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.button-confirm-delete {
margin-right: 15px;
opacity: 0;
visibility: hidden;
dialog::backdrop {
background: rgba(0,0,0,0.5);
}
.button-confirm-delete.delete-access {
margin-right: 0;
opacity: 1;
visibility: visible;
.dialog-backdrop {
background: rgba(0,0,0,0.5);
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.drag-handle {
color: #eee;
cursor: grab;
dialog {
border: 0;
background-color: @white;
border: 1px solid rgba(0,0,0,.3);
border-radius: 6px;
box-shadow: 0 5px 80px rgba(0,0,0,0.3);
display: flex;
flex-direction: column;
margin: 10px auto;
max-height: calc(100vh - 20px);
max-width: 560px;
overflow: auto;
padding: 0;
position: fixed;
transition: all .2s ease-out;
top: 0;
width: calc(100% - 20px);
}
tr:hover .drag-handle {
color: #aaa;
dialog:not([open]) {
display: none !important;
}
dialog.animate {
opacity: 1;
}
dialog:not(.animate) {
background-color: rgba(0,0,0,0);
opacity: 0;
top: -25%;
}
dialog > header {
padding: 9px 15px;
border-bottom: 1px solid #eee;
// Close icon
.close {
margin-top: 2px;
}
// Heading
h3 {
margin: 0;
line-height: 30px;
}
}
// Body (where all modal content resides)
dialog .modal-body {
overflow: auto;
margin: 0;
padding: 15px;
position: relative;
}
// Footer (for actions)
dialog > footer {
padding: 14px 15px 15px;
margin-bottom: 0;
text-align: right; // right align buttons
border-top: 1px solid #ddd;
border-radius: 0 0 6px 6px;
// Properly space out buttons
.btn + .btn {
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
}
// but override that for button groups
.btn-group .btn + .btn {
margin-left: -1px;
}
}

View file

@ -1,14 +1,15 @@
#rl-settings-subscreen,
.g-ui-user-select-none {
user-select: none;
-webkit-touch-callout: none;
}
.g-ui-link {
color: #369;
text-decoration: underline;
color: var(--link-color, #369);
cursor: pointer;
padding: 2px;
text-decoration: underline;
&:focus {
outline: 1px;
@ -21,12 +22,12 @@
display: inline-block;
height: 1em;
line-height: 1em;
margin-left: 0.5em;
&::after {
font-family: "snappymail";
content: " ";
display: block;
margin-left: 1em;
opacity: 0;
transition: opacity 1s linear;
}
@ -75,6 +76,24 @@ textarea + .settings-save-trigger {
max-width: 800px;
}
.button-confirm-delete {
transition: all 0.2s linear;
white-space: nowrap;
}
.button-confirm-delete:not(.delete-access) {
opacity: 0;
transform: translateX(-15px);
visibility: hidden;
}
.drag-handle {
color: #eee;
cursor: grab;
}
tr:hover .drag-handle {
color: #aaa;
}
// TABS
// -------------

View file

@ -1,8 +1,8 @@
.b-advanced-search-content {
&.modal {
max-width: 780px;
}
.control-label {
#V-PopupsAdvancedSearch {
max-width: 780px;
label {
width: 110px;
}
.span4 {

View file

@ -12,10 +12,6 @@
@media screen and (min-width: 1000px) {
.button-delete-transitions {
transition: all 0.2s linear;
}
.b-folders li .anim-action-class {
animation: highlight-folder-row 0.5s linear;
}
@ -34,7 +30,7 @@
}
}
.b-compose.loading .b-header-toolbar {
#V-PopupsCompose header.loading {
background-size: 60px 60px;
background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%,

View file

@ -11,9 +11,6 @@
line-height: 24px;
border: 0;
background-color: rgba(128, 128, 128, 0.1);
box-shadow: 0 1px 4px #ccc;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04), 0 1px 5px rgba(0, 0, 0, 0.1);
border-radius: 3px;
@ -23,8 +20,6 @@
}
&.checked {
box-shadow: 0 1px 4px #00a;
box-shadow: 0 1px 5px rgba(0, 0, 255, 0.3);
box-shadow: 0 0 0 1px rgba(0, 0, 255, 0.1), 0 1px 5px rgba(0, 0, 255, 0.2);
}

View file

@ -1,52 +1,66 @@
.b-compose {
.mailvelope-icon {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACjElEQVQ4y2XTXWjVdRgH8M/vf457OUVJzc7U5myWmysrFROKjFyUgqasEsNIrFFetC5KYkXMdVP0chne1MVWUBGWnlAKcogLJmiGXciUkaPtHPYSWumo6XbOv4v/afbyXP14+H6/z8vv+Qb/iNijEdFK4p1Yh1sQ4WccJe4h9Ae54t+ccJW88VpSb+NZdZWVmm+muR4xgwVODzM0dQWfEb0Q7L80KxDbmCH6irDO82uCHZvIVJMfT9Tn11Askevlnd7YdOk4xYeCg5PpBBG9R2gB9bXkjrD/GIXLSYlsBetX0NZK/cLgue41pLrxeIhtuZP4R6uyvPoEVdUcOMKH3/tf3FXDx6/x6de89W1MfH+qS2MnxdVynYyeZzDPM1sYHeH2LJMX2XAHjTfSN8zkOO1P8v6hQLQgjRZLarlhLk/vxTW0b6XjKaoqmJomjslUsrqPjn28tIOVi/lh+O4Ii61dQmEs2WnrUobHad3DR4eoruCxPXz+DQ+sSDAD51jbBDdFYKZ0dc4Hl5EvkJ/itiwjBfKXqath4tfyn8ekEmqEIf3nWJBFKRml/3QCzFzH4VPl/Dy+G0jyyxroOwMTafT6aazJxUlefpjXe7gwnbTa2c0v5ff5C2y+l/saSQdODCGcSnVpzJPaJT0ZtG+j9ySDvyeVfpvhSpwInDzL8vnJZb7yAaN/ILSl3nB2vEtTjRP5eyzKsHs7188wMZaQ5wQWVbFpFQ31bN/L6J+wL8i9W77Emd2kb9XxxSMK48HW9WzbwMhYsrDaeZRKfHkYUYzjlHb+x0ytVRTfxC51ldWaF7K0jjkpzuQZmDXTJxRfDA5e+pdAIrI5Il5OaEMLGsqYsp31EI4FB2bt/Bf/WNuibWZY5gAAAABJRU5ErkJggg==') center/contain no-repeat;
display: inline-block;
height: 1em;
width: 1em;
}
&.modal {
width: 98%;
max-width: 1000px;
min-height: calc(100% - 52px);
}
#V-PopupsCompose {
height: calc(100vh - 52px);
max-width: 1000px;
width: 98%;
.modal-body {
padding: 0;
display: flex;
flex-direction: column;
height: 100%;
}
.textAreaParent, .attachmentAreaParent {
box-sizing: border-box;
height: 100%;
min-height: 200px;
position: relative;
}
.textAreaParent {
display: flex;
flex-direction: column;
}
.attachmentAreaParent {
border-top: 1px solid #ccc;
overflow-y: auto;
padding: 10px;
.no-attachments-desc {
padding-top: 50px;
text-align: center;
font-size: 24px;
color: #666;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}
.attachmentList {
margin: 0;
padding: 10px;
}
}
.b-header-toolbar {
.attachmentName {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.no-attachments-desc {
padding-top: 50px;
text-align: center;
font-size: 24px;
color: #666;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}
header {
background-color: rgba(0,0,0,0.8);
.close, .minimize-custom {
opacity: 1;
color: #fff;
border-color: #eee;
float: none;
font-size: 24px;
line-height: 24px;
opacity: 1;
line-height: 28px;
margin-left: .7em;
}
.btn.disabled {
@ -59,13 +73,13 @@
margin-left: 8px;
}
.button-close, .button-skip {
margin-left: 8px;
}
.disabled.button-delete {
margin-left: 0;
}
.pull-right * {
vertical-align: top;
}
}
.b-header {
@ -73,37 +87,35 @@
padding: 10px;
background-color: rgba(128,128,128,0.2);;
.e-identity {
color: var(--main-color);
text-decoration: none;
font-weight: bold;
&.multiply {
cursor: pointer;
border-bottom: 1px dashed var(--main-color);
}
table {
border-collapse: collapse;
width: 100%;
}
.e-row {
line-height: 30px;
}
.e-label {
text-align: right;
padding: 6px 10px;
}
.e-value {
td {
vertical-align: baseline;
padding: 2px 0;
}
td:first-child {
padding: 0 10px 0 0;
text-align: right;
white-space: nowrap;
width: 4em;
}
textarea, input[type="text"] {
width: 100%;
}
textarea {
height: 40px;
}
#identity-toggle {
color: var(--main-color);
margin-left: 6px;
text-decoration: none;
}
#identity-toggle::after {
content: '▼';
}
textarea, input[type="text"] {
width: 100%;
}
textarea {
height: 40px;
}
.error-desc {
@ -145,7 +157,7 @@
}
@media screen and (max-width: 999px) {
.b-compose.modal {
#V-PopupsCompose {
border: 0;
width: 100%;
}
@ -155,18 +167,7 @@
border: 0 solid #333;
border-bottom-width: 3px;
display: inline-block;
float: right;
height: 20px;
width: 16px;
font-size: 20px;
font-weight: bold;
line-height: 20px;
margin-right: 15px;
cursor: pointer;
}
@media screen and (max-width: 700px) {
.b-compose .b-header .e-label {
padding-left: 0;
}
}

View file

@ -1,26 +1,24 @@
@contacts-popup-left-width: 25%;
.RL-PopupsContacts {
#V-PopupsContacts {
bottom: 0;
width: auto;
min-width: 550px;
max-width: 900px;
min-height: 300px;
max-height: 700px;
.control-group {
.control-label {
label {
padding-top: 0;
width: 50px;
}
}
.modal {
bottom: 0;
width: auto;
min-width: 550px;
max-width: 900px;
min-height: 300px;
max-height: 700px;
}
.modal-body {
height: calc(100% - 49px);
height: calc(100vh - 49px);
padding: 0;
position: relative;
}
@ -66,7 +64,6 @@
.listClear {
text-align: center;
padding: 10px;
font-size: 14px;
line-height: 13px;
box-shadow: inset 0 -1px 0 #ccc;
}
@ -78,12 +75,6 @@
font-size: 24px;
line-height: 30px;
}
&.hideContactListCheckbox {
.checkboxItem {
visibility: hidden;
}
}
}
.e-contact-item {
@ -265,3 +256,11 @@
}
}
}
html:not(rl-mobile) {
.hideContactListCheckbox {
.checkboxItem {
visibility: hidden;
}
}
}

View file

@ -13,7 +13,6 @@
}
.emailaddresses.emailaddresses-focused {
background-color: #fff;
border: 1px solid darken(@inputBorder, 20%);
box-shadow: none;
}
@ -72,7 +71,7 @@
height: auto;
line-height: inherit;
margin: 0;
padding: 0;
padding: 4px;
vertical-align: baseline;
}

View file

@ -1,6 +1,6 @@
.b-filter-content {
#V-PopupsFilter {
width: 750px;
max-width: 750px;
.button-delete {
cursor: pointer;

View file

@ -4,6 +4,12 @@
.b-folders {
> * {
position: absolute;
right: 0;
left: 0;
}
ul {
margin: 0;
}
@ -24,10 +30,7 @@
}
.b-toolbar {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 30px;
padding: 10px 0 0 @rlLowMargin;
color: #fff;
@ -35,10 +38,7 @@
}
.b-footer {
position: absolute;
bottom: 10px;
right: 0;
left: 0;
height: 30px;
padding: 0 10px 0 5px;
z-index: 101;
@ -48,11 +48,8 @@
}
.b-content {
position: absolute;
top: 50px + @rlLowMargin;
bottom: 32px + @rlLowMargin + @rlBottomMargin;
left: 0;
right: 0;
top: 50px + @rlLowMargin;
overflow: hidden;
overflow-y: auto;
min-width: 100px;
@ -60,8 +57,7 @@
hr {
margin: 10px;
border-top: 0;
border-bottom: 1px solid #999;
border-color: #999;
}
li {
@ -78,7 +74,6 @@
background-color: transparent;
vertical-align: middle;
color: var(--folders-disabled-color, #666);
font-size: 14px;
border-left: 3px solid transparent;
padding: 0 2em 0 @folderItemPadding;
@ -226,13 +221,12 @@
.btn {
&.buttonCompose {
width: calc(100% - 85px);
width: calc(100% - 68px);
max-width: -moz-fit-content;
max-width: -webkit-fit-content;
max-width: fit-content;
overflow: hidden;
height: 19px;
margin-top: 1px;
padding: 4px 8px;
}
}
@ -252,3 +246,7 @@ html.rl-left-panel-disabled {
visibility: hidden;
}
}
html.rl-mobile .b-folders .b-content {
bottom: 0;
}

View file

@ -1,17 +1,10 @@
.b-identity-content {
#V-PopupsIdentity {
&.modal {
max-width: 770px;
}
.modal-body {
overflow: hidden;
}
max-width: 770px;
.e-signature-place {
border: 1px solid #ccc;
border-radius: 3px;
height: 200px;
}
.textEmail {

View file

@ -17,6 +17,15 @@
z-index: 0;
}
#rl-left {
width: @rlLeftWidth;
}
#rl-right {
z-index: 1;
left: @rlLeftWidth;
}
html.rl-mobile {
&:not(.rl-left-panel-disabled) #rl-right {
@ -28,10 +37,6 @@ html.rl-mobile {
}
}
#rl-left {
width: @rlLeftWidth;
}
/*
.resizable::after {
background-color: #aaa;
@ -50,7 +55,7 @@ html.rl-mobile {
}
*/
.resizable > .resizer {
.resizer {
background: #aaa;
background: rgba(255,255,255,0.5);
display: none;
@ -58,17 +63,19 @@ html.rl-mobile {
position: absolute;
z-index: 102;
}
.resizable > .resizer:hover {
.resizer:hover {
opacity: 1;
}
html:not(.rl-left-panel-disabled) #rl-left.resizable {
html:not(.rl-left-panel-disabled) #rl-left {
resize: horizontal;
overflow: hidden;
min-width: 155px;
max-width: 350px;
}
#rl-left > .resizer {
#rl-left > .resizer,
.rl-side-preview-pane #V-MailMessageList > .resizer {
cursor: ew-resize;
height: 100%;
right: 0;
@ -76,58 +83,17 @@ html:not(.rl-left-panel-disabled) #rl-left.resizable {
width: 5px;
}
.g-ui-menu {
max-height: 60vh;
max-width: 90vw;
overflow: auto;
.e-link {
text-decoration: none;
cursor: pointer;
color: var(--dropdown-menu-color, #333);
background-color: var(--dropdown-menu-bg-color, #fff);
}
.e-item.selected > .e-link {
background-color: var(--dropdown-menu-selected-bg-color, #eee);
}
.e-item:not(.disabled) > .e-link:focus,
.e-item:not(.disabled) > .e-link:hover {
background-color: var(--dropdown-menu-hover-bg-color, #444);
background-image: none;
color: var(--dropdown-menu-hover-color, #eee);
}
.e-item.disabled > .e-link {
cursor: not-allowed;
opacity: 0.5;
}
.rl-side-preview-pane #V-MailMessageList {
resize: horizontal;
min-width: 320px;
max-width: 60%;
}
.g-ui-table {
display: table;
width: 100%;
.e-row {
display: table-row;
}
.e-cell {
display: table-cell;
vertical-align: top;
text-align: left;
}
}
.b-message-list-wrapper.resizable {
.rl-bottom-preview-pane #V-MailMessageList {
resize: vertical;
overflow: hidden;
min-height: 200px;
max-height: 500px;
max-height: 60%;
}
.b-message-list-wrapper > .resizer {
.rl-bottom-preview-pane #V-MailMessageList > .resizer {
cursor: ns-resize;
height: 5px;
left: 0;
@ -135,30 +101,25 @@ html:not(.rl-left-panel-disabled) #rl-left.resizable {
width: 100%;
}
html:not(.rl-left-panel-disabled) #rl-left.resizable > .resizer,
.b-message-list-wrapper > .resizer {
html:not(.rl-left-panel-disabled) #rl-left > .resizer,
#V-MailMessageList > .resizer {
display: block;
}
#rl-right {
z-index: 1;
left: @rlLeftWidth;
}
#rl-sub-left {
#V-MailMessageList {
position: absolute;
top: 0;
bottom: 0;
bottom: @rlBottomMargin;
left: 0;
width: 50%;
}
#rl-sub-right {
#V-MailMessageView {
position: absolute;
top: 0;
bottom: 0;
top: 50px + @rlLowMargin;
bottom: 13px;
right: 0;
left: 50%;
left: 0;
.b-message-view-backdrop {
position: absolute;
@ -186,27 +147,10 @@ html:not(.rl-left-panel-disabled) #rl-left.resizable > .resizer,
}
}
/*
#rl-popups > dialog {
top: 0;
margin: 10px auto;
padding: 0;
border: 0;
html.rl-side-preview-pane {
#V-MailMessageView {
left: 50%;
}
*/
#rl-popups > .rl-view-model {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 1100;
overflow: auto;
background-color: rgba(0,0,0,0.3);
}
#rl-settings-subscreen {
padding:20px;
}
.dropdown-menu * + .dividerbar {
@ -215,12 +159,8 @@ html:not(.rl-left-panel-disabled) #rl-left.resizable > .resizer,
border-top: 1px solid #e5e5e5;
}
.dropdown.colored-toggle.open .btn.dropdown-toggle {
color: #BD362F;
.caret {
border-top-color: #BD362F;
}
.dropdown.show {
box-shadow: 0 0 1px var(--main-color, @dropdownLinkColor);
}
.btn.btn-transparent {
@ -260,12 +200,14 @@ html:not(.rl-left-panel-disabled) #rl-left.resizable > .resizer,
left: @rlLeftWidth + 20;
}
#rl-sub-left {
#V-MailMessageList {
width: 40%;
}
#rl-sub-right {
left: 40%;
html.rl-side-preview-pane {
#V-MailMessageView {
left: 40%;
}
}
}
@ -317,49 +259,32 @@ html.rl-left-panel-disabled {
}
}
html.rl-mobile,
html.rl-no-preview-pane {
#rl-sub-left {
#V-MailMessageList {
right: @rlBottomMargin !important;
width: inherit;
}
#rl-sub-right {
left: 0 !important;
}
}
html.rl-mobile #rl-left > .resizer,
html.rl-side-preview-pane:not(.rl-mobile) #rl-right .resizer {
html.rl-no-preview-pane #rl-right .resizer {
display: none !important;
}
html.rl-bottom-preview-pane:not(.rl-mobile) {
html.rl-bottom-preview-pane {
#rl-sub-left {
right: @rlBottomMargin !important;
#V-MailMessageList {
bottom: inherit;
width: inherit;
.b-message-list-wrapper {
bottom: inherit;
height: 300px;
box-shadow: none;
}
height: 300px;
right: 0;
}
#rl-sub-right {
left: 0 !important;
.b-message-view-wrapper {
top: 356px;
left: 0;
right: 5px;
box-shadow: none;
background-color: var(--message-bg-color, #fff);
}
#V-MailMessageView {
left: 0;
top: 356px;
}
}
@ -368,13 +293,9 @@ html:not(.rl-mobile) .show-mobile {
display: none !important;
}
html.rl-mobile .width100-on-mobile {
width: 100% !important;
}
.e-paginator {
.e-page {
a {
opacity: 0.5;
text-decoration: none;
font-size: 22px;

View file

@ -1,37 +1,39 @@
html.rl-mobile,
html.rl-no-preview-pane {
.messageList.message-selected {
.message-selected #V-MailMessageList {
display: none;
}
}
#V-MailMessageList.focused .messageList {
border-color: #9d9d9d;
}
#sort-list-dropdown-id {
padding-left: 6px;
padding-right: 6px;
}
.messageList {
#V-MailMessageList .btn-toolbar {
height: 30px;
padding: 10px 1px;
white-space: nowrap;
}
.toolbar {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 30px;
padding: 10px 1px;
z-index: 102;
white-space: nowrap;
}
.messageList {
height: calc(100% - 50px);
background-color: #fff;
border: 1px solid @rlMainDarkColor;
border-radius: @rlMainBorderRadius;
box-shadow: @rlMainShadow;
display: flex;
flex-direction: column;
.b-footer {
position: absolute;
bottom: 0;
right: 0;
left: 0;
height: 30px;
display: flex;
flex-shrink: 0;
padding: 7px;
z-index: 101;
background-color: var(--message-list-toolbar-bg-color, #eee);
// #gradient > .vertical(#f4f4f4, #dfdfdf);
@ -41,15 +43,18 @@ html.rl-no-preview-pane {
border-top: 1px solid #bbb;
.e-quota {
border-bottom: 1px dashed #333;
display: inline-block;
margin-top: 5px;
margin-left: 5px;
font-size: 18px;
cursor: help;
}
.e-quota:hover {
border-bottom: 1px dashed #333;
}
}
.b-footer nav {
flex-grow: 1;
text-align: right;
}
.btn.buttonMoreSearch {
@ -58,28 +63,10 @@ html.rl-no-preview-pane {
padding-right: 8px;
}
.b-message-list-wrapper {
position: absolute;
top: 50px;
right: 0;
left: 0;
bottom: @rlBottomMargin;
border: 1px solid @rlMainDarkColor;
box-shadow: @rlMainShadow;
border-radius: @rlMainBorderRadius;
z-index: 101;
}
.second-toolbar {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 29px;
display: flex;
flex-shrink: 0;
padding: 10px 8px 10px 11px;
z-index: 101;
white-space: nowrap;
background-color: var(--message-list-toolbar-bg-color, #eee);
@ -88,46 +75,46 @@ html.rl-no-preview-pane {
border-top-right-radius: @rlMainBorderRadius;
border-top-left-radius: @rlMainBorderRadius;
border-bottom: 1px solid #bbb;
}
.checkboxCheckAll {
cursor: pointer;
vertical-align: middle
}
.checkboxCheckAll {
cursor: pointer;
margin: 0.45em 0.5em 0 0;
}
.input-append {
margin-left: 14px;
text-align: right;
width: calc(100% - 30px);
.search-input-wrp {
flex-grow: 1;
position: relative;
text-align: right;
}
.close-input-wrp {
width: 90%;
min-width: 200px;
max-width: 300px;
}
.inputSearch {
max-width: 300px;
width: 100%;
}
.inputSearch {
width: 100%;
}
.closeSearch {
position: absolute;
right: 0;
top: 5px;
margin: 0 7px;
z-index: 100;
vertical-align: middle;
opacity: .4;
&:hover {
opacity: .6;
}
}
.b-content {
position: absolute;
top: 50px;
bottom: 45px;
left: 0;
right: 0;
height: 100%;
padding: 0;
overflow: auto;
z-index: 101;
scroll-behavior: smooth;
background-color: #fff;
.listClear {
text-align: center;
padding: 10px;
font-size: 14px;
line-height: 13px;
}
@ -182,20 +169,17 @@ html.rl-no-preview-pane {
text-align: center;
}
}
&.focused .b-message-list-wrapper {
background-color: #000;
border-color: #9d9d9d;
}
}
.hideMessageListCheckbox {
.checkboxCheckAll {
visibility: hidden;
}
html:not(rl-mobile) {
.hideMessageListCheckbox {
.checkboxCheckAll {
visibility: hidden;
}
.checkboxMessage {
display: none;
.checkboxMessage {
display: none;
}
}
}
@ -215,13 +199,13 @@ html.rl-no-preview-pane {
border-left: 6px solid #eee;
z-index: 100;
/*
> * {
display: flex;
flex: 0 0 auto;
order: 0;
}
*/
&.focused {
background-color: rgba(128, 128, 128, 0.1);
border-left-color: #ccc;
@ -244,8 +228,7 @@ html.rl-no-preview-pane {
}
.checkboxMessage {
line-height: 12px;
padding: 0 8px 0 6px;
padding: 0 6px;
font-size: 16px;
}
@ -264,7 +247,9 @@ html.rl-no-preview-pane {
}
.senderParent, .subjectParent {
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@ -293,12 +278,6 @@ html.rl-no-preview-pane {
opacity: 0.5;
}
.senderParent, .subjectParent {
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.threads-len span {
border-radius: 6px;
border: 1px solid #ccc;
@ -411,6 +390,7 @@ html.rl-ctrl-key-pressed .messageListItem {
.messageListItem {
.checkboxMessage {
line-height: 12px;
margin: 10px 0 -5px;
}
@ -438,8 +418,8 @@ html.rl-ctrl-key-pressed .messageListItem {
}
}
.b-message-list-wrapper:not(.hideMessageListCheckbox) .subjectParent {
margin-left: 30px;
.messageList:not(.hideMessageListCheckbox) .subjectParent {
margin-left: 28px;
}
}
@ -450,21 +430,11 @@ html:not(.rl-mobile):not(.rl-side-preview-pane) {
line-height: 25px;
flex-wrap: nowrap;
.checkboxMessage {
> * {
line-height: 25px;
}
.flagParent {
margin-top: 6px;
}
.attachmentParent {
margin: 6px 8px 0 0;
}
.senderParent {
font-weight: normal;
text-overflow: none;
flex: 0 0 25%;
}

View file

@ -1,12 +1,24 @@
.g-ui-min-height-300 {
min-height: 300px;
html.rl-no-preview-pane {
#rl-right:not(.message-selected) #V-MailMessageView {
display: none;
}
}
#V-MailMessageView.focused .messageView {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
border-color: darken(@rlMainDarkColor, 5%);
}
.messageView {
background-color: #fff;
border: 1px solid @rlMainDarkColor;
border-radius: @rlMainBorderRadius;
height: 100%;
.toolbar {
position: absolute;
top: 0;
top: -50px - @rlLowMargin;
right: 0;
left: 0;
height: 30px;
@ -15,94 +27,94 @@
}
.b-content {
height: 100%;
}
.b-message {
display: flex;
flex-direction: column;
height: 100%;
}
.b-message-view-checked-helper {
text-align: center;
font-size: 70px;
line-height: 70px;
padding-top: 100px;
color: #999;
.icon-mail {
font-size: 100px;
font-size: 50px;
line-height: 90px;
padding-left: 10px;
}
}
.b-message-view-desc {
text-align: center;
font-size: 24px;
line-height: 30px;
color: #999;
padding: 120px 10px 0 10px;
}
.b-message-view-desc.error {
color: #DA4F49;
}
.message-fixed-button-toolbar {
z-index: 100;
position: absolute;
margin: 0;
top: 50px + @rlLowMargin;
bottom: @rlLowMargin + @rlBottomMargin;
right: @rlLowMargin;
left: -2px;
/*overflow: hidden;*/
border: 1px solid @rlMainDarkColor;
top: 33px;
right: 10px;
}
border-radius: @rlMainBorderRadius;
.infoParent {
cursor: pointer;
opacity: 0.5;
background-color: #fff;
&:hover {
opacity: 1;
}
}
.b-message-view-checked-helper {
text-align: center;
font-size: 70px;
line-height: 70px;
padding-top: 100px;
color: #999;
.flagParent {
.icon-mail {
font-size: 100px;
font-size: 50px;
line-height: 90px;
padding-left: 10px;
}
cursor: pointer;
margin: 0 0.25em;
.flagOn {
color: orange;
}
.b-message-view-desc {
text-align: center;
font-size: 24px;
line-height: 30px;
color: #999;
padding: 120px 10px 0 10px;
}
.b-message-view-desc.error {
color: #DA4F49;
}
.message-fixed-button-toolbar {
z-index: 100;
position: absolute;
top: 33px;
right: 10px;
}
.infoParent {
cursor: pointer;
&.flagOff:not(:hover) {
opacity: 0.5;
&:hover {
opacity: 1;
}
}
.flagParent {
cursor: pointer;
margin: 0 0.25em;
.flagOn {
color: orange;
}
&.flagOff:not(:hover) {
opacity: 0.5;
}
}
}
.messageItemHeader {
padding: 10px;
background-color: #f8f8f8;
border-bottom: 1px solid #ddd;
border-radius: @rlMainBorderRadius @rlMainBorderRadius 0 0;
padding: 10px;
flex-shrink: 0;
.subjectParent {
display: flex;
font-size: 18px;
font-weight: bold;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin-bottom: 8px;
}
.subject, .emptySubjectText {
flex-grow: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.messageButtons {
margin-top: 5px;
}
@ -150,16 +162,11 @@
}
.emptySubjectText {
display: none;
font-style: italic;
font-weight: normal;
color: #999;
}
&.emptySubject .emptySubjectText {
display: inline;
}
.hasVirus {
background: #f00;
color: #fff;
@ -167,294 +174,42 @@
}
}
.messageItem {
.openpgp-control {
margin: 0.5em;
padding: 0.5em;
color: #000;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow: auto;
scroll-behavior: smooth;
span {
margin-right: 1em;
}
.buttonFull {
display: inline-block;
position: fixed;
right: 25px;
bottom: 25px;
height: 30px;
width: 30px;
text-align: center;
vertical-align: middle;
line-height: 30px;
background-color: transparent;
background-color: #fff;
border: 1px solid #333;
color: #333;
z-index: 2;
button {
cursor: pointer;
border-radius: 5px;
opacity: 0.5;
&:hover {
opacity: 0.8;
border-color: #666;
background-color: #888;
color: #fff;
}
}
.loading {
text-align: center;
font-size: 24px;
color: grey;
padding-top: 50px;
&.encrypted {
border: 1px dashed #18F;
color: #18F;
}
&.signed {
border: 1px dashed #FA0;
color: #FA0;
}
.showImages, .readReceipt, .pgpSigned, .pgpEncrypted {
cursor: pointer;
padding: 10px 15px;
border-bottom: 1px solid #ddd;
background-color: #eee;
&.success {
border-color: #090;
color: #090;
}
.pgpInfo {
padding: 5px 15px;
border-bottom: 1px solid #ddd;
background-color: #fcf8e3;
&.success {
background-color: #e9f4ff;
}
&.error {
border-color: #F00;
color: #F00;
}
.readReceipt {
background-color: #ffffd9;
}
.attachmentsPlace {
padding: 10px 10px 6px 10px;
background: #eee;
border-bottom: 1px solid #ddd;
position: relative;
.attachmentList {
margin: 0;
}
&:not(.selection-mode) {
.checkboxAttachment {
display: none;
}
}
&.unselectedAttachmentsError {
.attachmentItem {
box-shadow: 0 1px 4px red;
box-shadow: 0 1px 5px rgba(255, 0, 0, 0.4);
box-shadow: 0 0 0 1px rgba(255, 0, 0, 0.2), 0 1px 5px rgba(255, 0, 0, 0.3);
}
}
.controls-handle {
position: absolute;
bottom: 5px;
right: 8px;
color: #999;
cursor: pointer;
}
}
.attachmentsControls {
padding: 7px 5px 7px 14px;
background: #e8e8e8;
border-bottom: 1px solid #ddd;
}
.rlBlockquoteSwitcher {
border: 1px solid #999;
display: block;
width: 3em;
line-height: 1em;
text-align: center;
cursor: pointer;
margin: 2em 0 10px;
opacity: 0.5;
&:hover {
opacity: 1;
}
}
.b-text-part {
height: 100%;
div[data-x-div-type=html] {
height: 100%;
div[data-x-div-type=body] {
height: 100%;
}
}
a {
color: blue;
text-decoration: underline;
&:visited {
color: #609;
}
&:active {
color: red;
}
}
blockquote {
border-left: 2px solid #000;
padding: 0 10px;
margin: 0;
}
.rl-bq-switcher.hidden-bq {
display: none;
}
&.html {
div[data-x-div-type=body] {
/*padding: 15px;*/
margin: 15px;
}
img {
max-width: 100%;
}
img[data-x-src]:not([src]) {
border: 1px solid #999;
position: relative;
}
img[data-x-src]:not([src])::after {
content: "🖼";
font-family: snappymail;
position: absolute;
top: 0;
left: 0;
color: #000;
background-color: #fff;
}
img[data-x-src]:not([src]):hover::after {
content: attr(data-x-src);
font-family: var(--fontSans);
font-size: 11px;
height: auto;
transform: translate(-25%,0);
width: auto;
width: -moz-fit-content;
width: -webkit-fit-content;
width: fit-content;
z-index: 1000;
}
pre, code {
margin: 0;
border: none;
word-break: normal;
word-wrap: break-word;
}
code {
border-radius: 0;
display: inline;
padding: 2px 5px;
}
pre {
border-radius: 5px;
display: block;
padding: 5px 10px;
}
pre > code {
padding: 0;
}
}
&.plain {
padding: 15px;
/*white-space: pre-wrap;*/
font-family: var(--fontMono);
pre {
margin: 0;
padding: 0;
border: none;
display: block;
word-break: normal;
}
pre.b-plain-openpgp {
display: inline-block;
padding: 6px 10px;
border: 1px dashed #666;
word-break: break-all;
&.success {
border-color: green;
background-color: rgba(0, 255, 0, 0.03);
}
&.error {
border-color: red;
background-color: rgba(255, 0, 0, 0.03);
}
}
blockquote {
border-left: 2px solid blue;
color: blue;
}
blockquote blockquote {
border-left: 2px solid green;
color: green;
}
blockquote blockquote blockquote {
border-left: 2px solid red;
color: red;
}
}
.b-openpgp-control {
display: inline-block;
cursor: pointer;
opacity: 0.5;
&:hover {
opacity: 1;
}
&.success {
color: green;
cursor: help;
opacity: 1;
}
&.error {
color: red;
opacity: 1;
}
}
&.error button,
&.success button {
display: none;
}
}
&.focused .b-content {
z-index: 101;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
border-color: darken(@rlMainDarkColor, 5%);
.b-text-part > iframe {
min-height: 50vh;
}
.thread-controls {
@ -467,40 +222,241 @@
padding-right: 10px;
}
}
}
.thread-list {
#messageItem {
.e-link {
padding: 4px 8px 6px 10px;
color: #000;
height: 100%;
overflow: auto;
scroll-behavior: smooth;
.buttonFull {
display: inline-block;
position: fixed;
right: 25px;
bottom: 25px;
height: 30px;
width: 30px;
text-align: center;
vertical-align: middle;
line-height: 30px;
background-color: transparent;
background-color: #fff;
border: 1px solid #333;
color: #333;
z-index: 2;
cursor: pointer;
border-radius: 5px;
opacity: 0.5;
&:hover {
opacity: 0.8;
border-color: #666;
background-color: #888;
color: #fff;
}
}
.loading {
text-align: center;
font-size: 24px;
color: grey;
padding: 50px 0;
}
.showImages, .readReceipt, .pgpSigned, .pgpEncrypted {
cursor: pointer;
padding: 10px 15px;
border-bottom: 1px solid #ddd;
background-color: #eee;
}
.pgpInfo {
padding: 5px 15px;
border-bottom: 1px solid #ddd;
background-color: #fcf8e3;
&.success {
background-color: #e9f4ff;
}
}
.readReceipt {
background-color: #ffffd9;
}
.attachmentsPlace {
padding: 10px 10px 6px 10px;
background: #eee;
border-bottom: 1px solid #ddd;
position: relative;
.attachmentList {
margin: 0;
}
&.hide-more .thread-list-message.more-that {
&:not(.selection-mode) {
.checkboxAttachment {
display: none;
}
}
&.unselectedAttachmentsError {
.attachmentItem {
box-shadow: 0 1px 4px red;
box-shadow: 0 1px 5px rgba(255, 0, 0, 0.4);
box-shadow: 0 0 0 1px rgba(255, 0, 0, 0.2), 0 1px 5px rgba(255, 0, 0, 0.3);
}
}
.controls-handle {
position: absolute;
bottom: 5px;
right: 8px;
color: #999;
cursor: pointer;
}
}
.attachmentsControls {
padding: 7px 5px 7px 14px;
background: #e8e8e8;
border-bottom: 1px solid #ddd;
}
.rlBlockquoteSwitcher {
border: 1px solid #999;
display: block;
width: 3em;
line-height: 1em;
text-align: center;
cursor: pointer;
margin: 2em 0 10px;
opacity: 0.5;
&:hover {
opacity: 1;
}
}
.b-text-part {
height: 100%;
padding: 10px;
a {
color: blue;
text-decoration: underline;
&:visited {
color: #609;
}
&:active {
color: red;
}
}
blockquote {
border-left: 2px solid #000;
opacity: 0.8;
padding: 0 10px;
margin: 0;
}
.rl-bq-switcher.hidden-bq {
display: none;
}
.thread-date {
font-size: 13px;
color: #999;
&.html {
img {
max-width: 90vw;
}
img[data-x-src]:not([src]) {
border: 1px solid #999;
position: relative;
}
img[data-x-src]:not([src])::after {
content: "🖼";
font-family: snappymail;
position: absolute;
top: 0;
left: 0;
color: #000;
background-color: #fff;
}
img[data-x-src]:not([src]):hover::after {
content: attr(data-x-src);
font-family: var(--fontSans);
font-size: 11px;
height: auto;
transform: translate(-25%,0);
width: auto;
width: -moz-fit-content;
width: -webkit-fit-content;
width: fit-content;
z-index: 1000;
}
pre, code {
margin: 0;
border: none;
word-break: normal;
word-wrap: break-word;
}
code {
border-radius: 0;
display: inline;
padding: 2px 5px;
}
pre {
border-radius: 5px;
display: block;
padding: 5px 10px;
}
pre > code {
padding: 0;
}
}
.more-threads {
text-align: center;
padding: 8px;
background-color: #F5F5F5;
color: #555;
text-decoration: underline;
border-top: 1px dashed #555;
&.plain {
white-space: pre-wrap;
font-family: var(--fontMono);
pre {
margin: 0;
padding: 0;
border: none;
display: block;
word-break: normal;
}
}
/*
&.openpgp-signed,
&.openpgp-encrypted {
border: 1px dashed #FA0;
&.success {
border-color: green;
background-color: rgba(0, 255, 0, 0.03);
}
&.error {
border-color: red;
background-color: rgba(255, 0, 0, 0.03);
}
}
*/
}
}
html.rl-mobile .messageView,
html.rl-no-preview-pane .messageView {
&:not(.message-selected) {
display: none;
}
.toolbar {
padding-left: 1px;
}
@ -521,7 +477,7 @@ html:not(.rl-mobile):not(.rl-no-preview-pane) .messageView {
}
}
html.rl-bottom-preview-pane:not(.rl-mobile) .messageView {
html.rl-bottom-preview-pane .messageView {
.b-content {
bottom: @rlBottomMargin;
}
@ -534,10 +490,10 @@ html.rl-message-fullscreen {
}
#rl-right {
.RL-MailMessageList,
.RL-SettingsPane,
.RL-SystemDropDown,
.RL-MailMessageView .messageView .toolbar {
#V-MailMessageList,
#V-SettingsPane,
#V-SystemDropDown,
#V-MailMessageView .messageView .toolbar {
display: none !important;
}
}
@ -554,7 +510,7 @@ html.rl-message-fullscreen {
}
}
html:not(.rl-mobile) .messageItem {
html:not(.rl-mobile) #messageItem {
.buttonFull {
display: none !important;
}

View file

@ -1,141 +1,18 @@
.b-open-pgp-key-view-content, .b-open-pgp-key-generate-content {
&.modal {
max-width: 570px;
}
#V-PopupsOpenPgpKey, #V-PopupsOpenPgpGenerate {
max-width: 570px;
}
.b-open-pgp-key-view-content {
#V-PopupsOpenPgpKey {
.key-viewer {
margin: 0;
max-height: 500px;
overflow: auto;
}
}
.b-compose-open-pgp-content {
&.modal {
max-width: 800px;
}
#V-PopupsOpenPgpImport {
max-width: 645px;
.key-list {
background-color: #f9f9f9;
border-radius: 5px;
padding: 10px 15px;
&-wrp {
&:hover {
overflow: auto;
}
&:hover .key-list__item-name {
overflow: visible;
}
&.empty {
text-align: center;
padding-top: 10px;
color: #aaa;
font-size: 16px;
}
}
&__item {
color: #333;
white-space: nowrap;
padding-bottom: 4px;
display: flex;
&:last-child {
padding-bottom: 0;
}
&-delete {
cursor: pointer;
&.disabled {
cursor: not-allowed;
}
}
&-names {
color: #333;
width: 80%;
&.empty {
color: red;
}
}
&-name {
overflow: hidden;
text-overflow: ellipsis;
}
&-error {
color: red;
width: 80%;
}
&-hash {
color: #aaa;
width: 20%;
}
}
}
.key-actions {
margin-top: 10px;
min-height: 40px;
select option:nth-child(even) {
background-color: rgba(128, 128, 128, 0.1);
}
}
}
.b-message-open-pgp-content {
&.modal {
max-width: 700px;
}
.key-list {
margin-top: 5px;
overflow: hidden;
&__item {
color: #555;
cursor: pointer;
text-overflow: ellipsis;
white-space: nowrap;
&__radio {
padding: 3px 5px 0 0;
vertical-align: top;
}
&__name {
border-bottom: 1px solid transparent;
}
&__names {
display: inline-block;
&:hover .key-list__item__name {
border-bottom: 1px dashed #555;
}
}
}
}
}
.b-open-pgp-key-add-content {
&.modal {
max-width: 645px;
}
.inputKey {
font-family: var(--fontMono);
width: 600px;

View file

@ -1,5 +1,5 @@
.b-settins-left {
#V-SettingsMenu {
.b-footer {
position: absolute;
@ -46,9 +46,10 @@
}
}
.b-settins-right {
#V-SettingsPane {
height: 100%;
.b-toolbar {
.btn-toolbar {
position: absolute;
top: 0;
right: 0;
@ -58,33 +59,28 @@
color: #fff;
}
.b-content {
position: absolute;
top: 50px;
bottom: @rlLowMargin;
left: 0;
right: @rlLowMargin;
overflow-y: auto;
z-index: 2;
scroll-behavior: smooth;
background-color: #fff;
border: 1px solid @rlMainDarkColor;
box-shadow: @rlMainShadow;
border-radius: @rlMainBorderRadius;
}
td {
padding: 4px 8px;
line-height: 30px;
}
}
html.rl-mobile .rl-settings-view-model {
margin-right: 15px;
#rl-settings-subscreen {
margin: 50px @rlLowMargin @rlLowMargin 0;
overflow-y: auto;
scroll-behavior: smooth;
padding:20px;
box-sizing: border-box;
height: calc(100% - 50px - @rlLowMargin - @rlLowMargin);
background-color: #fff;
border: 1px solid @rlMainDarkColor;
box-shadow: @rlMainShadow;
border-radius: @rlMainBorderRadius;
}
.firefox-drag .b-settins-right .b-content,
.firefox-drag #rl-settings-subscreen,
.firefox-drag .modal-body {
overflow: hidden;
}

View file

@ -1,5 +1,5 @@
.b-settings-accounts {
#V-Settings-Accounts {
.account-name {
display: inline-block;
@ -25,11 +25,12 @@
white-space: nowrap;
}
td + td {
width: 150px;
}
td + td + td {
width: 1%;
text-align: right;
}
td:first-child,
td:last-child, {
width: 1em;
}
.delete {

View file

@ -1,11 +1,11 @@
.b-filter-script {
#V-PopupsSieveScript {
width: auto;
max-width: 720px;
}
.b-filter-script .filter-item,
.b-settings-filters .script-item {
#V-PopupsSieveScript .filter-item,
#V-Settings-Filters .script-item {
white-space: nowrap;
}
@ -30,7 +30,7 @@
color: #aaa;
}
.b-filter-script textarea {
#V-PopupsSieveScript textarea {
height: 300px;
font-family: var(--fontMono);
}

View file

@ -1,5 +1,5 @@
.b-settings-folders {
#V-Settings-Folders {
.folders-list-error {
margin: 10px 0;
@ -10,13 +10,10 @@
}
td + td {
white-space: nowrap;
width: 1em;
}
table:not(.displaySpecSetting) td:last-child {
display: none;
}
.folder-name {
word-break: break-all;
white-space: pre-wrap;
@ -31,6 +28,10 @@
cursor: pointer;
}
select {
width: auto;
}
tr {
&:not(.selectable) {
@ -46,13 +47,6 @@
margin-bottom: 0;
}
.button-delete {
margin-right: 15px;
margin-top: 5px;
visibility: hidden;
opacity: 0;
}
.unsubscribed-folder, .unchecked-folder {
opacity: 0.4;
}

View file

@ -1,4 +1,9 @@
.b-settings-general {
#V-Settings-General {
.editMainIdentity {
border-bottom: 1px dashed #555;
cursor: pointer;
display: inline-block;
padding: 5px 0;
}
}

View file

@ -1,40 +1,23 @@
.b-settings-open-pgp {
#V-Settings-OpenPgp {
td * {
cursor: pointer;
}
td + td {
width: 1%;
}
table {
.open-pgp-key-img {
margin-right: 10px;
vertical-align: top;
}
.open-pgp-key-id, .open-pgp-key-user {
display: inline-block;
word-break: break-all;
box-sizing: border-box;
line-height: 22px;
cursor: default;
}
.open-pgp-key-user-address:first-child {
line-height: 30px;
margin-bottom: -4px;
}
.key-user {
margin: 0 0.5em;
white-space: nowrap;
}
.open-pgp-key-item {
.delete-key:not(:hover) {
opacity: 0.7;
}
.delete-open-pgp-key, .view-open-pgp-key {
cursor: pointer;
opacity: 0.7;
&:hover {
opacity: 0.9;
}
}
iframe {
max-width: 991px;
}
}

View file

@ -1,13 +1,14 @@
.b-themes-list {
#V-Settings-Themes {
.e-item {
figure {
display: inline-block;
border: 2px solid transparent;
cursor: pointer;
padding: 16px;
padding: 8px;
margin: 5px;
width: 128px;
&:hover {
border-color: grey;
@ -18,9 +19,13 @@
border-color: #000;
}
.e-image {
width: 100px;
height: 100px;
figcaption {
padding: 0 0 8px 0;
text-align: center;
}
img {
height: 128px;
}
}
}

View file

@ -1,7 +1,5 @@
.b-shortcuts-content {
&.modal {
max-width: 700px;
}
#V-PopupsKeyboardShortcutsHelp {
max-width: 700px;
td[class^="icon-"] {
display: table-cell;

View file

@ -1,9 +1,10 @@
.squire-toolbar {
padding: 2px;
border-bottom: 1px solid #b6b6b6;
min-height: 28px;
overflow-x: auto;
overflow-y: hidden;
padding: 2px;
white-space: nowrap;
}
@ -38,6 +39,7 @@
.squire-wysiwyg, .squire-plain {
box-sizing: border-box;
font-size: 13px;
height: 100%;
line-height: 16px;
min-height: 200px;
overflow: auto;
@ -62,16 +64,14 @@
}
pre, code {
margin: 0;
padding: 0;
background: #fff;
border: none;
border-radius: 0;
font-family: var(--fontMono);
display: block;
font-family: var(--fontMono);
margin: 0;
padding: 0;
word-break: normal;
word-wrap: break-word;
background-color: #f9f9f9;
}
code {
@ -80,9 +80,8 @@
}
pre {
padding: 5px 10px;
border-radius: 5px;
background-color: #f9f9f9;
padding: 5px 10px;
}
pre > code {
@ -91,32 +90,19 @@
blockquote {
border: 0;
border-left: solid 2px #444;
border-left: 2px solid #444;
margin: 5px 0 5px 5px;
padding-left: 5px;
}
blockquote p {
margin: 0 0 10px;
font-size: 14px;
line-height: 20px;
}
img {
vertical-align: bottom;
}
a {
color: blue;
text-decoration: underline;
&:visited {
color: #609;
}
&:active {
color: red;
}
}
}
/* This does make the block element focusable with mouse in Gecko and Webkit so we don't need a <BR>.
@ -137,7 +123,6 @@ Secondly, we can't rely on MUA's what to do with :empty
*/
.squire-plain {
background-color: #fff;
border: 0;
border-radius: 0;
display: none;
@ -147,35 +132,40 @@ Secondly, we can't rely on MUA's what to do with :empty
white-space: pre-wrap;
width: 100%;
}
.squire-mode-wysiwyg .squire-plain,
.squire-mode-plain .squire-wysiwyg,
.squire-mode-plain .btn-group:not(#squire-toolgroup-mode) {
display: none;
}
.squire-mode-plain .squire-plain {
display: block;
}
/* @media (hover: none) */
.rl-mobile .textAreaParent:not(:focus-within) .squire-toolbar {
display: none;
}
.rl-mobile .squire-toolbar {
background: #EEE;
padding: 1px;
position: fixed;
bottom: 0;
left: 0;
right: 0;
@media screen and (max-height: 600px) {
.rl-mobile .textAreaParent:not(:focus-within) .squire-toolbar {
display: none;
}
.rl-mobile .squire-toolbar {
background: #EEE;
padding: 1px;
position: fixed;
top: 18px;
left: 0;
right: 0;
/*
transform: translateY(-42px);
z-index: 9;
*/
}
}
.rl-mobile .b-compose.modal,
.rl-mobile .b-identity-content.modal {
margin-bottom: 50px;
}
.rl-mobile .b-compose.modal {
min-height: calc(100% - 62px);
.rl-mobile #V-PopupsCompose {
min-height: calc(100% - 12px);
}
.RL-PopupsCompose[data-wysiwyg*=Forced] #squire-toolgroup-mode {
#V-PopupsCompose[data-wysiwyg*=Forced] #squire-toolgroup-mode {
display: none;
}

View file

@ -10,16 +10,14 @@
top: 40px;
}
.b-system-drop-down {
#V-SystemDropDown {
.b-toolbar {
position: absolute;
top: 0;
right: 0;
height: 30px;
padding: 10px @rlLowMargin;
z-index: 103;
}
position: absolute;
top: 0;
right: 0;
height: 30px;
padding: 10px @rlLowMargin;
z-index: 103;
.email-title {
display: inline-block;
@ -73,18 +71,11 @@
white-space: nowrap;
}
.account-item {
&:not(.current) i:first-child,
&.current i + i {
display: none;
}
}
.counter {
display: inline-block;
}
.g-ui-menu .e-link.account-item {
.dropdown-menu a.account-item {
padding-right: 5px;
}
}

View file

@ -1,48 +1,34 @@
label.inline, span.inline {
display: inline-block;
}
.legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: @baseLineHeight;
font-size: @baseFontSize * 1.5;
line-height: @baseLineHeight * 2;
line-height: @baseLineHeight * 1.5;
color: @grayDark;
border: 0;
border-bottom: 1px solid @dropdownDividerTop;
}
.legend + .control-group {
margin-top: @baseLineHeight;
-webkit-margin-top-collapse: separate;
}
.btn-small.btn-small-small {
font-size: 11px;
line-height: 11px;
summary.legend {
display: list-item;
cursor: pointer;
}
.btn.btn-thin {
padding: 4px 9px;
}
.btn.btn-thin-2 {
padding: 4px 7px;
}
.alert a {
.alert a:not(.close) {
text-decoration: underline;
color: @warningText;
}
.alert.alert-info a {
.alert.alert-info a:not(.close) {
color: @infoText;
}
.alert.alert-error a {
.alert.alert-error a:not(.close) {
color: @errorText;
}
@ -50,34 +36,14 @@ label.inline, span.inline {
@media screen and (max-width: 999px) {
.form-horizontal {
.control-group {
.control-label {
> label {
text-align: left;
}
.controls {
margin-left: 10px;
// Move over all input controls and content
> *:not(label) {
margin-left: 20px;
}
}
}
}
.close-input-wrp {
display: inline-block;
position: relative;
input {
padding-right: 15px;
}
.close {
position: absolute;
right: 0;
top: 5px;
margin: 0 7px;
z-index: 100;
vertical-align: middle;
opacity: .4;
&:hover {
opacity: .6;
}
}
}

View file

@ -25,18 +25,6 @@
white-space: normal;
}
}
[data-rainloopErrorTip]::after {
border-color: transparent transparent #999 transparent;
border-style: solid;
border-width: 5px;
content: "";
margin: -5px;
max-width: 80vw;
position: absolute;
top: 100%;
transform: rotate(-45deg);
z-index: 2002;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,

View file

@ -9,8 +9,6 @@
[class*=" icon-"] {
display: inline-block;
width: 1em;
height: 1em;
line-height: 1;
vertical-align: text-top;
.disabled &,