From bda388d326707b9d2cd4b6eda89e70dc2e2c2c74 Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Thu, 15 Dec 2022 17:37:58 +0530 Subject: [PATCH] add NC25 theme --- images/preview.png | Bin 0 -> 18731 bytes js/snappymail.js | 142 ++++++ styles.css | 1093 ++++++++++++++++++++++++++++++++++++++++++++ variables.css | 165 +++++++ 4 files changed, 1400 insertions(+) create mode 100644 images/preview.png create mode 100644 js/snappymail.js create mode 100644 styles.css create mode 100644 variables.css diff --git a/images/preview.png b/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..10cda3fb44cca81a0a1311bece6ae8e8e6f70617 GIT binary patch literal 18731 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 { + if (document.readyState === 'complete') { + watchIFrameTitle(); + let form = document.querySelector('form.snappymail'); + form && SnappyMailFormHelper(form); + } +}; + +document.addEventListener('DOMContentLoaded', () => { + const iframe = document.getElementById('rliframe'); + if (!iframe) return; + + let firstLoad = true; + + iframe.addEventListener('load', event => { + // repass theme styles when iframe is reloaded + if (!firstLoad) { + passThemes(event.target); + } + firstLoad = false; + }); + + passThemes(iframe); + + // TODO: add initial stylesheets without primary colors to improve loading experience +}); + +// Pass nextcloud themes and theme attributes to SnappyMail. +function passThemes(iframe) { + if (!iframe) return; + + const target = iframe.contentWindow.document; + + const ncStylesheets = [...document.querySelectorAll('link.theme')]; + ncStylesheets.forEach(ncSheet => { + const smSheet = target.importNode(ncSheet, true); + target.head.appendChild(smSheet); + }); + + const themes = [...document.body.attributes].filter(att => att.name.startsWith('data-theme')); + themes.forEach(theme => target.body.setAttribute(theme.name, theme.value)); +} + +// The SnappyMail application is already configured to modify the element +// of its root document with the number of unread messages in the inbox. +// However, its document is the SnappyMail iframe. This function sets up a +// Mutation Observer to watch the <title> element of the iframe for changes in +// the unread message count and propagates that to the parent <title> element, +// allowing the unread message count to be displayed in the NC tab's text when +// the SnappyMail app is selected. +function watchIFrameTitle() { + let iframe = document.getElementById('rliframe'); + if (!iframe) { + return; + } + let target = iframe.contentDocument.getElementsByTagName('title')[0]; + let config = { + characterData: true, + childList: true, + subtree: true + }; + let observer = new MutationObserver(mutations => { + let title = mutations[0].target.innerText; + if (title) { + let matches = title.match(/\(([0-9]+)\)/); + if (matches) { + document.title = '('+ matches[1] + ') ' + t('snappymail', 'Email') + ' - Nextcloud'; + } else { + document.title = t('snappymail', 'Email') + ' - Nextcloud'; + } + } + }); + observer.observe(target, config); +} + +function SnappyMailFormHelper(oForm) +{ + try + { + var + oSubmit = document.getElementById('snappymail-save-button'), + sSubmitValue = oSubmit.textContent, + oDesc = oForm.querySelector('.snappymail-result-desc') + ; + + oForm.addEventListener('submit', oEvent => { + oEvent.preventDefault(); + + oForm.classList.add('snappymail-fetch') + oForm.classList.remove('snappymail-error') + oForm.classList.remove('snappymail-success') + + oDesc.textContent = ''; + oSubmit.textContent = '...'; + + let data = new FormData(oForm); + data.set('appname', 'snappymail'); + + fetch(OC.filePath('snappymail', 'fetch', oForm.getAttribute('action')), { + mode: 'same-origin', + cache: 'no-cache', + redirect: 'error', + referrerPolicy: 'no-referrer', + credentials: 'same-origin', + method: 'POST', + headers: {}, + body: data + }) + .then(response => response.json()) + .then(oData => { + let bResult = 'success' === oData?.status; + oForm.classList.remove('snappymail-fetch'); + oSubmit.textContent = sSubmitValue; + if (oData?.Message) { + oDesc.textContent = t('snappymail', oData.Message); + } + if (bResult) { + oForm.classList.add('snappymail-success'); + } else { + oForm.classList.add('snappymail-error'); + if ('' === oDesc.textContent) { + oDesc.textContent = t('snappymail', 'Error'); + } + } + }); + + return false; + }); + } + catch(e) { + console.error(e); + } +} diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..d49305a --- /dev/null +++ b/styles.css @@ -0,0 +1,1093 @@ +/** + * Nextcloud - SnappyMail mail plugin + * + * @author Rene Hampƶlz (@hampoelz), SnappyMail, Nextcloud Team + */ + +/* + * app layout changes, background & color + */ + + :root { + --link-color: var(--color-primary-light-text); +} + +#rl-app { + color: var(--color-main-text); + background-color: transparent; + font-family: var(--font-face); + font-size: var(--default-font-size); +} + +#rl-app #rl-left { + background-color: var(--color-main-background-blur, var(--color-main-background)); + -webkit-backdrop-filter: var(--filter-background-blur, none); + backdrop-filter: var(--filter-background-blur, none); +} + +#rl-app #rl-right { + background-color: var(--color-main-background); +} + +#rl-app input { + box-shadow: none; +} + +#rl-app .resizer { + opacity: 1; + background-color: unset; + border-right: solid 1px var(--color-border); +} + +#rl-app .messageList, +#rl-app .messageView { + margin: 0 5px; + border: none; + box-shadow: none !important; + background: var(--color-main-background); +} + +#rl-app .b-folders .b-toolbar { + height: unset; + display: flex; + flex-direction: row; + padding: 8px; +} + +html.rl-left-panel-disabled #rl-app .b-folders .b-toolbar { + flex-direction: column; +} + +@media screen and (min-width: 1000px) { + #rl-app .b-folders .btn.buttonContacts { + transition: none; + } +} + +#rl-app #V-SettingsMenu nav.b-content, +.b-folders .b-content { + padding: 8px; +} + +#rl-app .b-folders .b-content { + top: 60px; + bottom: 162px; +} + +#rl-app .b-folders .b-content.show-on-panel-disabled { + bottom: 56px; +} + +/* + * icons + */ + +#rl-app .iconcolor-green { + color: var(--color-success) !important; +} + +#rl-app .iconcolor-red { + color: var(--color-error) !important; +} + +#rl-app i.fontastic { + line-height: unset; +} + +#rl-app [data-icon]::before { + vertical-align: -10%; +} + +/* + * side panel + */ + + #rl-app #V-SettingsMenu nav a, + #rl-app .b-folders li a.selectable { + margin: 2px; + padding: 0 2em 0 15px; + height: 38px; + line-height: 38px; + border-radius: var(--border-radius-pill); + color: unset; + border: none; +} + +#rl-app #V-SettingsMenu nav a { + height: 44px; + line-height: 44px; +} + +#rl-app #V-SettingsMenu nav a.selected, +#rl-app .b-folders li a.selectable.selected { + color: unset; + background-color: var(--color-primary-light); +} + +#rl-app #V-SettingsMenu nav a:not(.selected):hover, +#rl-app #V-SettingsMenu nav a:not(.selected):focus, +#rl-app .b-folders li a.selectable:not(.selected):hover, +#rl-app .b-folders li a.selectable:not(.selected):focus { + color: unset; + background-color: var(--color-background-hover); +} + +#rl-app .b-folders .b-folders-system a[data-unread]::after { + display: block; + margin: 0 ; + top: 50%; + transform: translateY(-50%); + + color: var(--color-primary-element); + background-color: var(--color-primary-light); + + text-shadow: none; +} + +#rl-app .b-folders hr { + border-top: solid var(--color-main-text); + border-radius: var(--border-radius-pill); + opacity: .1; +} + +#rl-app .b-folders input { + width: calc(100% - 10px); + margin: 5px; + opacity: .7; +} + +#rl-app .b-footer.btn-toolbar.hide-mobile, +#rl-app .b-footer.btn-toolbar .btn-group.hide-on-panel-disabled { + display: flex; + flex-direction: column; + align-content: stretch; + justify-content: flex-start; + height: unset; + box-sizing: border-box; + margin: 0; + padding: 0; + bottom: 0; +} + +#rl-app .b-footer.btn-toolbar .btn-group { + padding: 3px; +} + +/* + * buttons + */ + + #rl-app .btn { + min-height: 36px; + height: 36px; + box-sizing: border-box !important; + padding: 8px 14px; + line-height: 20px; + color: var(--color-main-text); + background-color: var(--color-background-dark); + border: 1px solid var(--color-border-dark) !important; + border-radius: var(--border-radius-pill); + font-size: var(--default-font-size); +} + +#rl-app .btn.btn-thin { + padding-right: 9px; + padding-left: 9px; +} + +#rl-app .btn.btn-transparent { + border: unset !important; +} + +#rl-app .btn.disabled, .btn[disabled], +#rl-app .btn.disabled:hover, .btn[disabled]:hover, +#rl-app .btn.disabled:focus, .btn[disabled]:focus, +#rl-app .btn.disabled:active, .btn[disabled]:active { + outline: none; + opacity: .5; + filter: saturate(0.7); +} + +#rl-app .btn:not(.disabled, [disabled]):hover, +#rl-app .btn:not(.disabled, [disabled]):focus { + border-color: var(--color-primary-element) !important; + outline: none; + opacity: unset; +} + +#rl-app .btn:not(.disabled, [disabled]):active { + outline: none; + opacity: unset; + background-color: var(--color-main-background); + color: var(--color-text-light); +} + +#rl-app .btn, .btn.active, .btn:active, .btn.disabled, .btn[disabled] { + text-shadow: none; + box-shadow: none; +} + +#rl-app .btn.buttonCompose { + font-weight: bold; + max-width: 100%; + width: 100%; + box-sizing: content-box !important; +} + +#rl-app .btn.btn-success { + color: var(--color-primary-element-text); + background-color: var(--color-primary-element); + border-color: var(--color-primary-element) !important; +} + +#rl-app .btn.btn-success:hover, +#rl-app .btn.btn-success:focus { + background-color: var(--color-primary-element-hover) !important; + border-color: var(--color-primary-element-hover) !important; +} + +#rl-app .btn.buttonCompose:active { + color: var(--color-primary-text-dark); +} + +#rl-app .btn.buttonCompose, +#rl-app .b-folders .btn.buttonContacts, +#rl-app .b-footer.btn-toolbar .btn-group .btn { + box-sizing: border-box; + padding: 4px 14px; + line-height: 36px; + height: 44px; + min-width: -moz-fit-content; + min-width: -webkit-fill-available; + min-width: fit-content; + + font-size: var(--default-font-size); + border-radius: var(--border-radius-pill); +} + +#rl-app .b-footer.btn-toolbar .btn-group .btn { + background: transparent; + text-align: left; + font-size: 22px; + margin: 3px; + border: unset !important; +} + +#rl-app .b-footer.btn-toolbar .btn-group.hide-on-panel-disabled .btn { + width: -webkit-fill-available; + width: -moz-available; + width: fill-available; +} + +#rl-app .b-footer.btn-toolbar .btn-group.hide-on-panel-disabled .btn.fontastic { + background-color: var(--color-main-background); +} + +#rl-app .b-footer.btn-toolbar .btn-group.hide-on-panel-disabled .btn:after { + font-family: var(--font-face); + font-size: var(--default-font-size); + position: absolute; + margin-left: 15px; +} + +#rl-app .b-footer.btn-toolbar .btn-group.hide-on-panel-disabled .btn.fontastic:after { + content: 'SnappyMail-Settings'; +} + +#rl-app .b-footer.btn-toolbar .btn-group .btn.icon-folder-add:after { + content: 'Create new folder'; +} + +html.rl-left-panel-disabled #rl-app .b-footer.btn-toolbar .btn-group .btn.fontastic:after, +html.rl-left-panel-disabled #rl-app .b-footer.btn-toolbar .btn-group .btn.icon-folder-add:after { + content: ''; +} + +#rl-app .icon-folder-add::before, +#rl-app .icon-resize-in::before { + line-height: unset; +} + +#rl-app .b-footer.btn-toolbar .btn-group .btn:hover, +#rl-app .b-footer.btn-toolbar .btn-group .btn.fontastic:hover { + background-color: var(--color-background-hover); +} + +#rl-app .b-footer.btn-toolbar .btn-group .btn:active, +#rl-app .b-footer.btn-toolbar .btn-group .btn.fontastic:active { + background-color: var(--color-primary-element-light); +} + +#rl-app .b-footer.btn-toolbar .btn-group .btn:focus, +#rl-app .b-footer.btn-toolbar .btn-group .btn.fontastic:focus { + outline: none; +} + +#rl-app #V-MailMessageList .btn-toolbar { + text-align: center; +} + +#rl-app #V-MailMessageList .btn-toolbar .btn-group .btn { + border-radius: var(--border-radius-large); + margin: 0 .5px; +} + +/* + * inputs + */ + +#rl-app input { + padding: 0 12px; + font-size: var(--default-font-size); + color: var(--color-main-text); + background-color: unset; + height: 36px; + outline: none; + border: 2px solid var(--color-border-dark); + border-radius: var(--border-radius-large); +} + +#rl-app input:hover, +#rl-app input:active, +#rl-app input:focus { + border-color: var(--color-primary-element); +} + +#rl-app input[type="search"]::-webkit-search-decoration, +#rl-app input[type="search"]::-webkit-search-cancel-button, +#rl-app input[type="search"]::-webkit-search-results-button, +#rl-app input[type="search"]::-webkit-search-results-decoration { + -webkit-appearance: none; +} + +#rl-app input[type=number] { + -moz-appearance: textfield; + -webkit-appearance: textfield; + appearance: textfield; + margin: 0; +} + +/* + * select + */ + +#rl-app .emailaddresses, +#rl-app .select, #rl-app select { + padding: 8px 12px; + font-size: var(--default-font-size); + color: var(--color-main-text); + background-color: unset; + height: 44px; + outline: none; + border: 2px solid var(--color-border-dark); + border-radius: var(--border-radius-large); + line-height: 24px; + box-sizing: border-box; +} + +#rl-app .emailaddresses:hover, +#rl-app .emailaddresses:active, +#rl-app .emailaddresses:focus, +#rl-app .select:hover, #rl-app select:hover, +#rl-app .select:active, #rl-app select:active, +#rl-app .select:focus, #rl-app select:focus { + border-color: var(--color-primary-element); +} + +select option { + background-color: var(--color-background-dark); + color: var(--color-main-text); +} + +/* + * email address select + */ + + #rl-app .emailaddresses { + display: inline-flex; + align-items: center; + flex-wrap: wrap; + gap: 5px; + /* max-height: padding*2 [top & bottom] + gap*(lines + 1) + li-height*lines [= li-height + li-padding*2 + li-border*2 ] */ + max-height: calc(8px*2 + 5px*3 + 26px*2); + height: auto; + width: 100%; +} + +#rl-app .emailaddresses.emailaddresses-focused { + border: 2px solid var(--color-primary-element); +} + +#rl-app .emailaddresses li[draggable] { + line-height: 20px; + padding: 2px 15px 2px 5px; + color: var(--color-main-text); + border: 1px solid var(--color-border-dark); + border-radius: var(--border-radius); + margin: 0; + box-shadow: none; + background-color: unset; +} + +#rl-app .emailaddresses li a { + /* TODO */ +} + +/* + * checkboxes + */ + + #rl-app .e-component.e-checkbox.material-design { + width: -moz-fit-content; + width: -webkit-fill-available; + width: fit-content; + display: flex; + position: relative; + align-items: center; + user-select: none; + height: 44px; + border-radius: 44px; + padding: 0 14px; + margin: 0 -14px; +} + +#rl-app .e-component.e-checkbox.material-design:hover, +#rl-app .e-component.e-checkbox.material-design:focus-within { + background-color: var(--color-primary-light); +} + +#rl-app .e-component.e-checkbox.material-design:focus { + outline: none; +} + +#rl-app .e-checkbox.material-design>div { + box-sizing: border-box; + margin-right: 4px; + margin-left: -2px; +} + +#rl-app .e-checkbox.material-design>div>div { + width: 100%; + height: 100%; + border: 2px solid var(--color-primary-element); + border-radius: 2px; + animation: none; + box-sizing: border-box; +} + +#rl-app .e-checkbox.material-design>div>div.checked { + animation: none; + --svg-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='3 3 18 18'><path d='M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z'></path></svg>"); + -webkit-mask-image: var(--svg-checked); + mask-image: var(--svg-checked); + background: var(--color-primary-element); + border-width: 0; + margin: 0; +} + +/* + * message list + */ + +#rl-app .thm-message-list-top-toolbar, +#rl-app .thm-message-list-bottom-toolbar { + background: unset !important; +} + +#rl-app .messageList .second-toolbar { + align-items: center; +} + +#rl-app .messageList .b-footer { + padding-bottom: 10px; +} + +#rl-app .messageList .second-toolbar, +#rl-app .messageList .b-footer { + border-color: var(--color-border); +} + +#rl-app .messageList .inputSearch { + max-width: unset; +} + +#rl-app .messageList .closeSearch { + position: absolute; + top: 2px; + right: 1px; + min-width: unset; + min-height: unset; + height: 32px; + font-size: 20px; + line-height: 30px; +} + +#rl-app .messageList .checkboxCheckAll { + margin: 0 12px; +} + +#rl-app .messageList .checkboxCheckAll:hover, +#rl-app .messageList .checkboxCheckAll:focus { + color: var(--color-primary-element); +} + +#rl-app .messageList .checkboxCheckAll:active { + color: var(--color-primary-element-hover); +} + +html:not(rl-mobile) #rl-app .hideMessageListCheckbox .checkboxCheckAll { + display: none; +} + +#rl-app .messageList .btn.buttonMoreSearch { + background: unset; + border-radius: var(--border-radius-large); + margin: 0 0 0 8px; + line-height: 20px !important; +} + +#rl-app .messageList .checkboxCheckAll, +#rl-app .messageList .btn.buttonMoreSearch { + font-size: var(--default-font-size); + height: 28px; + line-height: 28px; +} + +#rl-app .messageList .b-content .listThreadUidDesc { + margin: 8px; + color: var(--color-main-text); + background: unset; + border: solid 1px; + border-radius: var(--border-radius-large); + border-color: var(--color-border-dark); +} + +#rl-app .messageList .b-content .listThreadUidDesc:hover, +#rl-app .messageList .b-content .listThreadUidDesc:focus { + background: var(--color-background-hover); +} + +#rl-app .messageList .b-content .listThreadUidDesc:active { + background-color: var(--color-primary-light); +} + +#rl-app .messageList .b-content .listSearchDesc { + border-color: var(--color-border); +} + +#rl-app .messageList .b-content .listDragOver { + /* ! does not work */ +} + +#rl-app .messageList .b-content .listError { + /* ? cant reproduce */ +} + +#rl-app .messageList .b-content .listDragOver, +#rl-app .messageList .b-content .listEmptyMessage, +#rl-app .messageList .b-content .listError, +#rl-app .messageList .b-content .listLoading { + color: var(--color-text-lighter); +} + +#rl-app .messageListItem .checkboxMessage { + border-color: var(--color-text-lighter); + color: var(--color-text-lighter); +} + +#rl-app .messageListItem .checkboxMessage:hover, +#rl-app .messageListItem .checkboxMessage:focus { + background-color: var(--color-background-darker); +} + +#rl-app .messageListItem .checkboxMessage:active { + background-color: var(--color-primary-light-hover); +} + +#rl-app .messageListItem .threads-len { + color: var(--color-text-light); + border-color: var(--color-text-light); + padding: 0 4px; +} + +#rl-app .messageListItem .threads-len:hover, +#rl-app .messageListItem .threads-len:focus { + background-color: var(--color-background-darker); + border-color: unset; +} + +#rl-app .messageListItem .threads-len:active { + background-color: var(--color-primary-light-hover); +} + +#rl-app .messageListItem { + padding: 8px; + margin: 2px 0; + border-bottom: unset; + border-radius: var(--border-radius); +} + +#rl-app .messageListItem, +#rl-app .messageListItem.focused { + background-color: var(--color-background); + border-left-color: var(--color-border); +} + +#rl-app .messageListItem:hover, +#rl-app .messageListItem.focused:hover { + background-color: var(--color-background-hover); + border-left-color: var(--color-primary-light-hover); +} + +#rl-app .messageListItem.selected, +#rl-app .messageListItem.selected:hover { + background-color: var(--color-primary-element-light) !important; + border-left-color: var(--color-primary-element-light-text); +} + +#rl-app .messageListItem.unseen, +#rl-app .messageListItem.hasUnseenSubMessage { + background-color: unset; + border-left-color: var(--color-primary-element); +} + +#rl-app .messageListItem.unseen.focused, +#rl-app .messageListItem.unseen.focused:hover, +#rl-app .messageListItem.hasUnseenSubMessage.focused, +#rl-app .messageListItem.hasUnseenSubMessage.focused:hover { + background-color: var(--color-primary-light); + border-left-color: var(--color-primary-element); +} + +#rl-app .messageListItem.unseen:hover, +#rl-app .messageListItem.hasUnseenSubMessage:hover { + background-color: var(--color-background-hover); + border-left-color: var(--color-primary-element-hover); +} + +#rl-app .messageListItem.hasUnseenSubMessage .threads-len { + border-color: var(--color-primary-element); + border-width: 2px; + font-weight: 700; +} + +#rl-app .messageListItem.hasUnseenSubMessage .threads-len:hover { + border-color: var(--color-primary-element-hover); +} + +#rl-app .messageListItem.checked { + background-color: unset; + border-left-color: var(--color-primary-light-text); +} + +#rl-app .messageListItem.checked.focused { + background-color: inherit; + border-left-color: var(--color-primary-element-light-text); +} + +#rl-app .messageListItem.checked:hover, +#rl-app .messageListItem.checked.focused:hover { + background-color: var(--color-background-hover); + border-left-color: inherit; +} + +/* + * message view + */ + + #rl-app #V-MailMessageView { + bottom: 0; +} + +html:not(.rl-mobile):not(.rl-no-preview-pane) #rl-app .messageView .top-toolbar { + /* TODO Improve mobile experience */ +} + +#rl-app .messageView .b-message-view-desc, +#rl-app .messageView .b-message-view-checked-helper { + color: var(--color-text-lighter); +} + +#rl-app .messageView .b-message-view-desc.error { + /* ? cant reproduce */ +} + +#rl-app meter::-webkit-meter-bar { + background-color: var(--color-border-dark); + border-color: var(--color-border-dark); + border-width: 2px; + height: 10px; +} + +#rl-app .messageView .messageItemHeader .informationShort meter::-webkit-meter-optimum-value { + background-color: var(--color-success); + border-radius: var(--border-radius-pill); +} + +#rl-app .messageView .messageItemHeader .informationShort meter::-webkit-meter-suboptimum-value { + background-color: var(--color-warning); + border-radius: var(--border-radius-pill); +} + +#rl-app .messageView .messageItemHeader .informationShort meter::-webkit-meter-even-less-good-value { + background-color: var(--color-error); + border-radius: var(--border-radius-pill); +} + +#rl-app .messageView .messageItemHeader .hasVirus { + background: unset; + border: solid 2px var(--color-error); + border-radius: var(--border-radius); + margin: 5px; +} + +#rl-app .messageView .openpgp-control.encrypted, +#rl-app .messageView .openpgp-control.signed { + border-radius: var(--border-radius); +} + +#rl-app #V-MailMessageView .b-message-view-backdrop { + background-color: var(--color-main-background-blur); + -webkit-backdrop-filter: blur(2px); + backdrop-filter: blur(2px); +} + +#rl-app #V-MailMessageView .b-message-view-backdrop .backdrop-message { + background-color: var(--color-main-background); + border: solid 1px var(--color-primary); + border-radius: var(--border-radius-large); + text-shadow: none; + margin: 10px; +} + +#rl-app .messageView .messageAssignedTags { + margin: 0 5px; +} + +#rl-app .messageView .messageAssignedTags span { + border-radius: var(--border-radius-pill); + background: unset; + padding: 2px 5px; +} + +#rl-app #messageItem .readReceipt, +#rl-app #messageItem .showImages { + margin: 8px; + color: var(--color-main-text); + border: solid 1px var(--color-primary-element); + background-color: var(--color-primary-light); + border-radius: var(--border-radius-large); +} + +#rl-app #messageItem .readReceipt:hover, +#rl-app #messageItem .showImages:hover { + background-color: var(--color-primary-light-hover); +} + +#rl-app .messageView .messageItemHeader, +#rl-app #messageItem .attachmentsPlace { + background-color: unset; + border-color: var(--color-border); + color: var(--color-main-text); +} + +#rl-app #messageItem .attachmentsPlace { + border-top: 1px solid var(--color-border); + top: -1px; +} + +#rl-app #messageItem .attachmentsPlace .controls-handle { + -webkit-user-select: none; + user-select: none; +} + +#rl-app #messageItem .attachmentsPlace .attachmentItem { + background-color: var(--color-background-dark); + border-radius: var(--border-radius); + box-shadow: none; +} + +#rl-app #messageItem .attachmentsPlace .attachmentItem:hover, +#rl-app #messageItem .attachmentsPlace .attachmentItem:active { + background-color: var(--color-background-darker); +} + +#rl-app #messageItem .attachmentsPlace .attachmentItem:focus { + outline: none; +} + +#rl-app #messageItem .attachmentsPlace .attachmentItem .attachmentNameParent { + border-color: var(--color-border-dark); +} + +#rl-app #messageItem .attachmentsPlace .attachmentItem .iconMain, +#rl-app #messageItem .attachmentsPlace .attachmentItem .iconPreview { + color: var(--color-text-light); +} + +#rl-app #messageItem .attachmentsControls { + background-color: unset; + border-color: var(--color-border); + -webkit-user-select: none; + user-select: none; +} + +#rl-app #messageItem .attachmentsControls .icon-file-archive, +#rl-app #messageItem .attachmentsControls .fontastic { + color: var(--color-main-text); +} + +/* + * message flags + */ + +:root { + --msgflag-\$label1-color: #ae2c35; + --msgflag-\$label1-color-hover: #e13a45; + --msgflag-\$label2-color: #cc9827; + --msgflag-\$label2-color-hover: #ffbf31; + --msgflag-\$label3-color: #005235; + --msgflag-\$label3-color-hover: #008557; + --msgflag-\$label4-color: #005cc4; + --msgflag-\$label4-color-hover: #0074f8; + --msgflag-\$label5-color: #5631c0; + --msgflag-\$label5-color-hover: #6d3ff3; + + --msgflag-\\flagged-color: #ffca32; +} + +#rl-app .msgflag-\$label5:not(.focused) { border-color: var(--msgflag-\$label5-color); } +#rl-app .msgflag-\$label4:not(.focused) { border-color: var(--msgflag-\$label4-color); } +#rl-app .msgflag-\$label3:not(.focused) { border-color: var(--msgflag-\$label3-color); } +#rl-app .msgflag-\$label2:not(.focused) { border-color: var(--msgflag-\$label2-color); } +#rl-app .msgflag-\$label1:not(.focused) { border-color: var(--msgflag-\$label1-color); } + +#rl-app .msgflag-\$label5.focused:not(.selected) { border-color: var(--msgflag-\$label5-color) !important; } +#rl-app .msgflag-\$label4.focused:not(.selected) { border-color: var(--msgflag-\$label4-color) !important; } +#rl-app .msgflag-\$label3.focused:not(.selected) { border-color: var(--msgflag-\$label3-color) !important; } +#rl-app .msgflag-\$label2.focused:not(.selected) { border-color: var(--msgflag-\$label2-color) !important; } +#rl-app .msgflag-\$label1.focused:not(.selected) { border-color: var(--msgflag-\$label1-color) !important; } + +#rl-app .msgflag-\$label5:not(.focused):hover { border-color: var(--msgflag-\$label5-color-hover); } +#rl-app .msgflag-\$label4:not(.focused):hover { border-color: var(--msgflag-\$label4-color-hover); } +#rl-app .msgflag-\$label3:not(.focused):hover { border-color: var(--msgflag-\$label3-color-hover); } +#rl-app .msgflag-\$label2:not(.focused):hover { border-color: var(--msgflag-\$label2-color-hover); } +#rl-app .msgflag-\$label1:not(.focused):hover { border-color: var(--msgflag-\$label1-color-hover); } + +#rl-app .msgflag-\$label1:not(.focused), #rl-app .msgflag-\$label1 .checkboxMessage, +#rl-app .msgflag-\$label2:not(.focused), #rl-app .msgflag-\$label2 .checkboxMessage, +#rl-app .msgflag-\$label3:not(.focused), #rl-app .msgflag-\$label3 .checkboxMessage, +#rl-app .msgflag-\$label4:not(.focused), #rl-app .msgflag-\$label4 .checkboxMessage, +#rl-app .msgflag-\$label5:not(.focused), #rl-app .msgflag-\$label5 .checkboxMessage { + background-color: unset; + color: unset; +} + +#rl-app .messageListItem.msgflag-\$label1:hover, +#rl-app .messageListItem.msgflag-\$label2:hover, +#rl-app .messageListItem.msgflag-\$label3:hover, +#rl-app .messageListItem.msgflag-\$label4:hover, +#rl-app .messageListItem.msgflag-\$label5:hover { + background-color: var(--color-background-hover); +} + +#rl-app a.msgflag-\$label1, +#rl-app a.msgflag-\$label2, +#rl-app a.msgflag-\$label3, +#rl-app a.msgflag-\$label4, +#rl-app a.msgflag-\$label5 { + border-left: solid 5px; +} + +#rl-app .btn-group.show .dropdown-menu div li a[class^='msgflag-']:not(.msgflag-\$label1, .msgflag-\$label2, .msgflag-\$label3, .msgflag-\$label4, .msgflag-\$label5), +#rl-app .btn-group.show .dropdown-menu div li a[class*='msgflag-']:not(.msgflag-\$label1, .msgflag-\$label2, .msgflag-\$label3, .msgflag-\$label4, .msgflag-\$label5) { + border-left: solid 5px transparent; +} + +#rl-app .b-folders .is-flagged .flag-icon::after, +#rl-app .messageListItem.hasFlaggedSubMessage .flagParent::after, +#rl-app .messageListItem.msgflag-\\flagged .flagParent::after { + color: var(--msgflag-\\flagged-color); +} + +/* + * dropdown menus + */ + + #rl-app .dropdown.show { + box-shadow: none; +} + +#rl-app .dropdown-menu { + background-color: var(--color-main-background); + filter: drop-shadow(0 1px 5px var(--color-box-shadow)); + border-radius: var(--border-radius-large); + color: var(--color-main-text); + padding: 4px; +} + +#rl-app .dropdown-menu a { + background-color: unset; + color: unset; + height: 22px; + line-height: 22px; + border-radius: 3px; + margin: 2px; + box-sizing: content-box; +} + +#rl-app .dropdown-menu li.disabled > a, +#rl-app .dropdown-menu li.disabled > a:hover, +#rl-app .dropdown-menu li.disabled > a:focus, +#rl-app .dropdown-menu li.disabled > a:active { + opacity: .5; + filter: saturate(0.7); +} + +#rl-app .dropdown-menu li:not(.disabled) > a:hover, +#rl-app .dropdown-menu li:not(.disabled) > a:focus { + background-color: var(--color-background-hover); + color: unset; + opacity: unset; +} + +#rl-app .dropdown-menu li:not(.disabled) > a:active { + background-color: var(--color-primary-light); +} + +#rl-app .dropdown-menu *+.dividerbar { + border-color: var(--color-border); +} + +#rl-app .dropdown-menu ::-webkit-scrollbar-track-piece { + background-color: inherit; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; +} + +/* + * account selector + */ + +#rl-app .btn-toolbar.g-ui-user-select-none { + border: solid 1px var(--color-border-dark); + border-radius: var(--border-radius-large); + height: 36px; + padding: 2px; + display: flex; + flex-direction: row; + align-items: center; + box-sizing: content-box; +} + +#rl-app #V-SystemDropDown .accountPlace { + background: unset; + color: unset; + text-shadow: none; +} + +#rl-app #V-SystemDropDown #top-system-dropdown-id { + background-color: unset; + border: unset !important; + border-radius: var(--border-radius-large) !important; + height: 20px; +} + +#rl-app #V-SystemDropDown #top-system-dropdown-id:hover, +#rl-app #V-SystemDropDown #top-system-dropdown-id:focus { + background-color: var(--color-background-hover); +} + +#rl-app #V-SystemDropDown #top-system-dropdown-id:active { + background-color: var(--color-background-dark); +} + +/* TODO: darken mails only with NC dark theme (needs some more js) */ +/* + * dark mails + */ + +@media (prefers-color-scheme: dark) { + #rl-app .bodyText, .bodyText img { + filter: invert(95%) hue-rotate(180deg); + } + + #rl-app .bodyText img { + border-radius: 4px; + } +} + +/* TODO: Improve settings layout and theming */ +/* + * settings + */ + +#rl-app #rl-settings-subscreen { + background-color: unset; + box-shadow: none; + border: none; +} + +#rl-app .legend { + color: unset; + border-color: var(--color-border); +} + +/* + * scrollbar + */ + +#rl-app ::-webkit-scrollbar { + width: 12px; + height: 12px; +} + +#rl-app ::-webkit-scrollbar-thumb { + background: var(--color-scrollbar); + border-radius: var(--border-radius-large); + border: 2px solid transparent; + background-clip: content-box; +} + +#rl-app ::-webkit-scrollbar-track-piece { + background-color: transparent; +} + +#rl-app ::selection { + background-color: var(--color-primary-element); + color: var(--color-primary-text); +} + +/* TODO: Improve popup layout and theming */ +/* + * Popups + */ + +#rl-app dialog { + background: var(--color-main-background); + color: var(--color-main-text); + border-radius: var(--border-radius-large); + filter: drop-shadow(0 1px 5px var(--color-box-shadow)); + box-shadow: none; + border-color: var(--color-border); +} + +#rl-app #V-PopupsCompose .b-header { + background: unset; +} + +#rl-app .squire-toolbar { + height: 50px; + box-sizing: content-box; +} + +#rl-app dialog > header, +#rl-app dialog > footer, +#rl-app .squire-toolbar { + border-color: var(--color-border); +} + +#rl-app #V-PopupsCompose header .close, +#rl-app #V-PopupsCompose header .minimize-custom { + box-sizing: content-box; +} \ No newline at end of file diff --git a/variables.css b/variables.css new file mode 100644 index 0000000..b4442e7 --- /dev/null +++ b/variables.css @@ -0,0 +1,165 @@ +/** + * Nextcloud - SnappyMail mail plugin + * + * @author Nextcloud Team + * + * Based on https://github.com/nextcloud/server/blob/master/core/css/variables.scss + * + * Theme variables for Nextcloud backwards compatibility! + * + * When using this theme as a standalone SnappyMail theme, + * this file will serve as a template for customization. + */ + +/* Default Nextcloud (v25) theme variables and colors */ +:root { + --color-main-background: #ffffff; + --color-main-background-not-plain: #0082c9; + --color-main-background-rgb: 255,255,255; + --color-main-background-translucent: rgba(var(--color-main-background-rgb), .97); + --color-main-background-blur: rgba(var(--color-main-background-rgb), .8); + --filter-background-blur: blur(25px); + --gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%; + --color-background-hover: #f5f5f5; + --color-background-dark: #ededed; + --color-background-darker: #dbdbdb; + --color-placeholder-light: #e6e6e6; + --color-placeholder-dark: #cccccc; + --color-main-text: #222222; + --color-text-maxcontrast: #767676; + --color-text-maxcontrast-default: #767676; + --color-text-maxcontrast-background-blur: #646464; + --color-text-light: #222222; + --color-text-lighter: #767676; + --color-scrollbar: rgba(34,34,34, .15); + --color-error: #e9322d; + --color-error-rgb: 233,50,45; + --color-error-hover: #ed5a56; + --color-warning: #eca700; + --color-warning-rgb: 236,167,0; + --color-warning-hover: #efb832; + --color-success: #46ba61; + --color-success-rgb: 70,186,97; + --color-success-hover: #6ac780; + --color-loading-light: #cccccc; + --color-loading-dark: #444444; + --color-box-shadow-rgb: 77,77,77; + --color-box-shadow: rgba(var(--color-box-shadow-rgb), 0.5); + --color-border: #ededed; + --color-border-dark: #dbdbdb; + --font-face: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', Arial, sans-serif, 'Noto Color Emoji', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + --default-font-size: 15px; + --animation-quick: 100ms; + --animation-slow: 300ms; + --border-radius: 3px; + --border-radius-large: 10px; + --border-radius-pill: 100px; + --default-clickable-area: 44px; + --default-line-height: 24px; + --default-grid-baseline: 4px; + --header-height: 50px; + --navigation-width: 300px; + --sidebar-min-width: 300px; + --sidebar-max-width: 500px; + --list-min-width: 200px; + --list-max-width: 300px; + --header-menu-item-height: 44px; + --header-menu-profile-item-height: 66px; + --breakpoint-mobile: 1024px; + --primary-invert-if-bright: no; + --background-invert-if-dark: no; + --background-invert-if-bright: invert(100%); + --color-primary: #00639a; + --color-primary-default: #0082c9; + --color-primary-text: #ffffff; + --color-primary-hover: #3282ae; + --color-primary-light: #e5eff4; + --color-primary-light-text: #00273d; + --color-primary-light-hover: #dbe4e9; + --color-primary-text-dark: #ededed; + --color-primary-element: #00639a; + --color-primary-element-text: #ffffff; + --color-primary-element-hover: #3282ae; + --color-primary-element-light: #e5eff4; + --color-primary-element-light-text: #00273d; + --color-primary-element-light-hover: #dbe4e9; + --color-primary-element-text-dark: #ededed; + --gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%); +} + +@media (prefers-color-scheme: dark) { + :root { + --color-main-background: #171717; + --color-main-background-not-plain: #0082c9; + --color-main-background-rgb: 23,23,23; + --color-main-background-translucent: rgba(var(--color-main-background-rgb), .97); + --color-main-background-blur: rgba(var(--color-main-background-rgb), .8); + --filter-background-blur: blur(25px); + --gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%; + --color-background-hover: #212121; + --color-background-dark: #292929; + --color-background-darker: #3b3b3b; + --color-placeholder-light: #313131; + --color-placeholder-dark: #4a4a4a; + --color-main-text: #D8D8D8; + --color-text-maxcontrast: #8c8c8c; + --color-text-maxcontrast-default: #8c8c8c; + --color-text-maxcontrast-background-blur: #919191; + --color-text-light: #bfbfbf; + --color-text-lighter: #a5a5a5; + --color-scrollbar: #3d3d3d; + --color-error: #e9322d; + --color-error-rgb: 233,50,45; + --color-error-hover: #ed5a56; + --color-warning: #eca700; + --color-warning-rgb: 236,167,0; + --color-warning-hover: #efb832; + --color-success: #46ba61; + --color-success-rgb: 70,186,97; + --color-success-hover: #6ac780; + --color-loading-light: #777; + --color-loading-dark: #CCC; + --color-box-shadow-rgb: 0,0,0; + --color-box-shadow: #000000; + --color-border: #292929; + --color-border-dark: #3b3b3b; + --font-face: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', Arial, sans-serif, 'Noto Color Emoji', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + --default-font-size: 15px; + --animation-quick: 100ms; + --animation-slow: 300ms; + --border-radius: 3px; + --border-radius-large: 10px; + --border-radius-pill: 100px; + --default-clickable-area: 44px; + --default-line-height: 24px; + --default-grid-baseline: 4px; + --header-height: 50px; + --navigation-width: 300px; + --sidebar-min-width: 300px; + --sidebar-max-width: 500px; + --list-min-width: 200px; + --list-max-width: 300px; + --header-menu-item-height: 44px; + --header-menu-profile-item-height: 66px; + --breakpoint-mobile: 1024px; + --primary-invert-if-bright: no; + --background-invert-if-dark: invert(100%); + --background-invert-if-bright: no; + --color-primary: #00639a; + --color-primary-default: #0082c9; + --color-primary-text: #ffffff; + --color-primary-hover: #04537f; + --color-primary-light: #141e24; + --color-primary-light-text: #99c0d6; + --color-primary-light-hover: #1d272d; + --color-primary-text-dark: #ededed; + --color-primary-element: #00639a; + --color-primary-element-text: #ffffff; + --color-primary-element-hover: #04537f; + --color-primary-element-light: #141e24; + --color-primary-element-light-text: #99c0d6; + --color-primary-element-light-hover: #1d272d; + --color-primary-element-text-dark: #ededed; + --gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%); + } +} \ No newline at end of file -- GitLab