/** * Roundcube webmail styles for the Elastic skin * * Copyright (c) 2017-2018, 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. */ /*** Toolbar widget ***/ .toolbar { margin: 0; font-size: 1rem; text-align: center; &.listing a, a { text-decoration: none; cursor: pointer !important; // TODO: re-consider .listing class use on toolbar color: @color-toolbar-button; } a.button { display: inline-block; border: 0 !important; height: @layout-header-height; min-width: 3.5rem; max-width: 6rem; width: auto; // reset width defined for links in .listing padding: .45rem; text-align: center; text-overflow: ellipsis; overflow-x: hidden; line-height: 1.5; &:hover, &:focus { outline: 0; } &.selected { color: @color-success; } &:before { &:extend(.font-icon-class); float: none; margin: 0; line-height: 1.75; } &.reply:before { content: @fa-var-reply; } &.reply-all:before { content: @fa-var-reply-all; } &.forward:before { content: @fa-var-share; } &.delete:before { content: @fa-var-trash-alt; } &.markmessage:before { content: @fa-var-tag; } &.more:before { content: @fa-var-ellipsis-h; } &.dropdown:before { content: @fa-var-caret-down; } &.settings:before { content: @fa-var-sliders-h; } &.create:before { content: @fa-var-plus-square; } &.move:before { content: @fa-var-arrows-alt; } &.purge:before { content: @fa-var-eraser; } &.print:before { content: @fa-var-print; } &.search:before { content: @fa-var-search; } &.upload:before, &.import:before { content: @fa-var-upload; } &.download:before, &.export:before { content: @fa-var-download; } &.compose:before { content: @fa-var-edit; } &.archive:before { content: @fa-var-archive; } &.junk:before { content: @fa-var-fire; } &.enigma:before, &.encrypt:before { content: @fa-var-lock; } &.prev:before { content: @fa-var-arrow-left; } &.next:before { content: @fa-var-arrow-right; } &.firstpage:before { content: @fa-var-angle-double-left; } &.prevpage:before { content: @fa-var-angle-left; } &.nextpage:before { content: @fa-var-angle-right; } &.lastpage:before { content: @fa-var-angle-double-right; } &.send:before { content: @fa-var-paper-plane; } &.back:before { content: @fa-var-arrow-left; } &.closewin:before { content: @fa-var-window-close; } &.save:before { .font-icon-regular(@fa-var-save); } &.vcard:before, &.attach:before { content: @fa-var-paperclip; } &.spellcheck:before { content: @fa-var-magic; // TODO } &.signature:before { content: @fa-var-id-card; } &.responses:before { content: @fa-var-comment; } &.select:before { .font-icon-regular(@fa-var-check-circle); } &.threads:before { content: @fa-var-comments; } &.actions:before { content: @fa-var-cog; } &.refresh:before { content: @fa-var-sync; } &.addressbook:before { content: @fa-var-user; } &.expand:before { content: @fa-var-angle-right; } &.collapse:before { content: @fa-var-angle-down; } &.submit:before { content: @fa-var-check; } &.edit:before { content: @fa-var-pencil-alt; } &.qrcode:before { content: @fa-var-qrcode; } &.properties:before { content: @fa-var-file; } &.zoomin:before { content: @fa-var-search-plus; } &.zoomout:before { content: @fa-var-search-minus; } &.rotate:before { content: @fa-var-redo-alt; } } &:not(.popupmenu) span.inner { font-size: 90%; font-weight: normal; } .dropbutton { a.button.dropdown { font-size: 75%; overflow: hidden; // for IE11 span.inner { display: none; } } a.button:first-child { padding-right: 0; } } & > .spacer { width: 1em; } &.pagenav { display: flex; justify-content: space-between; align-items: center; a.button { flex-grow: 1; min-width: 2rem !important; height: @layout-footer-small-height; &:before { line-height: 1.25; } } .pagenav-text { .overflow-ellipsis; color: @color-list-pagenav; flex-grow: 4; font-size: 80%; white-space: nowrap; } input { width: 3rem; max-width: 5rem; font-size: 90%; text-align: center; max-height: 1.6rem; html.layout-phone & { display: none; } } span.inner { display: none; } &.pagenav-list { cursor: pointer; background-color: @color-searchbar-background; border-bottom: 1px solid @color-list-border; a.button { flex-grow: unset; } .pagenav-text { text-align: left; font-size: 100%; } & + .navlist { background-color: #fbfbfb; } &.expanded + .navlist { border-bottom: 1px solid @color-layout-border; } } } &.footer { a.button:before { height: 1.75rem; float: none; display: block; width: auto; } } &.footer.small { a.button:before { height: auto; // for Chrome } } &.content-frame-navigation.hide-nav-buttons { a.next, a.prev { display: none; } } .listselectors { max-width: 100%; display: flex; justify-content: space-around; } } .header { a.button { color: @color-toolbar-button; } .buttons { display: block; button { display: block; float: left; cursor: pointer; color: @color-toolbar-button; background-color: transparent; border: 0; padding: 0; height: @layout-touch-header-height; line-height: @layout-touch-header-height; width: 2.5em; &:before { font-size: 1.75rem; } } a.button { display: inline-block; &:before { &:extend(.font-icon-class); float: none; } &.reply:before { content: @fa-var-reply; } &.send:before { content: @fa-var-paper-plane; } } } } .popupmenu.toolbar.listing { a.button { max-width: 100%; width: 100%; text-align: left; line-height: @layout-touch-menu-record-height; height: @layout-touch-menu-record-height; &:before { display: inline-block; line-height: inherit; margin-right: .5rem; } } .dropbutton { display: flex; a.button:first-child { .overflow-ellipsis; flex: 1; } a.button.dropdown { font-size: 100%; cursor: pointer; width: auto; &:before { content: @fa-var-angle-right; margin-left: .5em; margin-right: 0; } span.inner { display: none; } } } li.spacer { display: none; } li:last-child { border: 0; } } .toolbarmenu li { &.separator { // TODO: all separator properties line-height: 1.5rem !important; font-size: .75rem !important; padding: 0 .5rem; color: @color-popover-separator; background-color: @color-popover-separator-background; label { margin: 0; // Unsets Bootstrap label margin, bug? } } &.checkbox > label { margin: 0; width: 100%; input.icon-checkbox { right: auto; & + label { left: 0; margin: 0 .2em 0 .35em; font-size: 1.1rem; } } } a { opacity: .5; &.active { opacity: 1; } } &:last-child { border-bottom: none; } a:before { &:extend(.font-icon-class); } a.print:before { content: @fa-var-print; } a.copy:before { content: @fa-var-copy; } a.move:before { content: @fa-var-arrows-alt; } a.purge:before { content: @fa-var-eraser; } a.source:before { content: @fa-var-file-code; } a.download:before { content: @fa-var-download; } a.extwin:before { content: @fa-var-external-link-square-alt; } a.create:before { content: @fa-var-plus-square; } a.edit:before { content: @fa-var-edit; } a.edit.asnew:before { content: @fa-var-pencil-alt; } a.rename:before { content: @fa-var-pencil-alt; } a.read:before { .font-icon-regular(@fa-var-circle); } a.unread:before { content: @fa-var-circle; } a.flag:before { content: @fa-var-flag; } a.unflag:before { .font-icon-regular(@fa-var-flag); } a.filterlink:before { content: @fa-var-filter; } a.reply.list:before, a.reply.all:before { content: @fa-var-reply-all; } a.forward:before, a.forward.bounce:before, a.forward.attachment:before, a.forward.inline:before { content: @fa-var-share; } a.download.mbox:before, a.download.eml:before, a.download.maildir:before { content: @fa-var-download; } a.export.selection:before, a.export.all:before { content: @fa-var-download; } a.select:before { content: @fa-var-check-circle; } a.threads:before { content: @fa-var-comments; } a.selection:before { content: @fa-var-mouse-pointer; } a.select.all:before { .font-icon-regular(@fa-var-check-square); } a.select.none:before { content: @fa-var-times; } a.select.page:before { content: @fa-var-bars; } a.select.flagged:before { content: @fa-var-flag; } a.select.unread:before { content: @fa-var-circle; } a.select.invert:before { .font-icon-regular(@fa-var-square); } a.expand.all:before, a.expand.unread:before, a.expand.none:before { content: @fa-var-comments; } a.search:before { content: @fa-var-search; } a.delete:before { content: @fa-var-trash-alt; } a.expunge:before { content: @fa-var-compress; } a.import:before { content: @fa-var-upload; } a.settings:before { content: @fa-var-sliders-h; } a.insertresponse:before { content: @fa-var-comment; } a.compose:before { content: @fa-var-edit; } a.addressbook:before { content: @fa-var-user; } a.recipient:before { .font-icon-regular(@fa-var-envelope); } a.status:before { .font-icon-regular(@fa-var-lightbulb); } a.folders:before { content: @fa-var-folder; } a.remove:before { content: @fa-var-eraser; } a.showurl:before { content: @fa-var-link; } a.qrcode:before { content: @fa-var-qrcode; } a.assigngroup:before { content: @fa-var-user-plus; } a.removegroup:before { content: @fa-var-user-times; } a.vcard:before { content: @fa-var-paperclip; } a.encrypt:before { content: @fa-var-lock; } a.encrypt.sign:before { content: @fa-var-lock; // TODO } } .toolbarmenu.listing li { &.checkbox > label { padding: 0 .5rem 0 2.5em; } &:hover { &.checkbox > label, input.icon-checkbox + label:before, a.active { color: @color-toolbarmenu-hover; background-color: @color-toolbarmenu-hover-background; } } } html.touch { .toolbarmenu.listing td, .toolbarmenu.listing li, #layout > :not(.content) > .header a.button { font-size: 1.2rem; } .toolbarmenu.listing li { &.checkbox > label { padding: 0 .5rem 0 2.75rem; } } .toolbarmenu li { input.icon-checkbox + label { font-size: 1.3rem; } } } html.ie11 .toolbar .dropbutton a.dropdown:before { font-size: 80%; } @media screen and (min-width: (@screen-width-small + 1px)) { .toolbar { .header > & { display: flex; // for Safari on desktop } a.button { &:not(.disabled):focus, &:not(.disabled):hover { background-color: @color-toolbar-button-background-hover; } } &.listing li { display: inline-block; border: 0; a.button:before { height: 1.75rem; float: none; display: block; width: auto; margin: 0; } } .dropbutton { height: @layout-header-height; display: inline-block; &:hover { background-color: @color-toolbar-button-background-hover; } a.button.dropdown { min-width: 1.1rem; padding: 0 .3rem; &:hover { background-color: darken(@color-toolbar-button-background-hover, 5%); } &:before { height: @layout-header-height; line-height: 4.2; } } } } .toolbar.content-frame-navigation { display: none !important; } .header a.button.icon { &:not(.disabled):focus, &:not(.disabled):hover { background-color: @color-toolbar-button-background-hover; outline: 0; } &:before { margin: 0; } } } @media screen and (max-width: @screen-width-small) { body > #layout > div > .toolbar.footer { justify-content: space-around; & > * { flex-grow: 1; } .buttons { display: flex; justify-content: space-around; } .listselectors > * { flex-grow: 1; } } .toolbar.listing a { color: @color-font; } } a.button.icon.toolbar-button { order: 8; @media screen and (min-width: (@screen-width-large + 1px)) { height: @layout-header-height; line-height: 1.5; padding: .45rem; &:before { float: none; height: 1.75rem; line-height: 1.75; width: auto; } span.inner { display: inline; font-weight: normal; font-size: 90%; } } } /*** Searchbar and searchoptions widgets ***/ .searchbar { height: @layout-searchbar-height; min-height: @layout-searchbar-height; // because of Flexbox line-height: @layout-searchbar-height; background-color: @color-searchbar-background; border-bottom: 1px solid @color-list-border; display: flex; align-items: center; white-space: nowrap; overflow: hidden; position: relative; padding-right: .5rem; form { flex: 1; display: flex; &:before { &:extend(.font-icon-class); content: @fa-var-search; height: @layout-searchbar-height; color: @color-list-pagenav; margin: 0 0 0 .75rem; } } input { width: 100%; border: 0; background: transparent; padding: .5rem; } a.button { height: @layout-searchbar-height; min-width: auto; color: @color-toolbar-button; &:before { &:extend(.font-icon-class); } &.options { &:before { content: @fa-var-angle-down; line-height: 1.25; width: 1em; } } &.reset { display: none; &:before { content: @fa-var-times; font-size: 1em; } } &.search { display: none; } } span.inner { display: none; } &.active { a.button.reset { display: inline; } } &.open a.button.options:before { content: @fa-var-angle-up; } } .searchoptions { button.search { width: 100%; } ul.proplist { & + div { margin-top: 1rem; } } .input-group { &:not(:last-child) { margin-bottom: .5rem; } .input-group-prepend { width: 30%; } label { width: 100%; } } .formbuttons { // this is needed because we hide .formbuttons on small devices // we don't want it for search options form display: block !important; } }