/** * @copyright Copyright (c) 2014, Jan-Christoph Borchardt (http://jancborchardt.net) * @copyright Copyright (c) 2017, John Molakvoæ (skjnldsv@protonmail.com) * * @license GNU AGPL version 3 or any later version * */ /* HEADING STYLING ---------------------------------------------------------- */ h2 { font-size: 20px; font-weight: 300; margin-bottom: 12px; line-height: 140%; } h3 { font-size: 15px; font-weight: 300; margin: 12px 0; } /* do not use italic typeface style, instead lighter color */ em { font-style: normal; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)'; opacity: .5; } /* APP STYLING -------------------------------------------------------------- */ #app { height: 100%; width: 100%; * { box-sizing: border-box; } } /* APP-NAVIGATION ------------------------------------------------------------*/ /* Navigation: folder like structure */ #app-navigation { width: 250px; height: 100%; float: left; box-sizing: border-box; background-color: #fff; padding-bottom: 44px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; border-right: 1px solid #eee; > ul { position: relative; height: 100%; width: inherit; overflow: auto; box-sizing: border-box; } li { position: relative; width: 100%; box-sizing: border-box; } &.without-app-settings { padding-bottom: 0; } .active.with-menu > a, .with-counter > a { padding-right: 50px; } .active.with-menu.with-counter > a { padding-right: 90px; } .with-icon a, .app-navigation-entry-loading a { padding-left: 44px; background-size: 16px 16px; background-position: 14px center; background-repeat: no-repeat; } li > a { display: block; width: 100%; line-height: 44px; min-height: 44px; padding: 0 12px; overflow: hidden; box-sizing: border-box; white-space: nowrap; text-overflow: ellipsis; color: #000; opacity: .57; } li:hover > a, li:focus > a, a:focus, .selected, .selected a, .active, .active a { opacity: 1; box-shadow: inset 2px 0 #0082c9; } li > a:first-child img { margin-bottom: -3px; margin-right: 11px; width: 16px; margin-left: 2px; } .collapse { display: none; /* hide collapse button initially */ } .collapsible { > .collapse { position: absolute; height: 44px; width: 44px; margin: 0; padding: 0; background: none; background-image: url('../img/actions/triangle-s.svg?v=1'); background-size: 16px; background-repeat: no-repeat; background-position: center; border: none; border-radius: 0; outline: none !important; box-shadow: none; } &:hover > a, &:focus > a { background-image: none; } &:hover, &:focus { > .collapse { display: block; } } .collapse { -webkit-transform: rotate(-90deg); -ms-transform: rotate(-90deg); transform: rotate(-90deg); } &.open { .collapse { -webkit-transform: rotate(0); -ms-transform: rotate(0); transform: rotate(0); } background-image: linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%); background-image: -webkit-linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%); background-image: -ms-linear-gradient(top, rgb(238, 238, 238) 0%, rgb(245, 245, 245) 100%); } } > { /* Second level nesting for lists */ ul ul { display: none; li > a { padding-left: 32px; } } .with-icon ul li { > a, &.app-navigation-entry-loading > a { padding-left: 68px; background-position: 44px center; } } } > ul .collapsible.open { &:hover, &:focus { box-shadow: inset 0 0 3px #ddd; } ul { display: block; } } /* Deleted entries with undo button */ .app-navigation-entry-deleted { display: inline-block; height: 44px; width: 100%; } .app-navigation-entry-deleted-description { padding-left: 12px; position: relative; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; display: inline-block; width: calc(100% - 49px); line-height: 44px; float: left; } .app-navigation-entry-deleted-button { margin: 0; height: 44px; width: 44px; line-height: 44px; border: 0; display: inline-block; background-color: transparent; opacity: .5; &:hover, &:focus { opacity: 1; } } /* counter and actions, legacy code */ .utils { position: absolute; padding: 7px 7px 0 0; right: 0; top: 0; bottom: 0; font-size: 12px; button, .counter { width: 44px; height: 44px; padding-top: 12px; } } /* drag and drop */ .drag-and-drop { -webkit-transition: padding-bottom 500ms ease 0s; transition: padding-bottom 500ms ease 0s; padding-bottom: 40px; } .error { color: #dd1144; } .app-navigation-separator { border-bottom: 1px solid #ddd; } /** * App navigation utils, buttons and counters for drop down menu */ .app-navigation-entry-utils { position: absolute; top: 0; right: 0; z-index: 105; ul { display: flex !important; align-items: center; justify-content: flex-end; } li { width: 44px !important; height: 44px; } } .active > .app-navigation-entry-utils li { display: inline-block; } .app-navigation-entry-utils button { height: 100%; width: 100%; margin: 0; box-shadow: none; } .app-navigation-entry-utils-menu-button { button { border: 0; opacity: .5; background-color: transparent; background-repeat: no-repeat; background-position: center; background-image: url('../img/actions/more.svg?v=1'); } &:hover button, &:focus button { background-color: transparent; opacity: 1; } } .app-navigation-entry-utils-counter { overflow: hidden; text-overflow: hidden; text-align: right; font-size: 9pt; width: 38px; line-height: 44px; padding: 0 10px; } .app-navigation-entry-utils ul, .app-navigation-entry-menu ul { list-style-type: none; } /* editing an entry */ .app-navigation-entry-edit { padding-left: 5px; padding-right: 5px; display: inline-block; height: 39px; width: 100%; input { border-bottom-right-radius: 0; border-top-right-radius: 0; width: calc(100% - 36px); padding: 5px; margin-right: 0; height: 38px; float: left; border: 1px solid rgba(190, 190, 190, 0.9); } button, input[type='submit'] { width: 36px; height: 38px; float: left; } .icon-checkmark { border-bottom-left-radius: 0; border-top-left-radius: 0; border-left: 0; margin-right: 0; } } } /* APP-CONTENT ---------------------------------------------------------------*/ /* Part where the content will be loaded into */ #app-content { position: relative; height: 100%; overflow-y: auto; /* no top border for first settings item */ > .section:first-child { border-top: none; } &.with-app-sidebar { margin-right: 27%; } } #app-content-wrapper { min-width: 100%; min-height: 100%; } /* APP-SIDEBAR ----------------------------------------------------------------*/ /* Sidebar: a sidebar to be used within #app-content have it as first element within app-content in order to shrink other sibling containers properly. Compare Files app for example. */ #app-sidebar { position: fixed; top: 45px; right: 0; left: auto; bottom: 0; width: 27%; min-width: 300px; display: block; background: #fff; border-left: 1px solid #eee; -webkit-transition: margin-right 300ms; transition: margin-right 300ms; overflow-x: hidden; overflow-y: auto; visibility: visible; z-index: 500; &.disappear { visibility: hidden; } } /* APP-SETTINGS ---------------------------------------------------------------*/ /* settings area */ #app-settings { position: fixed; width: 250px; /* change to 100% when layout positions are absolute */ bottom: 0; z-index: 140; &.open #app-settings-content, &.opened #app-settings-content { display: block; } } #app-settings-content { display: none; padding: 10px; background-color: #fff; /* restrict height of settings and make scrollable */ max-height: 300px; overflow-y: auto; border-right: 1px solid #eee; width: 250px; box-sizing: border-box; /* display input fields at full width */ input[type='text'] { width: 93%; } } #app-settings-header { border-right: 1px solid #eee; width: 250px; box-sizing: border-box; } .settings-button { display: block; height: 44px; width: 100%; padding: 0; margin: 0; background-color: #fff; background-image: url('../img/actions/settings.svg?v=1'); background-position: 14px center; background-repeat: no-repeat; box-shadow: none; border: 0; border-radius: 0; text-align: left; padding-left: 42px; font-weight: normal; &:hover, &:focus { background-color: #fff; } &.opened { &:hover, &:focus { background-color: #fff; } } } /* GENERAL SECTION ---------------------------------------------------------- */ .section { display: block; padding: 30px; color: #555; margin-bottom: 24px; &.hidden { display: none !important; } /* slight position correction of checkboxes and radio buttons */ input { &[type='checkbox'], &[type='radio'] { vertical-align: -2px; margin-right: 4px; } } } .sub-section { position: relative; margin-top: 10px; margin-left: 27px; margin-bottom: 10px; } .appear { opacity: 1; -webkit-transition: opacity 500ms ease 0s; -moz-transition: opacity 500ms ease 0s; -ms-transition: opacity 500ms ease 0s; -o-transition: opacity 500ms ease 0s; transition: opacity 500ms ease 0s; &.transparent { opacity: 0; } } /* DROPDOWN ----------------------------------------------------------------- */ .dropdown { background: #eee; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; box-shadow: 0 1px 1px #777; display: block; margin-right: 0; position: absolute; right: 0; width: 420px; z-index: 500; padding: 16px; } /* TABS --------------------------------------------------------------------- */ .tabHeaders { display: inline-block; margin: 15px; .tabHeader { float: left; padding: 5px; cursor: pointer; color: #888; margin-bottom: 1px; a { color: #888; margin-bottom: 1px; } &.selected { font-weight: 600; border-bottom: 1px solid #333; } &:hover { border-bottom: 1px solid #333; } &.selected, &:hover { margin-bottom: 0px; color: #000; a { margin-bottom: 0px; color: #000; } } } } .tabsContainer { clear: left; .tab { padding: 0 15px 15px; } } /* POPOVER MENU ------------------------------------------------------------- */ .ie, .edge { .bubble, .bubble:after, .popovermenu, .popovermenu:after, #app-navigation .app-navigation-entry-menu, #app-navigation .app-navigation-entry-menu:after { border: 1px solid #eee; } } .bubble, .app-navigation-entry-menu, .popovermenu { position: absolute; background-color: #fff; color: #333; border-radius: 3px; border-top-right-radius: 0; z-index: 110; margin: 5px; margin-top: -5px; right: 0; -webkit-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75)); -moz-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75)); -ms-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75)); -o-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75)); filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75)); display: none; &:after { bottom: 100%; /* Min-width of popover is 36px and arrow width is 20px wich leaves us 8px right and 8px left */ right: 8px; /* change this to adjust the arrow position */ border: solid transparent; content: ' '; height: 0; width: 0; position: absolute; pointer-events: none; border-color: rgba(238, 238, 238, 0); border-bottom-color: #fff; border-width: 10px; } /* Center the popover */ &.menu-center { transform: translateX(50%); right: 50%; margin-right: 0; border-top-right-radius: 3px; &:after { right: 50%; transform: translateX(50%); } } /* Align the popover to the left */ &.menu-left { right: auto; left: 0; margin-right: 0; border-top-left-radius: 0; border-top-right-radius: 3px; &:after { left: 6px; right: auto; } } &.open { display: block; } ul { /* Overwrite #app-navigation > ul ul */ display: flex !important; flex-direction: column; } li { display: flex; > button, > a, > .menuitem { cursor: pointer; line-height: 36px; border: 0; -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)' !important; filter: alpha(opacity = 50) !important; opacity: .5 !important; background-color: transparent; display: flex; align-items: center; width: auto; height: auto; margin: 0; font-weight: inherit; box-shadow: none; /* prevent .action class to break the design */ &.action { padding: inherit !important; } &:hover, &:focus { -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)' !important; filter: alpha(opacity = 100) !important; opacity: 1 !important; background-color: transparent; } > span { cursor: pointer; white-space: nowrap; } > p { width: 150px; line-height: 1.6em; padding: 8px 0; > span { -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)' !important; filter: alpha(opacity = 70) !important; opacity: .7 !important; } } /* Add padding if contains icon+text */ &:not(:empty) { padding: 0 !important; padding-right: 10px !important; } > img { width: 16px; padding: 0 10px; } } [class^='icon-'], [class*=' icon-']{ /* Keep padding to define the width to assure correct position of a possible text */ padding: 18px 0 18px 36px; min-width: 0; /* Overwrite icons*/ min-height: 0; background-position: 10px center } } }