Upgrade Roundcube beetroot theme to 1.6.0 (#6)
Co-authored-by: meaz <meaz@disroot.org> Co-authored-by: muppeth <muppeth@disroot.org> Reviewed-on: #6 Reviewed-by: muppeth <muppeth@no-reply@disroot.org>
This commit is contained in:
parent
7242a3ec39
commit
e555a90ab7
|
@ -29,3 +29,20 @@
|
|||
& when (@dark-mode-enabled = true) {
|
||||
@import "_dark";
|
||||
}
|
||||
/*** Fonts ***/
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url("../fonts/la-solid-900.woff2") format('woff2'),
|
||||
url("../fonts/la-solid-900.woff") format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url("../fonts/la-regular-400.woff2") format('woff2'),
|
||||
url("../fonts/la-regular-400.woff") format('woff');
|
||||
}
|
||||
|
|
|
@ -267,7 +267,7 @@
|
|||
@color-dark-message-error: @color-dark-error;
|
||||
@color-dark-message-loading: lighten(@color-dark-background, 10%);
|
||||
|
||||
@color-dark-scrollbar-thumb: @color-dark-main;
|
||||
@color-dark-scrollbar-thumb: darken(@color-main, 25%);
|
||||
@color-dark-scrollbar-track: @color-dark-border;
|
||||
|
||||
@color-dark-blockquote-0: lighten(@color-main, 10%);
|
||||
|
|
|
@ -12,41 +12,15 @@
|
|||
@import (reference) "variables";
|
||||
|
||||
html.dark-mode {
|
||||
& when not (@scrollbar-dark-width = unset) {
|
||||
scrollbar-color: @color-dark-scrollbar-thumb @color-dark-scrollbar-track;
|
||||
scrollbar-width: @scrollbar-dark-width;
|
||||
scrollbar-color: @color-dark-scrollbar-thumb @color-dark-scrollbar-track;
|
||||
|
||||
textarea,
|
||||
select,
|
||||
.popover-body,
|
||||
.popupmenu,
|
||||
.ui-dialog-content,
|
||||
.frame-content,
|
||||
.formcontent,
|
||||
.table-responsive,
|
||||
.table-responsive-sm,
|
||||
.scroller {
|
||||
// Firefox does not inherit scrollbar size from the html element
|
||||
scrollbar-width: @scrollbar-dark-width;
|
||||
&:not(.touch) {
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: @color-dark-scrollbar-track;
|
||||
}
|
||||
|
||||
&:not(.touch) {
|
||||
::-webkit-scrollbar when (@scrollbar-dark-width = auto) {
|
||||
// Note: If we do not set the width a default scrollbar is used in Chrome.
|
||||
// And the custom colors set below do not work
|
||||
width: 12px;
|
||||
}
|
||||
::-webkit-scrollbar when (@scrollbar-dark-width = thin) {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: @color-dark-scrollbar-track;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: @color-dark-scrollbar-thumb;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: @color-dark-scrollbar-thumb;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -781,17 +755,11 @@ html.dark-mode {
|
|||
}
|
||||
|
||||
.tox-menu {
|
||||
scrollbar-width: @scrollbar-dark-width;
|
||||
background-color: @color-dark-popover-background;
|
||||
border-color: @color-dark-popover-border;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.tox-dialog__body-nav,
|
||||
.tox-collection__group {
|
||||
scrollbar-width: @scrollbar-dark-width;
|
||||
}
|
||||
|
||||
.tox-collection__item-caret svg {
|
||||
fill: @color-dark-font;
|
||||
}
|
||||
|
@ -985,7 +953,6 @@ html.dark-mode {
|
|||
}
|
||||
|
||||
.ui-menu {
|
||||
scrollbar-width: @scrollbar-dark-width;
|
||||
background-color: @color-dark-popover-background;
|
||||
border-color: @color-dark-popover-border;
|
||||
box-shadow: none;
|
||||
|
|
|
@ -93,8 +93,3 @@
|
|||
.rcmail-inline-buttons {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// Have a black background when writing an email
|
||||
// & when (@dark-mode-enabled = true) {
|
||||
// @import "dark";
|
||||
// }
|
||||
|
|
|
@ -1 +1 @@
|
|||
@font-face{font-family:'Icons';font-style:normal;font-weight:900;src:url("../fonts/la-solid-900.woff2") format('woff2'),url("../fonts/la-solid-900.woff") format('woff')}@font-face{font-family:'Icons';font-style:normal;font-weight:400;src:url("../fonts/la-regular-400.woff2") format('woff2'),url("../fonts/la-regular-400.woff") format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url('../fonts/roboto-v29-regular.woff2') format('woff2'),url('../fonts/roboto-v29-regular.woff') format('woff')}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url('../fonts/roboto-v29-italic.woff2') format('woff2'),url('../fonts/roboto-v29-italic.woff') format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url('../fonts/roboto-v29-regular-700.woff2') format('woff2'),url('../fonts/roboto-v29-regular-700.woff') format('woff')}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'),local('Roboto-BoldItalic'),url('../fonts/roboto-v29-italic-700.woff2') format('woff2'),url('../fonts/roboto-v29-italic-700.woff') format('woff')}body,button,input,optgroup,select,textarea,.popover{font-family:Roboto,sans-serif}button,input,select,textarea{line-height:initial}input{vertical-align:middle}a{color:#bd139a}a:hover{color:#8f0e74}a.disabled{pointer-events:none}a.disabled:not(.btn){opacity:.5}html{scrollbar-color:#c1c1c1 #f1f1f1;scrollbar-width:thin}html textarea,html select,html .popover-body,html .popupmenu,html .ui-dialog-content,html .frame-content,html .formcontent,html .table-responsive,html .table-responsive-sm,html .scroller{scrollbar-width:thin}html:not(.touch) ::-webkit-scrollbar{width:6px}html:not(.touch) ::-webkit-scrollbar-track{background-color:#f1f1f1}html:not(.touch) ::-webkit-scrollbar-thumb{background-color:#c1c1c1}.mce-content-body{margin:4px;color:#2c363a}.mce-content-body div.pre{font-family:monospace}.mce-content-body blockquote{border-left:#1010ff 2px solid;margin:0;padding:0 .4em}.rcmail-inline-message{font-family:Roboto,sans-serif;font-size:14px;padding:.5em;margin:0 0 .5em 0;opacity:.95;color:#2c363a;background-color:rgba(246,96,157,0.2);display:flex;align-items:center}.rcmail-inline-message:before{font-size:1.25em;display:block;float:left;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:'Icons';font-style:normal;font-weight:900;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.5em;line-height:1;width:1em;margin-right:.3em;content:"\f071";color:#F6609D}.rcmail-inline-message span{line-height:1.5}.rcmail-inline-message a{color:#bd139a}.rcmail-inline-message a:hover{color:#8f0e74}.rcmail-inline-message button{vertical-align:middle;white-space:nowrap;padding:.375em .75em;margin-left:.5em;font-size:1em;line-height:1.5;border-radius:.25em;border:1px solid transparent;color:#fff;background:#50162d}.rcmail-inline-message button:focus{box-shadow:0 0 0 .2rem rgba(80,22,45,0.5)}.rcmail-inline-message button:hover{background:#300d1b;border-color:#280b17}.rcmail-inline-message button:not([disabled]):not(.disabled):active{background:#240a14;border-color:#1c0810;box-shadow:0 0 0 .2rem rgba(80,22,45,0.53)}.rcmail-inline-buttons{margin:0}
|
||||
.popover,.rcmail-inline-message,body,button,input,optgroup,select,textarea{font-family:Roboto,sans-serif}@font-face{font-family:Icons;font-style:normal;font-weight:900;src:url(../fonts/fa-solid-900.woff2) format('woff2'),url(../fonts/fa-solid-900.woff) format('woff')}@font-face{font-family:Icons;font-style:normal;font-weight:400;src:url(../fonts/fa-regular-400.woff2) format('woff2'),url(../fonts/fa-regular-400.woff) format('woff')}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local('Roboto'),local('Roboto-Regular'),url(../fonts/roboto-v29-regular.woff2) format('woff2'),url(../fonts/roboto-v29-regular.woff) format('woff')}@font-face{font-family:Roboto;font-style:italic;font-weight:400;src:local('Roboto Italic'),local('Roboto-Italic'),url(../fonts/roboto-v29-italic.woff2) format('woff2'),url(../fonts/roboto-v29-italic.woff) format('woff')}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(../fonts/roboto-v29-regular-700.woff2) format('woff2'),url(../fonts/roboto-v29-regular-700.woff) format('woff')}@font-face{font-family:Roboto;font-style:italic;font-weight:700;src:local('Roboto Bold Italic'),local('Roboto-BoldItalic'),url(../fonts/roboto-v29-italic-700.woff2) format('woff2'),url(../fonts/roboto-v29-italic-700.woff) format('woff')}button,input,select,textarea{line-height:initial}input{vertical-align:middle}a{color:#bd139a}a:hover{color:#8f0e74}a.disabled{pointer-events:none}a.disabled:not(.btn){opacity:.5}html:not(.touch) ::-webkit-scrollbar{width:6px}html{scrollbar-color:#c1c1c1 #f1f1f1}html:not(.touch) ::-webkit-scrollbar-track{background-color:#f1f1f1}html:not(.touch) ::-webkit-scrollbar-thumb{background-color:#c1c1c1}.mce-content-body{margin:4px;color:#2c363a}.mce-content-body div.pre{font-family:monospace}.mce-content-body blockquote{border-left:#1010ff 2px solid;margin:0;padding:0 .4em}.rcmail-inline-message{font-size:14px;padding:.5em;margin:0 0 .5em;opacity:.95;color:#2c363a;background-color:rgba(246,96,157,.2);display:flex;align-items:center}.rcmail-inline-message:before{display:block;float:left;margin:0 .3em 0 0;height:1em;font-family:Icons;font-style:normal;font-weight:900;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:1.5em;line-height:1;width:1em;content:"\f071";color:#F6609D}.rcmail-inline-message span{line-height:1.5}.rcmail-inline-message a{color:#bd139a}.rcmail-inline-message a:hover{color:#8f0e74}.rcmail-inline-message button{vertical-align:middle;white-space:nowrap;padding:.375em .75em;margin-left:.5em;font-size:1em;line-height:1.5;border-radius:.25em;border:1px solid transparent;color:#fff;background:#50162d}.rcmail-inline-message button:focus{box-shadow:0 0 0 .2rem rgba(80,22,45,.5)}.rcmail-inline-message button:hover{background:#300d1b;border-color:#280b17}.rcmail-inline-message button:not([disabled]):not(.disabled):active{background:#240a14;border-color:#1c0810;box-shadow:0 0 0 .2rem rgba(80,22,45,.53)}.rcmail-inline-buttons{margin:0}
|
|
@ -18,16 +18,16 @@
|
|||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url("../fonts/la-solid-900.woff2") format('woff2'),
|
||||
url("../fonts/la-solid-900.woff") format('woff');
|
||||
src: url("../fonts/fa-solid-900.woff2") format('woff2'),
|
||||
url("../fonts/fa-solid-900.woff") format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url("../fonts/la-regular-400.woff2") format('woff2'),
|
||||
url("../fonts/la-regular-400.woff") format('woff');
|
||||
src: url("../fonts/fa-regular-400.woff2") format('woff2'),
|
||||
url("../fonts/fa-regular-400.woff") format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
|
@ -99,21 +99,27 @@ a {
|
|||
/* Scrollbar styles */
|
||||
|
||||
html when not (@scrollbar-width = unset) {
|
||||
scrollbar-color: @color-scrollbar-thumb @color-scrollbar-track;
|
||||
scrollbar-width: @scrollbar-width;
|
||||
|
||||
textarea,
|
||||
select,
|
||||
.popover-body,
|
||||
.popupmenu,
|
||||
.ui-dialog-content,
|
||||
.frame-content,
|
||||
.formcontent,
|
||||
.table-responsive,
|
||||
.table-responsive-sm,
|
||||
.scroller {
|
||||
// Firefox does not inherit scrollbar size from the html element
|
||||
// Ignore thin width setting for Firefox, it makes the scrollbar very very thin in Firefox >= 100
|
||||
& when not (@scrollbar-width = thin) {
|
||||
scrollbar-width: @scrollbar-width;
|
||||
|
||||
textarea,
|
||||
select,
|
||||
.popover-body,
|
||||
.popupmenu,
|
||||
.ui-menu,
|
||||
.ui-dialog-content,
|
||||
.frame-content,
|
||||
.formcontent,
|
||||
.table-responsive,
|
||||
.table-responsive-sm,
|
||||
.tox-menu,
|
||||
.tox-dialog__body-nav,
|
||||
.tox-collection__group,
|
||||
.scroller {
|
||||
// Firefox does not inherit scrollbar size from the html element
|
||||
scrollbar-width: @scrollbar-width;
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.touch) {
|
||||
|
@ -125,7 +131,13 @@ html when not (@scrollbar-width = unset) {
|
|||
::-webkit-scrollbar when (@scrollbar-width = thin) {
|
||||
width: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
scrollbar-color: @color-scrollbar-thumb @color-scrollbar-track;
|
||||
|
||||
&:not(.touch) {
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: @color-scrollbar-track;
|
||||
}
|
||||
|
|
|
@ -405,6 +405,18 @@ body.task-error-login #layout {
|
|||
font-family: monospace;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
// This is needed for proper display of quoted plain text
|
||||
blockquote {
|
||||
display: inline-block;
|
||||
min-width: 100%;
|
||||
|
||||
& + br {
|
||||
// compensate the spacing "removed" by the inline-block style above
|
||||
display: block;
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#compose-attachments {
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -55,7 +55,6 @@
|
|||
|
||||
// Scrollbars
|
||||
@scrollbar-width: thin; // 'auto' or 'thin' or 'unset'
|
||||
@scrollbar-dark-width: thin; // 'auto' or 'thin' or 'unset'
|
||||
|
||||
// Additional icons
|
||||
@icon-resize-corner: data-uri("image/svg+xml;charset=utf-8", "../images/corner-handle.svg"); // size: 16x16
|
||||
|
|
|
@ -128,6 +128,7 @@ html.layout-phone {
|
|||
a {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
color: @color-popover-mobile-header;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,12 +86,6 @@ div.tox {
|
|||
background-color: @color-dialog-overlay-background;
|
||||
}
|
||||
|
||||
.tox-menu,
|
||||
.tox-dialog__body-nav,
|
||||
.tox-collection__group {
|
||||
scrollbar-width: @scrollbar-width;
|
||||
}
|
||||
|
||||
.tox-dialog__header {
|
||||
height: (@layout-header-height - 1px);
|
||||
border-bottom: 1px solid @color-dialog-header-border;
|
||||
|
|
|
@ -959,23 +959,50 @@ html.ms .propform {
|
|||
.style-input-focus();
|
||||
}
|
||||
|
||||
.recipient {
|
||||
display: flex;
|
||||
position: relative;
|
||||
max-width: ~"calc(50% - 3px)";
|
||||
border: 1px solid @color-recipient-input-border;
|
||||
background-color: @color-recipient-input-background;
|
||||
border-radius: .25em;
|
||||
padding: 0 .25em;
|
||||
margin-top: @recipient-input-margin-fix;
|
||||
margin-right: .2em;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
li {
|
||||
max-width: 100%;
|
||||
|
||||
@media screen and (max-width: 450px) {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
&:not(.recipient) {
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
&.input {
|
||||
flex: 1;
|
||||
min-width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
background: transparent !important;
|
||||
border: 0 !important;
|
||||
margin-top: @recipient-input-margin-fix;
|
||||
outline: 0;
|
||||
line-height: 1.5;
|
||||
|
||||
&::-ms-clear {
|
||||
display: none; // removes clear icon in IE11
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.recipient-input li.recipient,
|
||||
body > li.recipient.ui-sortable-helper {
|
||||
display: flex;
|
||||
position: relative;
|
||||
max-width: ~"calc(50% - 3px)";
|
||||
border: 1px solid @color-recipient-input-border;
|
||||
background-color: @color-recipient-input-background;
|
||||
border-radius: .25rem;
|
||||
padding: 0 .25rem;
|
||||
margin-top: @recipient-input-margin-fix;
|
||||
margin-right: .2em;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
|
||||
@media screen and (max-width: 450px) {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.name {
|
||||
|
@ -1011,30 +1038,9 @@ html.ms .propform {
|
|||
}
|
||||
}
|
||||
|
||||
li {
|
||||
max-width: 100%;
|
||||
|
||||
&:not(.recipient) {
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
&.input {
|
||||
flex: 1;
|
||||
min-width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
background: transparent !important;
|
||||
border: 0 !important;
|
||||
margin-top: @recipient-input-margin-fix;
|
||||
outline: 0;
|
||||
line-height: 1.5;
|
||||
|
||||
&::-ms-clear {
|
||||
display: none; // removes clear icon in IE11
|
||||
}
|
||||
&.ui-sortable-helper {
|
||||
// fix element width while dragging
|
||||
padding: 0 0 0 .25rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
border-radius: .3rem;
|
||||
z-index: 240;
|
||||
position: absolute;
|
||||
scrollbar-width: @scrollbar-width;
|
||||
|
||||
.ui-state-active {
|
||||
border: 0 !important;
|
||||
|
|
|
@ -794,7 +794,14 @@ html.touch {
|
|||
.messagelist {
|
||||
tr {
|
||||
position: relative;
|
||||
display: flex; // Safari fix (#8433)
|
||||
}
|
||||
|
||||
td.selection,
|
||||
td.threads {
|
||||
line-height: 3.8em; // because of display:flex above
|
||||
}
|
||||
|
||||
td.flags {
|
||||
position: absolute;
|
||||
top: .25rem;
|
||||
|
@ -806,6 +813,7 @@ html.touch {
|
|||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
td.subject {
|
||||
padding-right: .5em;
|
||||
|
||||
|
|
48
ui.js
48
ui.js
|
@ -2428,28 +2428,30 @@ function rcube_elastic_ui()
|
|||
if (popup_id && menus[popup_id] && popup.is(':visible')) {
|
||||
menus[popup_id].transitioning = true;
|
||||
}
|
||||
})
|
||||
.on('hidden.bs.popover', function() {
|
||||
if (/-clone$/.test(popup.attr('id'))) {
|
||||
popup.remove();
|
||||
}
|
||||
else {
|
||||
popup.attr('aria-hidden', true)
|
||||
// Some menus aren't being hidden, force that
|
||||
.addClass('hidden')
|
||||
// Bootstrap will detach the popup element from
|
||||
// the DOM (https://github.com/twbs/bootstrap/issues/20219)
|
||||
// making our menus to not update buttons state.
|
||||
// Work around this by attaching it back to the DOM tree.
|
||||
.appendTo(popup.data('popup-parent') || document.body);
|
||||
}
|
||||
|
||||
// close orphaned popovers, for some reason there are sometimes such dummy elements left
|
||||
$('.popover-body:empty').each(function() { $(this).parent().remove(); });
|
||||
// Note: We do not use hidden.bs.popover event because it is not always executed (#8602)
|
||||
setTimeout(function () {
|
||||
if (/-clone$/.test(popup.attr('id'))) {
|
||||
popup.remove();
|
||||
}
|
||||
else {
|
||||
popup.attr('aria-hidden', true)
|
||||
// Some menus aren't being hidden, force that
|
||||
.addClass('hidden')
|
||||
// Bootstrap will detach the popup element from
|
||||
// the DOM (https://github.com/twbs/bootstrap/issues/20219)
|
||||
// making our menus to not update buttons state.
|
||||
// Work around this by attaching it back to the DOM tree.
|
||||
.appendTo(popup.data('popup-parent') || document.body);
|
||||
}
|
||||
|
||||
if (popup_id && menus[popup_id]) {
|
||||
delete menus[popup_id];
|
||||
}
|
||||
// close orphaned popovers, for some reason there are sometimes such dummy elements left
|
||||
$('.popover-body:empty').each(function() { $(this).parent().remove(); });
|
||||
|
||||
if (popup_id && menus[popup_id]) {
|
||||
delete menus[popup_id];
|
||||
}
|
||||
}, 200);
|
||||
})
|
||||
// Because Bootstrap does not provide originalEvent in show/shown events
|
||||
// we have to handle that by our own using click and keydown handlers
|
||||
|
@ -2478,7 +2480,11 @@ function rcube_elastic_ui()
|
|||
$(item).attr('title', title);
|
||||
}
|
||||
|
||||
popup.attr('aria-hidden', 'true').data('button', item);
|
||||
if (is_mobile() || !popup.is('.toolbar')) {
|
||||
popup.attr('aria-hidden', 'true');
|
||||
}
|
||||
|
||||
popup.data('button', item);
|
||||
|
||||
// stop propagation to e.g. do not hide the popup when
|
||||
// clicking inside on form elements
|
||||
|
|
Loading…
Reference in New Issue