Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F86306
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
41 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/skins/elastic/styles/dark.less b/skins/elastic/styles/dark.less
index cbfa53a1f..6e30c5708 100644
--- a/skins/elastic/styles/dark.less
+++ b/skins/elastic/styles/dark.less
@@ -1,1120 +1,1121 @@
/**
* Roundcube webmail styles for the Elastic skin
*
* Copyright (c) The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original authors in the README.md file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
@import (reference) "variables";
html.dark-mode {
scrollbar-color: @color-dark-scrollbar-thumb @color-dark-scrollbar-track;
scrollbar-width: thin;
+ textarea,
.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: thin;
}
&:not(.touch) {
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background-color: @color-dark-border;
}
::-webkit-scrollbar-thumb {
background-color: @color-dark-main;
}
}
body {
color: @color-dark-font;
background-color: @color-dark-background;
}
#logo {
// FIXME: is there a better way to make the logo darker?
// `mix-blend-mode: soft-light` makes it slightly too dark
opacity: .8;
}
#layout-list,
#layout-content,
#layout-sidebar,
#layout > div > .header,
#layout > div > .footer,
.popup .listbox .footer,
.menu.pagenav.pagenav-list,
.menu.pagenav.pagenav-list + .navlist,
.menu.pagenav.pagenav-list.expanded + .navlist {
background-color: transparent;
border-color: @color-dark-border;
}
#layout > div > .footer {
font-weight: normal;
}
#layout > div > .header,
#layout > div > .footer {
color: unset;
a.button {
color: @color-dark-font;
}
}
#layout-menu {
background: unset;
border-right: 1px solid @color-dark-border;
.popover-header,
.special-buttons {
background: transparent !important;
}
@media screen and (max-width: @screen-width-xs) {
border-left: 0;
.popover-header {
border-bottom: 1px solid @color-dark-border;
}
}
}
&.layout-phone #layout-menu {
background: @color-dark-popover-background;
}
.searchbar {
background-color: transparent;
border-color: @color-dark-border;
form:before,
a,
input {
color: unset;
}
a.selected {
color: @color-success;
}
}
#messagestack {
div {
color: @color-dark-font;
i.icon:before {
color: @color-dark-font;
}
}
}
.ui.alert.boxinformation,
#messagestack .alert-info {
background-color: @color-dark-message-information;
}
.ui.alert.boxerror,
#messagestack .alert-danger {
background-color: @color-dark-message-error;
}
.ui.alert.boxwarning,
#messagestack .alert-warning {
background-color: @color-dark-message-warning;
}
.ui.alert.boxconfirmation,
#messagestack .alert-success {
background-color: @color-dark-message-success;
}
#messagestack .loading {
background-color: @color-dark-message-loading;
}
.ui.alert.boxinformation,
.ui.alert.boxerror,
.ui.alert.boxwarning,
.ui.alert.boxconfirmation {
color: @color-dark-font;
i.icon:before {
color: @color-dark-font;
}
}
.iframe-loader {
background-color: fadeout(@color-dark-background, 10%);
.spinner-border {
color: darken(@color-dark-font, 25%);
border-color: currentColor darken(@color-dark-font, 50%) currentColor currentColor;
}
}
#taskmenu a,
.menu.toolbar a {
color: @color-dark-font;
&.selected {
background-color: @color-dark-list-selected-background;
}
}
pre,
.popover .menu li a[aria-haspopup]::after,
.menu.pagenav .pagenav-text,
.menu.pagenav a {
color: unset;
}
#taskmenu {
.action-buttons a {
color: @color-main;
}
a {
@media screen and (max-width: @screen-width-xs) {
border-color: @color-dark-list-border !important;
&.selected {
background: transparent;
}
}
@media screen and (min-width: (@screen-width-xs + 1px)) and (max-width: @screen-width-medium) {
width: @layout-menu-width-sm - 1px;
}
@media screen and (min-width: (@screen-width-medium + 1px)) {
width: @layout-menu-width - 1px;
}
}
}
&.layout-small,
&.layout-phone {
.popover {
border-left: 1px solid @color-dark-border;
.menu .dropbutton a.dropdown {
background: transparent;
}
&:not(.select-menu) .listing li:last-child {
border-color: @color-dark-list-border;
}
}
.popover-header {
background: @color-dark-popover-background;
border-bottom: 1px solid @color-dark-border;
color: unset;
}
.popover-overlay {
background: @color-dark-dialog-overlay-background;
}
}
#taskmenu a:hover,
.popupmenu .listing li > a:not(.disabled):hover,
.header a.button.icon:not(.disabled):focus,
.header a.button.icon:not(.disabled):hover,
.menu.toolbar .dropbutton:not(.disabled):hover,
.menu a:not(.disabled):focus,
.menu a:not(.disabled):hover {
background-color: @color-dark-list-selected-background;
}
.menu.toolbar a.selected {
color: @color-success;
background: transparent;
}
.menu.toolbar .dropbutton a.dropdown:hover {
background-color: lighten(@color-dark-list-selected-background, 5%);
}
// ---------------------------------
// Lists
// ---------------------------------
.listing tbody td,
.listing tbody td a,
.listing li a {
color: @color-dark-font;
}
.listing li ul,
.listing tbody td,
.listing li {
border-color: @color-dark-list-border;
}
.listing li.selected,
.listing li.selected > a,
.listing li.selected > div > a, // this is used e.g. by kolab_addressbook
.listing tr.selected td {
color: @color-dark-list-selected;
background-color: @color-dark-list-selected-background;
}
.listing li.selected ul {
background-color: @color-dark-background;
div.treetoggle {
color: @color-dark-font;
}
}
.listing {
li.disabled,
tr.disabled td {
color: @color-dark-list-deleted;
}
}
.listing li.droptarget > a,
.listing tr.droptarget > td {
background-color: @color-dark-list-droptarget-background;
}
.messagelist {
color: @color-dark-font;
tr:not(.flagged):not(.deleted) {
td.subject {
span.date,
span.fromto {
color: @color-dark-hint;
}
span.msgicon.status {
color: @color-dark-font;
&.unread::before {
color: darken(@color-warning, 30%);
}
}
}
span.flag {
color: @color-dark-font;
}
&.selected {
td.subject {
a,
span.msgicon.status {
color: @color-dark-list-selected;
}
}
}
}
tr.flagged:not(.deleted) {
td,
span.attachment span {
color: @color-list-flagged;
}
}
tr.deleted {
td span.flag,
td span.attachment span,
td.subject span.msgicon.status,
td.subject span.msgicon.status.unread:before,
td.subject span.subject a,
td.subject span.date,
td.subject span.fromto {
color: @color-dark-list-deleted;
}
}
span.attachment span {
color: @color-dark-hint;
}
}
.folderlist li.mailbox .unreadcount {
background-color: @color-dark-list-badge-background;
color: @color-dark-list-badge;
font-weight: normal;
}
.attachmentslist {
background-color: @color-dark-list-selected-background;
border: 0;
a {
color: @color-dark-font;
}
li {
.attachment-name {
color: @color-dark-font;
}
.attachment-size {
color: @color-dark-hint;
}
}
}
// ---------------------------------
// Buttons & Forms
// ---------------------------------
.btn {
color: @color-dark-font;
&:focus,
&:hover {
color: @color-dark-btn;
}
&:disabled {
opacity: .5 !important;
}
}
.btn-primary {
background-color: @color-dark-btn-primary-background;
color: @color-dark-btn;
&:hover:not(:disabled) {
background-color: lighten(@color-dark-btn-primary-background, 5%);
}
}
.btn-secondary {
background-color: @color-dark-btn-secondary-background;
color: @color-dark-btn;
&:hover:not(:disabled) {
background-color: lighten(@color-dark-btn-secondary-background, 5%);
}
}
.btn-danger {
background-color: @color-dark-btn-danger-background;
color: @color-dark-btn;
&:hover:not(:disabled) {
background-color: lighten(@color-dark-btn-danger-background, 5%);
}
}
.floating-action-buttons a.button {
box-shadow: none;
background: @color-dark-main;
}
.custom-file-label,
.form-control {
background-color: @color-dark-input-background;
color: @color-dark-input;
&:not(.is-invalid) {
border-color: @color-dark-input-border;
}
&:focus {
background-color: @color-dark-input-background-focus;
&:not(.is-invalid) {
color: @color-dark-input-focus !important;
border-color: @color-dark-input-border-focus;
}
}
}
.custom-file-label::after {
color: @color-dark-input;
background-color: @color-dark-input-addon-background;
}
.custom-select {
@color-arrow: escape(~"@{color-dark-input}");
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='@{color-arrow}' viewBox='0 0 4 5'%3e%3cpath d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;
}
.custom-switch {
.custom-control-label::before {
background-color: @color-dark-checkbox;
}
.custom-control-label::after {
background-color: @color-dark-font;
}
.custom-control-input:disabled ~ .custom-control-label {
opacity: .4;
}
.custom-control-input:checked {
& ~ .custom-control-label::before {
background-color: @color-dark-checkbox-checked;
}
& ~ .custom-control-label::after {
background-color: @color-dark-font;
}
}
}
input:disabled,
select:disabled {
opacity: .5;
}
.multi-input:not(.is-invalid) > .content {
border-color: @color-dark-input-border;
&.focused {
border-color: @color-dark-input-border-focus;
}
}
.input-group-text {
color: @color-dark-input;
background-color: @color-dark-input-addon-background;
border-color: @color-dark-input-border;
}
.input-group a:focus {
border-color: @color-dark-input-border-focus;
box-shadow: 0 0 0 .2rem @color-input-border-focus-shadow;
z-index: 1;
}
.form-control-plaintext {
color: unset;
}
.recipient-input {
&.focus {
color: @color-dark-input-focus;
background-color: @color-dark-input-background-focus;
border-color: @color-dark-input-border-focus;
}
input {
color: @color-dark-input;
}
.recipient {
background-color: @color-dark-input-addon-background;
border-color: @color-dark-input-border;
}
}
.file-upload {
border-color: @color-dark-border;
&:after {
mix-blend-mode: soft-light;
}
&.droptarget {
&.active {
border-color: @color-dark-font;
}
&.hover {
border-color: @color-dark-font;
background-color: @color-dark-list-selected-background;
}
}
.attachmentslist {
background: transparent;
}
}
.image-upload {
background-color: @color-dark-list-selected-background;
a.button {
background-color: fadeout(@color-dark-background, 75%);
}
}
.formcontent.raweditor {
.CodeMirror {
color: @color-dark-input;
background-color: @color-dark-input-background;
border-color: @color-dark-input-border;
}
.CodeMirror-focused {
background-color: @color-dark-input-background-focus;
border-color: @color-dark-input-border-focus;
}
}
.CodeMirror-selected,
.CodeMirror-line::selection,
.CodeMirror-line > span::selection,
.CodeMirror-line > span > span::selection {
background: @color-dark-list-selected-background;
}
.CodeMirror-gutters {
background-color: darken(@color-dark-list-selected-background, 10%);
border: 0;
}
.CodeMirror-activeline-background {
background: @color-dark-list-selected-background;
}
.skinselection .skinthumbnail {
border-color: @color-dark-input-border;
background: transparent;
}
// ---------------------------------
// HTML Editor (TinyMCE)
// ---------------------------------
.html-editor {
.editor-toolbar {
background-color: @color-dark-input-addon-background;
border-color: @color-dark-input-border;
.mce-i-html {
color: unset;
&:hover,
&:focus {
background-color: @color-dark-input-addon-background-focus;
border-color: transparent;
}
}
}
}
.tox {
&.tox-tinymce {
border-color: @color-dark-input-border;
}
.tox-toolbar {
background-color: @color-dark-input-addon-background;
border-color: @color-dark-input-border;
}
.tox-toolbar-overlord > div {
@color-overlord-border: escape(~"@{color-dark-input-border}");
background: url("data:image/svg+xml,%3Csvg height='33px' viewBox='0 0 40 33px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='32px' width='100' height='1' fill='@{color-overlord-border}'/%3E%3C/svg%3E") @color-dark-input-addon-background;
}
.tox-pop.tox-pop--top {
&:before,
&:after {
border-bottom-color: @color-dark-popover-border;
}
}
.tox-pop__dialog {
box-shadow: none;
border-color: @color-dark-popover-border;
}
.tox-tbtn,
.tox-split-button,
.tox-swatches__picker-btn {
color: @color-dark-font;
svg {
fill: @color-dark-font !important;
}
&:hover,
&:focus {
color: @color-dark-font;
background: @color-dark-input-addon-background-focus;
box-shadow: none;
}
}
.tox-tbtn--enabled {
background: @color-dark-input-addon-background-focus;
}
.tox-button--naked {
&:focus:not(:disabled),
&.tox-button--icon:hover:not(:disabled) {
color: lighten(@color-dark-font, 5%);
background-color: @color-dark-input-addon-background-focus;
border-color: transparent;
}
&:disabled {
background: transparent;
border: transparent;
}
}
.tox-dialog__header .tox-button--naked:hover {
background: transparent !important;
}
.tox-selectfield {
select {
background: transparent;
color: @color-dark-input;
}
svg {
fill: @color-dark-input;
}
}
.tox-color-input span::before {
background-color: @color-dark-font;
}
.tox-toolbar__group:not(:last-of-type) {
border-color: @color-dark-input-border;
}
.tox-dialog,
.tox-dialog__header,
.tox-dialog__body,
.tox-dialog__footer,
.tox-dialog__title {
color: @color-dark-font;
border-color: @color-dark-border;
background-color: @color-dark-background;
}
.tox-textfield,
.tox-color-input > input,
.tox-label,
.tox-dialog__body-nav-item,
.tox-button--naked,
.tox-dialog__header .tox-button,
.tox-insert-table-picker__label {
color: @color-dark-font;
}
.tox-dialog__footer .tox-button {
background-color: @color-dark-btn-primary-background;
color: @color-dark-btn;
&:disabled {
opacity: .5;
}
@media screen and (max-width: @screen-width-xs) {
color: @color-dark-font !important;
}
&:focus:not(:disabled) {
background-color: @color-dark-btn-primary-background;
}
&:hover:not(:disabled) {
background-color: lighten(@color-dark-btn-primary-background, 5%);
}
&.tox-button--secondary {
background-color: @color-dark-btn-secondary-background;
color: @color-dark-btn;
&:focus:not(:disabled) {
background-color: @color-dark-btn-secondary-background;
}
&:hover:not(:disabled) {
background-color: lighten(@color-dark-btn-secondary-background, 5%);
}
}
}
.tox-dialog__body-nav-item--active {
color: @color-main;
}
.tox-dialog-wrap__backdrop {
background-color: @color-dark-dialog-overlay-background;
}
.tox-menu {
scrollbar-width: thin;
background-color: @color-dark-popover-background;
border-color: @color-dark-popover-border;
box-shadow: none;
}
.tox-collection__group {
scrollbar-width: thin;
}
.tox-collection__item-caret svg {
fill: @color-dark-font;
}
.tox-collection__item {
color: @color-dark-font;
&:not(:last-child) {
border-bottom: 1px solid @color-dark-list-border;
}
}
.tox-collection--grid .tox-collection__item {
border: 0;
}
.tox-collection__item--active,
.tox-collection__item--active:not(.tox-collection__item--state-disabled) {
color: @color-dark-font;
background-color: @color-dark-list-selected-background;
}
.tox-collection__item--enabled {
color: @color-dark-list-selected;
background-color: @color-dark-list-selected-background;
}
}
// ---------------------------------
// Mail preview
// ---------------------------------
.message-part,
.message-htmlpart {
border-color: @color-dark-border;
blockquote {
background-color: @color-dark-background;
border-color: @color-dark-blockquote-0-border;
color: @color-dark-blockquote-0;
span.blockquote-link {
color: currentColor;
background: @color-dark-background;
border-color: currentColor;
}
blockquote {
color: @color-dark-blockquote-1;
border-color: @color-dark-blockquote-1-border;
blockquote {
color: @color-dark-blockquote-2;
border-color: @color-dark-blockquote-2-border;
}
}
}
}
.message-part {
span.sig {
color: @color-dark-hint;
}
}
.message-htmlpart {
background-color: white;
color: @color-font;
padding: 0;
margin-top: .5rem;
}
#message-header .header-headers .header-title {
color: @color-dark-font;
font-weight: normal;
}
.message-partheaders {
background-color: @color-dark-list-selected-background;
border: 0;
table.headers-table {
color: @color-dark-font;
* {
font-weight: normal;
}
}
}
// this is when image thumbnails are enabled
p.image-attachment {
border-color: @color-dark-border;
background-color: @color-dark-list-selected-background;
span {
color: @color-dark-hint;
}
}
// this is when image thumbnails are disabled
fieldset.image-attachment {
legend {
color: @color-dark-hint;
border-color: @color-dark-border;
}
}
// Attachment preview
#messagepartframe {
background: #fff;
}
// ----------------------------------
// jQuery-UI widgets' style overrides
// ----------------------------------
.ui-widget {
border-color: @color-dark-border;
}
.ui-widget-overlay {
background-color: @color-dark-dialog-overlay-background;
}
.ui-widget-header,
.ui-widget-content {
background-color: @color-dark-background;
}
.ui-dialog {
.ui-dialog-titlebar {
border-color: @color-dark-border;
}
.ui-dialog-title,
.ui-dialog-titlebar-close {
color: @color-dark-font;
background: transparent;
}
.ui-dialog-buttonpane {
border-color: @color-dark-border;
@media screen and (max-width: @screen-width-xs) {
.ui-dialog-buttonset {
button.btn-primary:not(.btn-danger),
button.btn-secondary {
color: @color-dark-font;
}
}
}
}
}
.ui-datepicker {
.ui-datepicker-header {
border-color: @color-dark-border;
}
th {
color: @color-dark-hint;
font-size: 80%;
font-weight: normal;
}
.ui-state-default,
&.ui-widget-content .ui-state-default {
color: @color-dark-font;
}
.ui-state-highlight,
&.ui-widget-content .ui-state-highlight {
color: @color-main;
background-color: @color-dark-list-selected-background;
}
.ui-datepicker-days-cell-over a {
background-color: lighten(@color-dark-list-selected-background, 10%);
}
}
.ui-menu {
scrollbar-width: thin;
background-color: @color-dark-popover-background;
border-color: @color-dark-popover-border;
box-shadow: none;
.ui-menu-item {
border-bottom: 1px solid @color-dark-list-border;
}
.ui-state-active {
background-color: @color-dark-list-selected-background !important;
}
}
.minicolors-panel {
box-shadow: none;
border-color: @color-dark-border;
background: @color-dark-popover-background;
}
// ---------------------------------
// Other components
// ---------------------------------
::placeholder,
::-webkit-input-placeholder, // Edge
.listing-info,
.listing span.secondary,
.file-upload .hint,
.contactlist span.email,
#login-footer,
#contacthead.readonly .source.row,
.formcontent .hint {
font-weight: normal;
color: @color-dark-hint;
}
.popover {
background-color: @color-dark-popover-background;
border-color: @color-dark-popover-border;
box-shadow: none;
.menu li.separator {
background-color: transparent;
color: darken(@color-dark-font, 20%);
}
}
.popover-body {
color: @color-dark-font;
}
.bs-popover-auto[x-placement^="right"] > .arrow::after,
.bs-popover-right > .arrow::after {
border-right-color: @color-dark-popover-border;
}
.bs-popover-auto[x-placement^="left"] > .arrow::after,
.bs-popover-left > .arrow::after {
border-left-color: @color-dark-popover-border;
}
.bs-popover-auto[x-placement^="top"] > .arrow::after,
.bs-popover-top > .arrow::after {
border-top-color: @color-dark-popover-border;
}
.bs-popover-auto[x-placement^="bottom"] > .arrow::after,
.bs-popover-bottom > .arrow::after {
border-bottom-color: @color-dark-popover-border;
}
.nav-tabs {
border-color: @color-dark-border;
.nav-link {
color: @color-dark-font;
border-color: transparent;
border-bottom-color: @color-dark-border;
}
.nav-link:hover {
background: @color-dark-background;
border-color: @color-dark-border;
color: @color-dark-font;
}
.nav-link.active {
background: @color-dark-background;
border-color: @color-dark-border;
border-bottom-color: transparent;
color: #fff;
}
}
.table {
color: @color-dark-font;
td,
th,
thead th {
border-color: @color-dark-border;
}
}
.table-widget {
border-color: @color-dark-border;
& > .footer {
border-color: @color-dark-border;
}
// Options table is a table with first column for identifier/description
// and other columns for a state flag. E.g. ACL table
table.options-table {
tr:last-child td {
border-color: @color-dark-border;
}
tr.selected td {
background-color: @color-dark-list-selected-background;
color: @color-dark-font;
}
}
}
#rcmdraglayer {
background-color: @color-dark-popover-background;
border: 1px solid @color-dark-popover-border;
box-shadow: none;
color: @color-dark-font;
}
.quota-widget {
color: unset;
.bar {
border-color: @color-dark-border;
background-color: @color-dark-border;
}
}
.quota-info {
.root {
color: @color-dark-hint;
background-color: transparent;
}
}
img.contactphoto,
#contactpic {
background-color: @color-dark-list-selected-background !important;
}
.pgpkeyimport {
div.key.revoked,
div.key.disabled {
color: @color-dark-list-deleted;
}
li.uid::before {
opacity: 1;
}
}
}
diff --git a/skins/elastic/styles/widgets/editor.less b/skins/elastic/styles/widgets/editor.less
index 28e2561cc..33dcd02c5 100644
--- a/skins/elastic/styles/widgets/editor.less
+++ b/skins/elastic/styles/widgets/editor.less
@@ -1,524 +1,524 @@
/**
* Roundcube Webmail styles for the Elastic skin
*
* Copyright (c) The Roundcube Dev Team
*
* The contents are subject to the Creative Commons Attribution-ShareAlike
* License. It is allowed to copy, distribute, transmit and to adapt the work
* by keeping credits to the original authors in the README.md file.
* See http://creativecommons.org/licenses/by-sa/3.0/ for details.
*/
/*** Text Editor widget (and TinyMCE editor) ***/
// use of div.tox instead of just .tox is to have prio over TinyMCE styles
div.tox {
font-size: 1rem;
&, :not(.svg) {
.font-family;
}
&.tox-tinymce {
border-radius: .25rem;
border: 1px solid @color-input-border;
}
&.focused {
border-color: @color-input-border-focus !important;
box-shadow: 0 0 0 .2rem @color-input-border-focus-shadow !important;
}
.tox-toolbar-overlord {
z-index: 1; // for sticky header feature
& > div {
// The svg is copied from TinyMCE with modified height params
background: url("data:image/svg+xml;charset=utf8,%3Csvg height='33px' viewBox='0 0 40 33px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='32px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E");
background-color: @color-input-addon-background;
}
}
.tox-toolbar__primary {
border-top: 0;
}
// This one is for mobile
.tox-toolbar {
background-color: @color-input-addon-background;
}
.tox-edit-area {
border: 0;
}
.tox-dialog {
border-radius: 0;
border-color: @color-layout-border;
box-shadow: none;
align-self: unset !important;
.tox-form__group {
margin-top: 0;
margin-bottom: .75rem;
}
.tox-dialog__body-nav-item--active {
color: @color-link;
border-color: transparent;
&:hover {
color: @color-link-hover;
}
}
}
.tox-dialog__body-content {
overflow: unset;
}
.tox-dialog-wrap__backdrop {
background-color: @color-dialog-overlay-background;
}
.tox-dialog__header {
height: (@layout-header-height - 1px);
border-bottom: 1px solid @color-dialog-header-border;
justify-content: flex-end; // fixes close button position when dialog has no title
padding: 0;
.tox-button {
color: @color-dialog-header;
right: 0;
height: (@layout-header-height - .7rem);
width: 2.25em;
margin-right: .4rem;
&:hover {
background: transparent;
border-color: transparent;
}
.tox-icon {
display: none;
}
&:before {
&:extend(.font-icon-class);
content: @fa-var-times;
line-height: 1.5rem;
margin: 0 !important;
}
}
}
.tox-dialog__footer {
height: (@layout-footer-height - 1px) !important;
border: 0;
margin: 0;
padding: 0 1rem;
@media screen and (max-width: @screen-width-xs) {
border-top: 1px solid @color-dialog-header-border;
}
& > div {
white-space: nowrap;
max-height: (@layout-footer-height - 1px);
button:first-child {
margin: 0;
}
}
.tox-button {
.btn-primary;
font-weight: normal;
padding: .5rem .75rem;
&:before {
&:extend(.font-icon-class);
width: 1em;
content: @fa-var-check;
line-height: 1;
}
// this is redundant, but required because of tinymce styles interference
&:focus:not(:disabled) {
background: @color-btn-primary-background;
border-color: @color-btn-primary-background;
}
&.tox-button--secondary {
.btn-secondary;
color: @color-btn-secondary;
&:before {
content: @fa-var-times;
}
// this is redundant, but required because of tinymce styles interference
&:focus:not(:disabled) {
background: @color-btn-secondary-background;
border-color: @color-btn-secondary-background;
}
}
}
}
.tox-search-dialog {
.tox-form__group:not(:first-child) {
flex: initial !important;
}
.tox-dialog__footer-start {
button {
padding: .25rem;
}
}
.tox-dialog__footer-end {
button {
&:before {
content: @fa-var-pencil-alt !important;
}
&:nth-of-type(1):before {
content: @fa-var-search !important;
}
}
}
}
.tox-dialog__title {
line-height: calc(@layout-header-height - 1px);
font-size: 1.25rem;
font-weight: bold;
padding: 0 0 0 1rem;
width: 100%;
color: @color-dialog-header;
}
// Make toolbar buttons smaller
.tox-tbtn {
height: 28px;
&:not(.tox-tbtn--select,.tox-split-button__chevron) {
width: 32px;
}
}
.tox-button {
line-height: 1.5;
}
.tox-label {
color: @color-font;
padding-bottom: .25rem;
}
// Adding .form-control does not work with TinyMCE skins,
// so we have to overwrite some props here
.tox-color-input > input,
.tox-selectfield select,
.tox-textarea,
.tox-textfield {
.font-family !important;
font-size: @page-font-size;
line-height: 1.5;
color: @color-font;
border-radius: .25rem;
min-height: 0;
padding: .375rem .75rem;
&:focus {
border-color: @color-input-border-focus;
box-shadow: 0 0 0 .2rem @color-input-border-focus-shadow;
}
}
.tox-color-input span {
top: 5px;
}
.custom-switch {
position: relative;
font-size: 1rem;
margin-top: .15rem;
.tox-checkbox__icons {
display: none;
}
.tox-checkbox__label {
margin: 0;
}
}
.image-selector {
font-size: 1rem;
button {
.btn-secondary;
padding: .5rem .75rem;
line-height: 1.5;
}
}
// small fix for image dialog
.tox-form__controls-h-stack div:not(:last-child) {
flex: 1;
}
.tox-collection__item-label {
white-space: nowrap; // fix TinyMCE bug
}
}
@media screen and (max-width: @screen-width-xs) {
div.tox {
.tox-dialog {
margin: 0 !important;
width: 100% !important;
height: 100%;
left: 0 !important;
top: 0 !important;
border-width: 0 !important;
}
.tox-dialog__header {
background-color: @color-layout-mobile-header-background;
.tox-button {
display: none;
}
}
.tox-dialog__title {
font-size: 1rem;
text-align: center;
padding: 0 1rem;
}
.tox-dialog__footer {
background-color: @color-layout-mobile-footer-background;
.tox-button {
color: @color-font !important;
background: transparent !important;
padding: .45rem;
margin: 0 !important;
border: 0;
font-size: 90%;
&:before {
display: block;
float: none;
width: 100%;
margin: 0;
line-height: 1.75;
height: 1.75rem;
}
&:active,
&:focus,
&:hover {
background: transparent;
border: 0;
box-shadow: none;
color: @color-font;
}
}
& > div {
justify-content: space-evenly;
display: flex;
width: 100%;
&:empty {
display: none;
}
}
}
}
}
/*** Media file selector for TinyMCE ***/
.image-selector {
padding: 1rem .5rem 10rem .5rem !important;
&.droptarget {
border: .2rem dashed @color-table-border;
&:after {
margin-top: 2rem;
}
}
form {
position: absolute;
top: 0;
}
.attachmentslist {
margin: 0;
overflow-x: hidden;
overflow-y: auto;
height: 19.1em;
padding: 0 !important;
li {
padding: .25rem;
cursor: pointer;
&:before {
display: none;
}
&:hover,
&:focus {
background: @color-list-selected-background;
}
span.name {
flex: 1;
margin: auto;
padding-left: 1rem;
.overflow-ellipsis;
}
span.img {
height: 80px;
width: 80px;
display: flex;
border: 1px solid @color-list-border;
background: white;
border-radius: .75rem;
overflow: hidden;
}
img {
margin: auto;
}
}
html.layout-phone & {
height: auto;
}
}
}
/*** HTML editor widget ***/
.html-editor {
position: relative;
margin-bottom: .2rem;
.editor-toolbar {
position: absolute;
left: 1px;
top: 1px;
right: 1px;
border-radius: .25rem .25rem 0 0;
border-bottom: 1px solid @color-input-border;
background-color: @color-input-addon-background;
.mce-i-html {
display: block;
margin: 2px 2px 2px 4px;
width: 34px;
height: 28px;
border-radius: .25rem;
color: #222f3e; // from TinyMCE
&:focus,
&:hover {
text-decoration: none;
border-color: #e2e4e7;
background-color: #dee0e2; // from TinyMCE
}
&:before {
&:extend(.font-icon-class);
content: @fa-var-image;
margin: 0;
width: 34px;
line-height: 28px;
}
}
}
// hide toolbar in html mode and in mailvelope mode
&.mailvelope .editor-toolbar,
.tox-tinymce + .editor-toolbar {
display: none;
}
& > .googie_edit_layer,
& > textarea {
font-family: monospace;
font-size: 13px;
width: 100% !important;
- padding-top: 48px;
+ padding-top: 40px;
resize: none;
}
& > iframe { // e.g. mailvelope frame
border-radius: .3rem;
border: 1px solid @color-input-border;
min-height: 30em;
}
}
/*** GoogieSpell widget ***/
.googie_window {
width: 16rem;
height: auto;
}
.googie_edit_layer {
font-family: monospace;
// from Bootstrap's textarea
padding: .5rem .75rem;
border: 1px solid @color-input-border;
border-radius: .3rem;
line-height: 1.5;
}
.googie_link {
color: @color-spellcheck-link;
text-decoration: underline;
cursor: pointer;
}
.googie_list {
li {
min-width: 8rem;
width: auto;
&.googie_list_onhover {
color: @color-menu-hover;
background-color: @color-menu-hover-background;
}
.googie_list_revert:before {
&:extend(.font-icon-class);
content: @fa-var-undo;
}
.googie_add_to_dict:before {
&:extend(.font-icon-class);
content: @fa-var-plus-square;
}
}
input {
display: inline-block;
margin: .25rem .5rem;
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Nov 23, 10:41 AM (38 m, 35 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
80152
Default Alt Text
(41 KB)
Attached To
Mode
R3 roundcubemail
Attached
Detach File
Event Timeline
Log In to Comment