2702 lines
50 KiB
SCSS
2702 lines
50 KiB
SCSS
|
|
// These are overriding the variables at https://getbootstrap.com/docs/3.4/customize/
|
|
|
|
$text-dark: #333;
|
|
|
|
$brand-primary: #2196F3 !default; // #62bdfc
|
|
$brand-success: #27CE65 !default;
|
|
$brand-info: #3995b1 !default;
|
|
$brand-warning: #f0ad4e !default;
|
|
$brand-danger: #ff4c4c !default;
|
|
|
|
$body-bg: #f4f4f4;
|
|
$font-family-sans-serif: "Noto Sans", Helvetica, Arial, sans-serif;
|
|
$font-family-heading: "Noto Sans Light", Helvetica, Arial, sans-serif;
|
|
|
|
$navbar-default-link-color: $brand-primary !default;
|
|
$navbar-default-link-hover-color: #62bdfc !default;
|
|
$navbar-default-link-active-color: #428BCA !default;
|
|
$navbar-default-brand-color: #777 !default;
|
|
|
|
$btn-default-bg: transparent !default;
|
|
$btn-default-color: #444 !default;
|
|
$btn-default-border: #aaa !default;
|
|
|
|
//$btn-primary-bg: $btn-default-bg;
|
|
//$btn-primary-color: $brand-primary !default;
|
|
$btn-primary-border: $brand-primary !default;
|
|
|
|
//$btn-success-bg: $btn-default-bg;
|
|
//$btn-success-color: $brand-success !default;
|
|
$btn-success-border: $brand-success !default;
|
|
|
|
$btn-info-bg: $btn-default-bg;
|
|
$btn-info-color: $brand-info !default;
|
|
$btn-info-border: $brand-info !default;
|
|
|
|
// $btn-warning-bg: #333 !default;
|
|
// $btn-warning-color: $brand-warning !default;
|
|
// $btn-warning-border: $brand-warning !default;
|
|
|
|
$btn-danger-bg: $btn-default-bg;
|
|
$btn-danger-color: $brand-danger !default;
|
|
$btn-danger-border: $brand-danger !default;
|
|
|
|
$modal-content-border-color: transparent !default;
|
|
$modal-header-border-color: white !default;
|
|
$border-radius-large: 2px !default;
|
|
$border-radius-base: 2px !default;
|
|
|
|
$table-border-color: transparent !default;
|
|
|
|
$state-danger-bg: $brand-danger;
|
|
$state-danger-text: $brand-danger;
|
|
$state-danger-border: $brand-danger;
|
|
|
|
@import "pkg:bootstrap-sass";
|
|
|
|
html {
|
|
--accent-color: var(--pankow-color-primary);
|
|
// --accent-color: #9141ac;
|
|
--card-background: #f7f7f8;
|
|
--navbar-background: #f3f4f6;
|
|
--body-background: white;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
html {
|
|
--card-background: #15181f;
|
|
--navbar-background: #11161f;
|
|
--body-background: #0b0e14;
|
|
--pankow-body-background-color: var(--body-background);
|
|
--pankow-dialog-background-color: var(--navbar-background);
|
|
--pankow-color-background: var(--navbar-background);
|
|
--pankow-text-color: white;
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Bootstrap extension
|
|
// ----------------------------
|
|
|
|
h1, h2, h3, h4, h5, h6,
|
|
.h1, .h2, .h3, .h4, .h5, .h6 {
|
|
font-family: $font-family-heading;
|
|
font-weight: 400;
|
|
}
|
|
|
|
a {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
a:hover, a:focus {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
.hide-mobile {
|
|
@media(max-width:767px) {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.table-hover > tbody > tr:hover {
|
|
background-color: $body-bg;
|
|
}
|
|
|
|
.text-monospace {
|
|
font-family: $font-family-monospace;
|
|
}
|
|
|
|
.row-same-height {
|
|
height: 100%;
|
|
display: table;
|
|
width: 100%;
|
|
}
|
|
|
|
.col-same-height {
|
|
height: 100%;
|
|
vertical-align: middle;
|
|
display: table-cell;
|
|
float: none !important;
|
|
}
|
|
|
|
.row-no-margin {
|
|
margin: 0;
|
|
}
|
|
|
|
.row-no-margin:before,
|
|
.row-no-margin:after {
|
|
content: " ";
|
|
display: table;
|
|
}
|
|
|
|
.row-no-margin:after {
|
|
clear: both;
|
|
}
|
|
|
|
.elide-table-cell {
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
max-width: 300px;
|
|
vertical-align: middle !important;
|
|
}
|
|
|
|
.wrap-table-cell {
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.navbar-collapse.collapse.in {
|
|
background-color: white;
|
|
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover {
|
|
// background-color: $brand-primary;
|
|
background-color: var(--accent-color);
|
|
color: white;
|
|
}
|
|
|
|
select.form-control {
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
appearance: none;
|
|
|
|
background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
|
|
background-repeat: no-repeat;
|
|
background-position-x: 100%;
|
|
background-position-y: 5px;
|
|
}
|
|
|
|
.form-control {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover {
|
|
background-color: white;
|
|
outline: none;
|
|
}
|
|
|
|
.fa-fw {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
.tooltip {
|
|
pointer-events: none;
|
|
|
|
.tooltip-inner {
|
|
max-width: 800px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
.btn.pull-right {
|
|
margin-left: 5px;
|
|
}
|
|
|
|
.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover {
|
|
border: 1px solid white;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Main classes
|
|
// ----------------------------
|
|
|
|
html, body {
|
|
height: 100%;
|
|
width: 100%;
|
|
padding: 0;
|
|
background-color: var(--body-background);
|
|
}
|
|
|
|
.view-header-filter-bar {
|
|
padding-right: 20px;
|
|
padding-left: 15px;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
|
|
@media(min-width:768px) {
|
|
.view-header-filter-bar {
|
|
justify-content: right;
|
|
}
|
|
}
|
|
|
|
.view-header-search-bar {
|
|
margin-top: 10px;
|
|
|
|
form {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
@media(min-width:768px) {
|
|
float: right;
|
|
}
|
|
}
|
|
|
|
.offline-banner {
|
|
position: fixed;
|
|
z-index: 30000;
|
|
background-color: $brand-danger;
|
|
width: 100%;
|
|
padding: 2px;
|
|
text-align: center;
|
|
color: white;
|
|
|
|
&:hover, &:focus {
|
|
color: white;
|
|
text-decoration: none;
|
|
}
|
|
}
|
|
|
|
.accent-color-input {
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
appearance: none;
|
|
width: 100px;
|
|
height: 100px;
|
|
background-color: transparent;
|
|
border: none;
|
|
border-radius: 100px 100px 0 100px;
|
|
cursor: pointer;
|
|
height: 24px;
|
|
width: 24px;
|
|
position: absolute;
|
|
bottom: 10px;
|
|
right: 10px;
|
|
transition: all 100ms ease-in-out;
|
|
}
|
|
.accent-color-input::-webkit-color-swatch {
|
|
border-radius: 100px 100px 0 100px;
|
|
border: none;
|
|
}
|
|
.accent-color-input::-moz-color-swatch {
|
|
border-radius: 100px 100px 0 100px;
|
|
border: none;
|
|
}
|
|
.accent-color-input:hover {
|
|
width: 48px;
|
|
height: 48px;
|
|
}
|
|
|
|
.restart-banner {
|
|
position: fixed;
|
|
z-index: 20000;
|
|
background-color: $text-dark;
|
|
width: 100%;
|
|
padding: 2px;
|
|
text-align: center;
|
|
color: white;
|
|
}
|
|
|
|
.layout-root {
|
|
display: flex;
|
|
flex-direction: row;
|
|
width: 100%;
|
|
// background-color: white;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.layout-content {
|
|
flex-grow: 1;
|
|
overflow: auto;
|
|
}
|
|
|
|
#mainContentContainer {
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: cover;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
#ng-view {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.shadow {
|
|
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.highlight:hover {
|
|
background-color: rgba(0, 0, 0, 0.1) !important;
|
|
}
|
|
|
|
.content {
|
|
// width: 100%;
|
|
// max-width: 720px;
|
|
// margin: 0 auto;
|
|
// margin-right: 40px;
|
|
|
|
@media(min-width:768px) {
|
|
// width: 720px;
|
|
|
|
.title-toolbar {
|
|
float: right !important;
|
|
}
|
|
|
|
&.content-large {
|
|
// width: 970px;
|
|
// max-width: 970px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.navbar {
|
|
display: block;
|
|
width: 100%;
|
|
flex-grow: 0;
|
|
background-color: unset;
|
|
border-color: white;
|
|
|
|
@media(min-width:768px) {
|
|
max-height: 50px;
|
|
}
|
|
|
|
.navbar-brand-icon {
|
|
padding: 5px 15px;
|
|
}
|
|
|
|
.navbar-nav > li > a {
|
|
@media(min-width:768px) {
|
|
padding: 13px 15px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.navbar-default .navbar-nav > li > a:hover,
|
|
.navbar-default .navbar-nav > li > a:focus {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
.navbar-default .navbar-nav > li > a {
|
|
color: black;
|
|
}
|
|
|
|
.nav-sidebar-toggle-button {
|
|
position: absolute;
|
|
left: 10px;
|
|
top: 10px;
|
|
}
|
|
|
|
.nav-sidebar {
|
|
position: relative;
|
|
z-index: 1000;
|
|
transition: all 250ms ease;
|
|
min-width: 280px;
|
|
height: 100%;
|
|
white-space: nowrap !important;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
background-color: var(--navbar-background);
|
|
border-right: 1px solid var(--pankow-color-background-hover);
|
|
padding: 22px 10px 10px 10px;
|
|
margin-right: 20px;
|
|
}
|
|
|
|
@media(max-width:767px) {
|
|
.nav-sidebar {
|
|
margin-right: 0;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 0;
|
|
min-width: 0;
|
|
padding: 22px 0 10px 0;
|
|
border-right: 0;
|
|
}
|
|
|
|
.nav-sidebar.open {
|
|
width: 100%;
|
|
padding: 22px 10px 10px 10px;
|
|
}
|
|
}
|
|
|
|
.nav-sidebar-logo img {
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.nav-sidebar-logo,
|
|
.nav-sidebar-logo:hover {
|
|
color: var(--pankow-text-color);
|
|
text-decoration: none;
|
|
padding-left: 10px;
|
|
}
|
|
|
|
.nav-sidebar-list {
|
|
overflow: auto;
|
|
padding-top: 20px;
|
|
scrollbar-color: transparent transparent;
|
|
scrollbar-width: thin;
|
|
}
|
|
|
|
.nav-sidebar-list:hover {
|
|
scrollbar-color: var(--color-neutral-border) transparent;
|
|
}
|
|
|
|
.nav-sidebar-item {
|
|
display: block;
|
|
color: black;
|
|
border-radius: 3px;
|
|
padding: 10px 15px;
|
|
}
|
|
|
|
.nav-sidebar-item i {
|
|
// display: none;
|
|
opacity: 0.5;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.nav-sidebar-item.active {
|
|
color: var(--accent-color);
|
|
text-decoration: none;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.nav-sidebar-item:hover {
|
|
background-color: #e9ecef;
|
|
text-decoration: none;
|
|
}
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
.nav-sidebar-item:hover {
|
|
background-color: var(--card-background);
|
|
}
|
|
}
|
|
|
|
.nav-sidebar-item.active i ,
|
|
.nav-sidebar-item:hover i {
|
|
opacity: 1;
|
|
}
|
|
|
|
.header-toolbar {
|
|
display: flex;
|
|
padding: 10px;
|
|
align-items: center;
|
|
gap: 15px;
|
|
}
|
|
|
|
.header-toolbar a {
|
|
display: block;
|
|
padding: 6px 15px;
|
|
border-radius: var(--pankow-border-radius);
|
|
color: var(--pankow-text-color);
|
|
}
|
|
|
|
.header-toolbar a:focus,
|
|
.header-toolbar a:active,
|
|
.header-toolbar a:hover {
|
|
text-decoration: none;
|
|
background-color: var(--pankow-color-background-hover);
|
|
}
|
|
|
|
.header-toolbar-avatar {
|
|
width: 32px;
|
|
height: 32px;
|
|
margin-right: 10px;
|
|
border-radius: var(--pankow-border-radius);
|
|
}
|
|
|
|
.panel-body {
|
|
padding: 15px 0;
|
|
}
|
|
|
|
.radio {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.help {
|
|
color: #757c82;
|
|
font-size: 14px;
|
|
|
|
&:hover {
|
|
color: $navbar-default-link-hover-color;
|
|
}
|
|
}
|
|
|
|
h1, h2, h3 {
|
|
font-family: $font-family-heading;
|
|
|
|
@media(max-width:767px) {
|
|
padding: 0 10px;
|
|
}
|
|
}
|
|
|
|
h1 {
|
|
font-size: 28px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 24px;
|
|
}
|
|
|
|
.view-header {
|
|
padding-left: 15px;
|
|
padding-right: 20px;
|
|
position: relative;
|
|
z-index: 200;
|
|
}
|
|
|
|
.section-header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-top: 50px;
|
|
gap: 5px;
|
|
padding-right: 15px;
|
|
}
|
|
|
|
h1.section-header {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.offscreen {
|
|
position: absolute;
|
|
left: -999em;
|
|
}
|
|
|
|
textarea {
|
|
max-width: 100%;
|
|
}
|
|
|
|
// status classes for circle indicators
|
|
.status-active {
|
|
color: #27CE65;
|
|
}
|
|
|
|
.status-inactive {
|
|
color: #7c7c7c;
|
|
}
|
|
|
|
.status-starting {
|
|
color: #f0ad4e;
|
|
}
|
|
|
|
.status-error {
|
|
color: #ec534f;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Apps view
|
|
// ----------------------------
|
|
|
|
.app-list {
|
|
width: 100%;
|
|
margin-top: 20px !important;
|
|
|
|
th {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.app-list-item {
|
|
.app-list-item-icon {
|
|
height: 32px;
|
|
}
|
|
|
|
.app-list-app-link-cell {
|
|
padding: 0;
|
|
}
|
|
|
|
.app-list-item-fqdn {
|
|
visibility: hidden;
|
|
color: $text-muted;
|
|
margin-left: 20px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
&:hover .app-list-item-fqdn {
|
|
visibility: visible;
|
|
}
|
|
|
|
.app-list-app-link {
|
|
display: inline-block;
|
|
color: $text-dark;
|
|
padding: 8px;
|
|
|
|
&:hover {
|
|
text-decoration: none;
|
|
}
|
|
}
|
|
|
|
.app-list-item-progress {
|
|
height: 5px;
|
|
margin: 0 8px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-grid {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
width: 100%;
|
|
}
|
|
|
|
.grid-item {
|
|
margin: 10px;
|
|
width: 221px;
|
|
position: relative;
|
|
|
|
@media(max-width:767px) {
|
|
width: 100%;
|
|
}
|
|
|
|
.col-xs-12 {
|
|
padding-left: 5px;
|
|
padding-right: 5px;
|
|
|
|
.status, .status {
|
|
padding-left: 5px;
|
|
padding-right: 5px;
|
|
}
|
|
}
|
|
|
|
&.stopped {
|
|
filter: grayscale(1);
|
|
}
|
|
|
|
.grid-item-content {
|
|
position: relative;
|
|
display: block;
|
|
// background-color: #ffffffe3;
|
|
background-color: #f8f8f8e3;
|
|
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
border-radius: 10px;
|
|
height: 100%;
|
|
|
|
&:focus-within {
|
|
box-shadow: 0px 2px 5px rgba(0,0,0,0.4);
|
|
}
|
|
|
|
.usermanagement-indicator {
|
|
display: none;
|
|
position: absolute;
|
|
top: 10px;
|
|
color: #03a9f49e;
|
|
left: 10px;
|
|
|
|
@media(max-width:767px) {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
background-color: #ffffff9c !important;
|
|
|
|
& > .grid-item-action {
|
|
background-color: transparent;
|
|
opacity: 1;
|
|
border-bottom-right-radius: 0;
|
|
border-top-left-radius: 0;
|
|
|
|
&:hover {
|
|
background-color: #f8f8f8;
|
|
}
|
|
}
|
|
|
|
.usermanagement-indicator {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
.grid-item-action {
|
|
border: none;
|
|
z-index: 1;
|
|
position: relative;
|
|
float: right;
|
|
margin-bottom: -14px;
|
|
background-color: unset;
|
|
opacity: 0;
|
|
color: $text-dark;
|
|
|
|
&:hover {
|
|
color: $brand-primary;
|
|
background-color: rgba(256, 256, 256, 0.5);
|
|
}
|
|
|
|
&:active {
|
|
box-shadow: none;
|
|
}
|
|
|
|
@media(max-width:767px) {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.grid-item-top {
|
|
position: relative;
|
|
padding: 10px 15px;
|
|
height: 100%;
|
|
padding-top: 30px; // offset for non-admins
|
|
|
|
.grid-item-top-title {
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
font-size: 24px;
|
|
font-family: $font-family-heading;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-update-badge {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
position: absolute;
|
|
left: -12px;
|
|
top: -12px;
|
|
font-size: 24px;
|
|
height: 36px;
|
|
width: 36px;
|
|
color: white;
|
|
cursor: pointer;
|
|
background-color: $brand-success;
|
|
border-radius: 34px;
|
|
transition: all 100ms ease-out;
|
|
|
|
&:hover {
|
|
transform: scale(1.4);
|
|
}
|
|
}
|
|
|
|
.app-checklist-badge {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
position: absolute;
|
|
right: -12px;
|
|
top: -12px;
|
|
z-index: 2;
|
|
font-size: 14px;
|
|
height: 24px;
|
|
width: 24px;
|
|
color: white;
|
|
cursor: pointer;
|
|
background-color: $brand-danger;
|
|
border-radius: 34px;
|
|
transition: all 100ms ease-out;
|
|
|
|
&:hover {
|
|
transform: scale(1.4);
|
|
}
|
|
}
|
|
|
|
.app-postinstall-message {
|
|
max-height: 500px;
|
|
overflow-x: none;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.app-info-title {
|
|
display: inline-block;
|
|
margin: 5px 10px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.app-info-icon {
|
|
float: left;
|
|
min-height: 64px;
|
|
max-height: 64px;
|
|
min-width: 64px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
multiselect {
|
|
&.stretch {
|
|
button {
|
|
min-width: 120px;
|
|
}
|
|
}
|
|
|
|
.dropdown-toggle {
|
|
background-color: white;
|
|
border-color: #ccc;
|
|
|
|
&:hover {
|
|
background-color: white;
|
|
}
|
|
}
|
|
|
|
.empty {
|
|
padding-left: 14px;
|
|
}
|
|
}
|
|
|
|
// same as settings-avatar
|
|
.app-custom-icon {
|
|
position: relative;
|
|
cursor: pointer;
|
|
width: 64px;
|
|
height: 64px;
|
|
margin-bottom: 5px;
|
|
background-position: center;
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
border: 1px solid gray;
|
|
border-radius: 3px;
|
|
|
|
img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.overlay {
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
top: 0;
|
|
background-color: rgba(255, 255, 255 ,0.3);
|
|
background-image: url('/img/plus.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 32px 32px;
|
|
background-position: center;
|
|
transition: all 150ms;
|
|
opacity: 0;
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
.alias-domains .col-lg-11 {
|
|
padding-right: 5px;
|
|
}
|
|
|
|
.alias-domains .col-lg-1 {
|
|
padding-left: 0px;
|
|
padding-right: 0px;
|
|
}
|
|
|
|
.alias-domains .row {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.redirect-domains .col-lg-11 {
|
|
padding-right: 5px;
|
|
}
|
|
|
|
.redirect-domains .col-lg-1 {
|
|
padding-left: 0px;
|
|
padding-right: 0px;
|
|
}
|
|
|
|
.redirect-domains .row {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.bind-name {
|
|
width: 35%
|
|
}
|
|
|
|
.bind-host-path {
|
|
width: 45%;
|
|
.form-control {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.checklist-item {
|
|
padding: 8px;
|
|
border: none;
|
|
border-left: 2px solid rgb(255, 76, 76);
|
|
background-color: #ff000014;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.checklist-item-acknowledged {
|
|
border-left: 2px solid $brand-success;
|
|
background-color: transparent;
|
|
}
|
|
|
|
.checklist-item > span > p {
|
|
margin: 0;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Mail view
|
|
// ----------------------------
|
|
|
|
.maillog-filter {
|
|
display: inline-block;
|
|
padding-left: 0;
|
|
margin: 20px 0;
|
|
border-radius: 2px;
|
|
|
|
.form-control {
|
|
display: inline-block;
|
|
width: 200px;
|
|
vertical-align: middle;
|
|
}
|
|
}
|
|
|
|
.email-domain-list-item {
|
|
display: block;
|
|
text-decoration: none;
|
|
color: $text-dark;
|
|
padding: 8px;
|
|
|
|
&:hover {
|
|
text-decoration: none;
|
|
color: $text-dark;
|
|
}
|
|
}
|
|
|
|
.no-padding {
|
|
padding: 0 !important;
|
|
}
|
|
|
|
.aliases .col-lg-11 {
|
|
padding-right: 5px;
|
|
}
|
|
|
|
.aliases .col-lg-1 {
|
|
padding-left: 0px;
|
|
padding-right: 0px;
|
|
}
|
|
|
|
.aliases .row {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
// ----------------------------
|
|
// App view
|
|
// ----------------------------
|
|
|
|
.app-configure {
|
|
.card {
|
|
min-height: 558px;
|
|
}
|
|
|
|
@media(min-width:768px) {
|
|
.col-sm-2 {
|
|
padding-right: 0;
|
|
}
|
|
|
|
.col-sm-8 {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
}
|
|
}
|
|
|
|
.app-header-container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
padding: 0 15px;
|
|
|
|
@media(min-width:768px) {
|
|
padding: 0;
|
|
}
|
|
|
|
h1 {
|
|
margin-right: 10px;
|
|
margin-bottom: 0px;
|
|
margin-top: 16px;
|
|
padding: 4px 0;
|
|
line-height: 1;
|
|
font-size: 30px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden visible;
|
|
|
|
a {
|
|
white-space: nowrap;
|
|
color: black;
|
|
line-height: 1.1;
|
|
|
|
&:hover,
|
|
&:active,
|
|
&:focus {
|
|
text-decoration: none;
|
|
color: $brand-primary;
|
|
}
|
|
}
|
|
}
|
|
|
|
&>div {
|
|
white-space: nowrap;
|
|
text-align: right;
|
|
padding-top: 10px;
|
|
margin-top: 10px;
|
|
}
|
|
}
|
|
|
|
.app-status-container {
|
|
margin-bottom: 10px;
|
|
padding: 0 15px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
max-width: 100%;
|
|
|
|
@media(min-width:768px) {
|
|
padding: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-configure-links-container {
|
|
margin-top: 10px;
|
|
padding: 0;
|
|
}
|
|
|
|
.card-container {
|
|
padding: 0;
|
|
}
|
|
|
|
.app-configure .row {
|
|
@media(max-width:769px) {
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
.app-configure-links {
|
|
position: relative;
|
|
z-index: 10;
|
|
|
|
div {
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
padding: 6px 15px;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: black;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: 16px;
|
|
user-select: none;
|
|
|
|
@media(min-width:768px) {
|
|
display: block;
|
|
}
|
|
|
|
&:hover,
|
|
&:focus {
|
|
text-decoration: none;
|
|
background-color: #e9ebed;
|
|
box-shadow: -4px 3px 5px -2px rgba(0,0,0,.1);
|
|
}
|
|
|
|
&.active {
|
|
background-color: white;
|
|
color: $navbar-default-link-color;
|
|
box-shadow: -4px 3px 5px -2px rgba(0,0,0,.1);
|
|
}
|
|
|
|
&.disabled {
|
|
color: gray;
|
|
background-color: transparent !important;
|
|
box-shadow: none !important;
|
|
cursor: not-allowed;
|
|
}
|
|
}
|
|
}
|
|
|
|
.task-active-overlay {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: rgba(255, 255, 255, 0.7);
|
|
z-index: 7;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Login and password forms
|
|
// ----------------------------
|
|
|
|
.card-form-bottom-bar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.card-form-bottom-bar > * {
|
|
align-self: center;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Appstore view
|
|
// ----------------------------
|
|
|
|
.appstore-login {
|
|
margin-top: 50px !important;
|
|
|
|
h1 {
|
|
font-size: 32px;
|
|
}
|
|
}
|
|
|
|
.appstore-layout {
|
|
display: block;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
.appstore-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
margin: auto;
|
|
padding: 15px 10px;
|
|
background: transparent;
|
|
}
|
|
|
|
.appstore-grid {
|
|
margin: auto;
|
|
overflow: auto;
|
|
|
|
h2 {
|
|
font-size: 20px;
|
|
margin-top: 10px;
|
|
}
|
|
}
|
|
|
|
.appstore-item {
|
|
padding: 10px;
|
|
}
|
|
|
|
.appstore-item-content {
|
|
background-color: white;
|
|
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
border-radius: 2px;
|
|
padding: 10px;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.appstore-item-badge-testing {
|
|
position: absolute;
|
|
right: 0;
|
|
top: 2px;
|
|
}
|
|
|
|
.appstore-item-content-testing {
|
|
background-color: #E6E6E6;
|
|
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
background-size: 64px 64px;
|
|
}
|
|
|
|
.appstore-item-content-title {
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
margin-bottom: 0px;
|
|
margin-top: 16px;
|
|
padding: 4px 0;
|
|
line-height: 1;
|
|
font-family: $font-family-sans-serif;
|
|
}
|
|
|
|
.appstore-item-content-tagline {
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
height: 44px; // show two lines
|
|
}
|
|
|
|
.appstore-item-content-icon {
|
|
width: 90px;
|
|
min-width: 90px;
|
|
max-width: 90px;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
|
|
> .app-icon {
|
|
width: 70px;
|
|
height: 70px;
|
|
min-width: 70px;
|
|
min-height: 70px;
|
|
}
|
|
}
|
|
|
|
.appstore-category-link {
|
|
display: block;
|
|
padding: 6px 10px;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: black;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: 16px;
|
|
|
|
&:hover,
|
|
&:focus,
|
|
&.category-active {
|
|
text-decoration: none;
|
|
background-color: white;
|
|
color: black;
|
|
}
|
|
|
|
&.category-active {
|
|
background-color: $navbar-default-link-hover-color;
|
|
color: white;
|
|
}
|
|
|
|
& > i {
|
|
width: 30px;
|
|
}
|
|
}
|
|
|
|
|
|
.appstore-category-missing {
|
|
padding: 10px;
|
|
background-color: white;
|
|
|
|
p {
|
|
font-weight: bold;
|
|
}
|
|
|
|
textarea {
|
|
display: block;
|
|
width: 100%;
|
|
height: 50px;
|
|
margin-bottom: 10px;
|
|
transition: all 250ms ease-out;
|
|
|
|
&:focus {
|
|
height: 200px;
|
|
}
|
|
}
|
|
|
|
button {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.appstore-install-description {
|
|
max-height: 250px;
|
|
overflow-x: none;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.modal-body .panel-body {
|
|
padding: 5px;
|
|
}
|
|
|
|
.modal-footer {
|
|
padding-top: 0;
|
|
}
|
|
|
|
.appstore-install-title {
|
|
display: inline-block;
|
|
margin: 5px 10px;
|
|
}
|
|
|
|
.appstore-install-meta {
|
|
margin-left: 10px;
|
|
color: $text-muted;
|
|
}
|
|
|
|
.appstore-item-rating {
|
|
color: $navbar-default-link-hover-color;
|
|
}
|
|
|
|
.appstore-search {
|
|
width: 200px;
|
|
}
|
|
|
|
.loading-banner {
|
|
padding-top: 150px;
|
|
text-align: center;
|
|
|
|
h1 {
|
|
font-size: 48px;
|
|
}
|
|
}
|
|
|
|
.badge-success {
|
|
background-color: #5CB85C;
|
|
}
|
|
|
|
.badge-warning {
|
|
background-color: #EFBD48;
|
|
}
|
|
|
|
.badge-danger {
|
|
background-color: $brand-danger;
|
|
}
|
|
|
|
.progress {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.card {
|
|
position: relative;
|
|
// background-color: var(--card-background);
|
|
// background-color: #ebebeb;
|
|
// max-width: 720px;
|
|
// margin: 0 auto;
|
|
// margin-top: 20px;
|
|
margin-bottom: 15px;
|
|
padding: 10px 15px;
|
|
// box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
// border-left: 1px solid #707070;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.card-small {
|
|
// max-width: 600px;
|
|
}
|
|
|
|
.card-large {
|
|
// max-width: 970px;
|
|
}
|
|
|
|
.card-expand {
|
|
// max-width: initial;
|
|
}
|
|
|
|
.text-success {
|
|
color: #5CB85C;
|
|
}
|
|
|
|
.text-bold {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.text-large {
|
|
font-size: $font-size-h1;
|
|
}
|
|
|
|
.text-medium {
|
|
font-size: $font-size-h4;
|
|
}
|
|
|
|
.text-small {
|
|
font-size: $font-size-h6;
|
|
}
|
|
|
|
.text-hover {
|
|
cursor: pointer;
|
|
|
|
&:hover {
|
|
color: $brand-primary;
|
|
}
|
|
}
|
|
|
|
.newPort {
|
|
border-left: 5px solid $brand-success;
|
|
padding-left: 5px;
|
|
}
|
|
|
|
.obsoletePort {
|
|
border-left: 5px solid $gray-light;
|
|
padding-left: 5px;
|
|
}
|
|
|
|
.grid-item-top .progress {
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
margin-top: 10px;
|
|
width: inherit;
|
|
height: 10px;
|
|
}
|
|
|
|
.grid-item-top .progress-bar {
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.app-icon {
|
|
min-height: 80px;
|
|
max-height: 80px;
|
|
min-width: 80px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.appstore-install .app-icon {
|
|
float: left;
|
|
min-height: 96px;
|
|
max-height: 96px;
|
|
min-width: 96px;
|
|
max-width: 100%;
|
|
}
|
|
|
|
select.purpose:invalid {
|
|
color: gray
|
|
}
|
|
|
|
// ----------------------------
|
|
// Animations
|
|
// ----------------------------
|
|
|
|
// ngAnimate will delay hiding the element if there is an animation attached
|
|
.fa-spin.ng-hide,
|
|
.fa-pulse.ng-hide {
|
|
display: none !important;
|
|
}
|
|
|
|
.animateMe {
|
|
opacity: 1;
|
|
-webkit-transition: 0.25s ease all;
|
|
transition: 0.25s ease all;
|
|
}
|
|
|
|
.animateMe.ng-hide-add,
|
|
.animateMe.ng-hide-remove {
|
|
display: block !important;
|
|
transform: scale(0.9, 0.9);
|
|
opacity: 0;
|
|
}
|
|
|
|
.animateMeOpacity {
|
|
opacity: 1;
|
|
-webkit-transition: 0.25s ease all;
|
|
transition: 0.25s ease all;
|
|
}
|
|
|
|
.animateMeOpacity.ng-hide-add,
|
|
.animateMeOpacity.ng-hide-remove {
|
|
display: block !important;
|
|
opacity: 0;
|
|
}
|
|
|
|
.animation-rise {
|
|
animation-duration: 3s;
|
|
animation-name: rise;
|
|
}
|
|
|
|
.animation-plop {
|
|
transform: scale(0);
|
|
animation-name: plop;
|
|
animation-delay: 2s;
|
|
animation-duration: 350ms;
|
|
animation-iteration-count: 1;
|
|
animation-timing-function: ease-out;
|
|
animation-fill-mode: forwards;
|
|
}
|
|
|
|
.animation-fade {
|
|
opacity: 0;
|
|
animation-name: fade;
|
|
animation-delay: 4s;
|
|
animation-duration: 250ms;
|
|
animation-iteration-count: 1;
|
|
animation-timing-function: ease-out;
|
|
animation-fill-mode: forwards;
|
|
}
|
|
|
|
.animation-pulse {
|
|
animation-duration: 1.5s;
|
|
animation-name: pulse;
|
|
animation-timing-function: ease-in;
|
|
animation-iteration-count: infinite;
|
|
}
|
|
|
|
@keyframes rise {
|
|
from {
|
|
color: transparent;
|
|
}
|
|
|
|
to {
|
|
color: white;
|
|
}
|
|
}
|
|
|
|
@keyframes plop {
|
|
0% {
|
|
transform: scale(0);
|
|
opacity: 0;
|
|
}
|
|
|
|
50% {
|
|
transform: scale(1.2);
|
|
opacity: 0.3
|
|
}
|
|
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes fade {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
|
|
50% {
|
|
transform: scale(0.8);
|
|
opacity: 0.5;
|
|
}
|
|
|
|
100% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.slick-item {
|
|
height: 200px;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: contain;
|
|
}
|
|
|
|
.modal-backdrop {
|
|
position: fixed;
|
|
top: 0;
|
|
bottom: 0;
|
|
height: auto !important;
|
|
}
|
|
|
|
.has-error,
|
|
.text-danger {
|
|
color: $brand-danger;
|
|
}
|
|
|
|
footer {
|
|
flex-grow: 0;
|
|
background-color: white;
|
|
width: 100%;
|
|
color: #555;
|
|
max-height: 30px;
|
|
font-size: 14px;
|
|
padding: 5px;
|
|
text-align: center;
|
|
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
|
|
|
|
a {
|
|
color: #62bdfc;
|
|
}
|
|
|
|
p {
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
.hand {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.copy {
|
|
cursor: copy;
|
|
}
|
|
|
|
.arrow {
|
|
cursor: default;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Setup classes
|
|
// ----------------------------
|
|
|
|
.setup {
|
|
height: 100%;
|
|
width: 100%;
|
|
padding: 0;
|
|
background: #F7F7F7;
|
|
|
|
.main-container {
|
|
height: 100%;
|
|
width: 100%;
|
|
display: table;
|
|
|
|
h1 {
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
&>.row {
|
|
display: table-cell;
|
|
vertical-align: middle;
|
|
width: 100%;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Graphs and system info classes
|
|
// ----------------------------
|
|
|
|
.graphs-toolbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.graphs-toolbar-actions {
|
|
display: flex;
|
|
justify-content: end;
|
|
}
|
|
|
|
.color-indicator {
|
|
display: inline-block;
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 3px;
|
|
line-height: 16px;
|
|
}
|
|
|
|
.disk-content {
|
|
white-space: nowrap;
|
|
overflow: auto;
|
|
}
|
|
|
|
.disks-last-updated {
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
align-self: center;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Error and status page classes
|
|
// ----------------------------
|
|
|
|
.status-page {
|
|
background-color: white;
|
|
padding: 0;
|
|
margin: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
|
|
.wrapper {
|
|
display: table;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.content {
|
|
display: table-cell;
|
|
width: 100%;
|
|
height: 100%;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
footer {
|
|
bottom: 0;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
// ----------------------------
|
|
// Settings
|
|
// ----------------------------
|
|
|
|
.picture-edit-indicator {
|
|
position: absolute;
|
|
bottom: -4px;
|
|
right: -4px;
|
|
border-radius: 20px;
|
|
padding: 5px;
|
|
color: $text-dark;
|
|
background-color: white;
|
|
transition: all 250ms;
|
|
}
|
|
|
|
div:hover > .picture-edit-indicator {
|
|
color: white;
|
|
background: $brand-primary;
|
|
transform: scale(1.2);
|
|
}
|
|
|
|
.info-edit-indicator {
|
|
float: right;
|
|
border-radius: 20px;
|
|
padding: 5px;
|
|
color: $text-dark;
|
|
background-color: white;
|
|
transition: all 250ms;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.info-edit-indicator:hover {
|
|
color: white;
|
|
background: $brand-primary;
|
|
transform: scale(1.2);
|
|
}
|
|
|
|
.settings-avatar {
|
|
position: relative;
|
|
cursor: pointer;
|
|
width: 128px;
|
|
height: 128px;
|
|
background-position: center;
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
border: 1px solid gray;
|
|
border-radius: 3px;
|
|
margin-bottom: 10px;
|
|
|
|
img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
.settings-avatar-selector {
|
|
text-align: center;
|
|
|
|
.grid {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.preview-avatar {
|
|
text-align: center;
|
|
}
|
|
|
|
.item {
|
|
display: inline-block;
|
|
background-size: cover;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
width: 64px;
|
|
height: 64px;
|
|
margin: 5px;
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
transform: scale(1.0);
|
|
transition: all 150ms;
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
&.add {
|
|
border-radius: 2px;
|
|
width: 54px;
|
|
height: 54px;
|
|
background-color: $brand-primary;
|
|
background-image: url('/img/plus.png');
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.plans label {
|
|
font-weight: normal;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Notification
|
|
// ----------------------------
|
|
|
|
.ui-notification {
|
|
cursor: auto;
|
|
|
|
& a {
|
|
color: white;
|
|
|
|
&:hover {
|
|
color: white;
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Users view
|
|
// ----------------------------
|
|
|
|
.group-badge {
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.no-wrap {
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.no-wrap-scroll {
|
|
text-wrap: nowrap;
|
|
overflow: auto;
|
|
display: block;
|
|
}
|
|
|
|
.users-toolbar {
|
|
display: flex;
|
|
margin-bottom: 5px;
|
|
gap: 5px;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Upgrade
|
|
// ----------------------------
|
|
|
|
.upgrade {
|
|
position: fixed;
|
|
right: 10px;
|
|
bottom: 30px;
|
|
color: white;
|
|
z-index: 1200;
|
|
text-align: right;
|
|
|
|
.content {
|
|
height: 0;
|
|
overflow: hidden;
|
|
transition: height 250ms;
|
|
background-color: #00A500;
|
|
text-align: left;
|
|
border-radius: 0;
|
|
transition: all 250ms;
|
|
box-shadow: 0 3px 5px rgba(0,0,0,.5);
|
|
|
|
a {
|
|
color: white;
|
|
text-decoration: underline;
|
|
|
|
&:hover {
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
|
|
&.active {
|
|
padding: 10px;
|
|
border-radius: 5px;
|
|
border-bottom-right-radius: 0;
|
|
height: auto;
|
|
}
|
|
}
|
|
|
|
.trigger {
|
|
cursor: pointer;
|
|
padding: 4px 10px;
|
|
display: inline-block;
|
|
font-size: 18px;
|
|
background-color: #00A500;
|
|
border-radius: 5px;
|
|
transition: all 250ms;
|
|
box-shadow: 0 3px 5px rgba(0,0,0,.5);
|
|
|
|
&.active {
|
|
border-top-left-radius: 0;
|
|
border-top-right-radius: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Eventlog/Activity
|
|
// ----------------------------
|
|
|
|
.eventlog-filter {
|
|
display: flex;
|
|
gap: 5px;
|
|
flex-wrap: wrap;
|
|
margin: 20px 0;
|
|
|
|
.form-control {
|
|
display: inline-block;
|
|
width: 200px;
|
|
vertical-align: middle;
|
|
}
|
|
}
|
|
|
|
.eventlog-details {
|
|
white-space: pre-wrap;
|
|
background-color: white;
|
|
}
|
|
|
|
// ----------------------------
|
|
// Account/Notifications
|
|
// ----------------------------
|
|
|
|
.notification-item {
|
|
cursor: pointer;
|
|
padding: 10px 15px;
|
|
|
|
&:hover {
|
|
box-shadow: 0 2px 27px rgba(0,0,0,.1);
|
|
}
|
|
|
|
&.notification-unread {
|
|
border-left: solid 3px #2196f3;
|
|
|
|
.notification-title {
|
|
font-weight: bold;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Branding
|
|
// ----------------------------
|
|
|
|
.branding-avatar {
|
|
position: relative;
|
|
cursor: pointer;
|
|
width: 64px;
|
|
height: 64px;
|
|
background-position: center;
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
border: 1px solid gray;
|
|
border-radius: 3px;
|
|
|
|
img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
.branding-avatar-selector {
|
|
text-align: center;
|
|
|
|
.grid {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.preview-avatar {
|
|
text-align: center;
|
|
}
|
|
|
|
.item {
|
|
display: inline-block;
|
|
background-size: cover;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
width: 64px;
|
|
height: 64px;
|
|
margin: 5px;
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
transform: scale(1.0);
|
|
transition: all 150ms;
|
|
|
|
&:hover {
|
|
opacity: 1;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
&.add {
|
|
border-radius: 2px;
|
|
width: 54px;
|
|
height: 54px;
|
|
background-color: $brand-primary;
|
|
background-image: url('/img/plus.png');
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.branding-background {
|
|
position: relative;
|
|
cursor: pointer;
|
|
width: 256px;
|
|
background-position: center;
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
border: 1px solid gray;
|
|
border-radius: 3px;
|
|
|
|
img {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Tag Input
|
|
// ----------------------------
|
|
// https://codepen.io/webmatze/pen/isuHh
|
|
|
|
tag-input {
|
|
height: auto !important;
|
|
cursor: text;
|
|
|
|
.tag-input-container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
|
|
input {
|
|
flex-grow: 1;
|
|
padding: 0px;
|
|
font-size: 14px;
|
|
line-height: 18px;
|
|
color: black;
|
|
border: 0px;
|
|
margin: 4px 0;
|
|
|
|
&:focus {
|
|
outline: 0;
|
|
box-shadow: 0px;
|
|
}
|
|
}
|
|
|
|
.input-tag {
|
|
margin: 2px 0;
|
|
margin-right: 4px;
|
|
|
|
:first-child {
|
|
cursor: text;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Logs
|
|
// ----------------------------
|
|
|
|
.logs {
|
|
background: black;
|
|
|
|
.logs-error {
|
|
color: white;
|
|
width: 100%;
|
|
font-size: 18px;
|
|
text-align: center;
|
|
margin-top: 200px;
|
|
}
|
|
|
|
.logs-controls {
|
|
margin: 5px;
|
|
|
|
.ng-isolate-scope {
|
|
float: left;
|
|
}
|
|
|
|
h3 {
|
|
margin: 5px 0;
|
|
color: white;
|
|
}
|
|
}
|
|
|
|
.logs-container {
|
|
flex-grow: 1;
|
|
color: white;
|
|
overflow: auto;
|
|
margin: 5px;
|
|
font-family: monospace;
|
|
|
|
.log-line {
|
|
line-height: 1.2;
|
|
white-space: nowrap;
|
|
width: 100%;
|
|
|
|
&:hover {
|
|
background-color: #333333;
|
|
|
|
.time {
|
|
background-color: #333333;
|
|
}
|
|
}
|
|
|
|
.time {
|
|
color: #00FFFF;
|
|
position: sticky;
|
|
left: 0;
|
|
background: black;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Terminal
|
|
// ----------------------------
|
|
|
|
.terminal-view {
|
|
background: black;
|
|
|
|
.terminal-controls {
|
|
margin: 5px;
|
|
|
|
.ng-isolate-scope {
|
|
float: left;
|
|
}
|
|
|
|
h3 {
|
|
margin: 5px 0;
|
|
color: white;
|
|
}
|
|
}
|
|
|
|
.terminal-container {
|
|
flex-grow: 1;
|
|
margin-bottom: 5px;
|
|
color: white;
|
|
overflow: hidden;
|
|
padding: 5px;
|
|
font-family: monospace;
|
|
|
|
&.placeholder {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
}
|
|
}
|
|
|
|
.contextMenuBackdrop {
|
|
display: none;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ----------------------------
|
|
// File Manager
|
|
// ----------------------------
|
|
|
|
.filemanager {
|
|
|
|
.layout-root {
|
|
height: calc(100% - 30px);
|
|
}
|
|
|
|
.filemanager-layout {
|
|
}
|
|
|
|
.file-trees {
|
|
display: flex;
|
|
overflow: hidden;
|
|
height: 100%;
|
|
}
|
|
|
|
filetree {
|
|
width: 100%;
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
&.two-pane {
|
|
width: 50%;
|
|
|
|
&:first-of-type {
|
|
margin-right: 5px;
|
|
padding-right: 5px;
|
|
border-right: 1px solid #d3d3d3;
|
|
}
|
|
}
|
|
}
|
|
|
|
.toolbar {
|
|
display: flex;
|
|
margin-bottom: 10px;
|
|
|
|
button {
|
|
float: none;
|
|
}
|
|
|
|
div {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.path-parts {
|
|
margin: 0 5px;
|
|
white-space: nowrap;
|
|
overflow: auto;
|
|
flex-grow: 1;
|
|
}
|
|
}
|
|
|
|
.text-editor {
|
|
display: flex;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
padding: 10px;
|
|
margin: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
flex-direction: column;
|
|
background-color: $body-bg;
|
|
|
|
.toolbar {
|
|
width: 100%;
|
|
display: flex;
|
|
margin-bottom: 5px;
|
|
justify-content: space-between;
|
|
|
|
:not(:last-child) {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
div {
|
|
flex-grow: 2;
|
|
margin: auto;
|
|
text-align: center;
|
|
}
|
|
}
|
|
}
|
|
|
|
// those are for drag'n'drop
|
|
.file-list {
|
|
overflow: auto;
|
|
border: 2px solid transparent;
|
|
position: relative;
|
|
height: 100%;
|
|
flex-grow: 1;
|
|
|
|
&.top-scroll-indicator {
|
|
transition: box-shadow 200ms;
|
|
box-shadow: inset 0 10px 10px -10px rgba(0,0,0,0.5);
|
|
}
|
|
|
|
.table-hover > tbody > tr:hover {
|
|
background-color: #0000000a;
|
|
}
|
|
|
|
.table td {
|
|
vertical-align: middle;
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
.file-list-header {
|
|
th {
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
table {
|
|
border: 2px solid transparent;
|
|
}
|
|
|
|
.context-menu-action {
|
|
display: inline-block;
|
|
visibility: hidden;
|
|
}
|
|
|
|
tr:hover .context-menu-action {
|
|
// display: inline-block;
|
|
visibility: visible;
|
|
}
|
|
|
|
tr.entry-selected .context-menu-action {
|
|
display: inline-block;
|
|
color: white;
|
|
}
|
|
|
|
.entry-hovered {
|
|
border: 2px solid $brand-primary;
|
|
}
|
|
|
|
.entry-hovered > td {
|
|
border: none !important;
|
|
}
|
|
|
|
.entry-selected {
|
|
background-color: $brand-primary !important;
|
|
color: white !important;
|
|
}
|
|
|
|
.card {
|
|
height: calc(100% - 20px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
margin-bottom: 10px;
|
|
margin-top: 10px;
|
|
|
|
h4 {
|
|
a {
|
|
text-decoration: none;
|
|
color: $text-dark;
|
|
|
|
&:hover {
|
|
text-decoration: none;
|
|
color: $brand_primary;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Background image overrides
|
|
// ----------------------------
|
|
.has-background {
|
|
|
|
h1, h2, h3 {
|
|
color: white;
|
|
-webkit-text-stroke: 0.3px black;
|
|
|
|
.btn {
|
|
color: white;
|
|
-webkit-text-stroke: 0;
|
|
}
|
|
}
|
|
|
|
.modal-content {
|
|
h1, h2, h3 {
|
|
filter: none;
|
|
color: $text_dark;
|
|
}
|
|
}
|
|
|
|
.card {
|
|
background-color: #ffffffe3;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.navbar {
|
|
background-color: #ffffffe3;
|
|
}
|
|
|
|
.dropdown-menu {
|
|
background-color: #ffffffe3;
|
|
}
|
|
|
|
footer {
|
|
background-color: #ffffffe3;
|
|
}
|
|
|
|
.app-configure-links {
|
|
div {
|
|
filter: drop-shadow(0 0 0.5px black);
|
|
color: white;
|
|
|
|
&:hover,
|
|
&:focus {
|
|
color: black;
|
|
filter: none;
|
|
}
|
|
|
|
&.active {
|
|
color: black;
|
|
background-color: #ffffffe3;
|
|
filter: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
.btn-default, .open > .btn-default.dropdown-toggle {
|
|
background-color: #ffffffcf;
|
|
border-color: transparent;
|
|
|
|
&:hover {
|
|
border-color: white;
|
|
background-color: #e2e2e2cf;
|
|
}
|
|
}
|
|
|
|
.btn-primary {
|
|
background-color: #2196f3c7;
|
|
|
|
&:hover {
|
|
background-color: #2196f3;
|
|
}
|
|
}
|
|
|
|
.input-group-btn {
|
|
.btn-default {
|
|
border-color: #ccc;
|
|
}
|
|
}
|
|
|
|
.highlight:hover {
|
|
background-color: #ffffffe3 !important;
|
|
}
|
|
|
|
.app-status-container {
|
|
filter: drop-shadow(0 0 0.5px black);
|
|
color: white;
|
|
}
|
|
|
|
.app-header-container {
|
|
h1 {
|
|
|
|
a {
|
|
filter: drop-shadow(0 0 0.5px black);
|
|
color: white;
|
|
|
|
&:hover,
|
|
&:active,
|
|
&:focus {
|
|
text-decoration: none;
|
|
color: $brand-primary;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ----------------------------
|
|
// Dark mode overrides
|
|
// ----------------------------
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
// $textColor: #959595;
|
|
$textColor: #ccc;
|
|
$backgroundLight: #2b2b2e;
|
|
$backgroundDark: #1c1c1c;
|
|
|
|
body, .modal-content, .setup {
|
|
color: $textColor;
|
|
// background-color: $backgroundLight;
|
|
}
|
|
|
|
.view-header-filter-bar {
|
|
background-color: $backgroundLight;
|
|
}
|
|
|
|
.appstore-toolbar {
|
|
color: $textColor;
|
|
}
|
|
|
|
select.form-control {
|
|
background-image: url("data:image/svg+xml;utf8,<svg fill='lightgray' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
|
|
}
|
|
|
|
.navbar-default {
|
|
// background-color: $backgroundDark;
|
|
border-color: var(--navbar-background);
|
|
}
|
|
|
|
.navbar-collapse.collapse.in {
|
|
background-color: $backgroundDark;
|
|
}
|
|
|
|
.navbar-default .navbar-nav > li > a:hover,
|
|
.navbar-default .navbar-nav > li > a:focus {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
.navbar-default .navbar-nav > li > a {
|
|
color: $textColor;
|
|
}
|
|
|
|
.nav-sidebar-item {
|
|
color: $textColor;
|
|
}
|
|
|
|
.grid-item {
|
|
.grid-item-content {
|
|
background-color: $backgroundDark !important;
|
|
|
|
&:hover {
|
|
background-color: #4545459c !important;
|
|
}
|
|
|
|
.grid-item-action {
|
|
color: white;
|
|
background-color: rgba($backgroundDark, 0.1) !important;
|
|
|
|
&:hover {
|
|
background-color: $backgroundDark !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-list .app-list-item .app-list-app-link {
|
|
color: $textColor;
|
|
}
|
|
|
|
.app-list .app-list-item:hover .app-list-app-link {
|
|
color: white;
|
|
}
|
|
|
|
footer, .app-configure-links div.active {
|
|
background-color: $backgroundDark;
|
|
}
|
|
|
|
.app-configure-links div:hover {
|
|
background-color: $backgroundDark;
|
|
color: $textColor;
|
|
}
|
|
|
|
.app-configure-links div {
|
|
color: $textColor;
|
|
}
|
|
|
|
multiselect .dropdown-toggle {
|
|
background-color: $backgroundDark;
|
|
border-color: $backgroundDark;
|
|
}
|
|
|
|
.btn {
|
|
background-color: $backgroundDark;
|
|
}
|
|
|
|
.btn[disabled] {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
.btn-default {
|
|
color: $textColor !important;
|
|
|
|
&:hover {
|
|
color: #868686;
|
|
}
|
|
}
|
|
|
|
code {
|
|
background-color: $backgroundDark;
|
|
color: #991a3a;
|
|
}
|
|
|
|
hr {
|
|
border-top: 1px solid #868686;
|
|
}
|
|
|
|
input {
|
|
background-color: $backgroundLight;
|
|
}
|
|
|
|
tag-input .tag-input-container input {
|
|
color: $textColor;
|
|
}
|
|
|
|
.form-control {
|
|
background-color: $backgroundLight;
|
|
border-color: #676767;
|
|
color: $textColor;
|
|
}
|
|
|
|
fieldset[disabled] .form-control, .form-control[disabled], .form-control[readonly] {
|
|
background-color: $backgroundDark;
|
|
}
|
|
|
|
.app-configure .app-header-container h1 a {
|
|
color: $textColor;
|
|
}
|
|
|
|
.appstore-item-content {
|
|
background-color: $backgroundDark;
|
|
|
|
&.highlight:hover {
|
|
background-color: #4545459c !important;
|
|
color: white !important;
|
|
}
|
|
}
|
|
|
|
.modal-header {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.modal-footer {
|
|
border-top: none;
|
|
}
|
|
|
|
.navbar-default .navbar-nav > .open > a {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
.dropdown-menu {
|
|
background-color: $backgroundDark;
|
|
}
|
|
|
|
.dropdown-menu > li > a {
|
|
color: $textColor;
|
|
}
|
|
|
|
multiselect .dropdown-toggle:hover {
|
|
background-color: #222;
|
|
}
|
|
|
|
.table-hover > tbody > tr:hover {
|
|
background-color: $backgroundLight;
|
|
color: white;
|
|
}
|
|
|
|
.email-domain-list-item, .email-domain-list-item:hover {
|
|
color: $textColor;
|
|
}
|
|
|
|
.nav-tabs {
|
|
border-bottom: 1px solid $backgroundDark;
|
|
}
|
|
|
|
.nav-tabs > li > a
|
|
.nav-tabs > li > a:focus,
|
|
.nav-tabs > li > a:hover {
|
|
background-color: $backgroundLight;
|
|
border: 1px solid $backgroundDark;
|
|
border-bottom-color: transparent;
|
|
}
|
|
|
|
.nav-tabs > li.active > a,
|
|
.nav-tabs > li.active > a:focus,
|
|
.nav-tabs > li.active > a:hover {
|
|
background-color: $backgroundDark;
|
|
color: $textColor;
|
|
border: 1px solid $backgroundDark;
|
|
}
|
|
|
|
.filemanager {
|
|
.text-editor {
|
|
background-color: $backgroundDark;
|
|
color: $textColor;
|
|
}
|
|
}
|
|
|
|
.has-background {
|
|
|
|
$darkBackgroundColor: #000000e0;
|
|
|
|
.card {
|
|
background-color: $darkBackgroundColor;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.navbar-default {
|
|
background-color: #000000e3;
|
|
}
|
|
|
|
.navbar-collapse.collapse.in {
|
|
background-color: #000000e3;
|
|
}
|
|
|
|
.dropdown-menu {
|
|
background-color: #000000e3;
|
|
}
|
|
|
|
footer {
|
|
background-color: $darkBackgroundColor;
|
|
}
|
|
|
|
.btn-default {
|
|
background-color: $darkBackgroundColor;
|
|
border-color: #868686cf;
|
|
color: white;
|
|
|
|
&:hover {
|
|
color: white;
|
|
border-color: #868686cf;
|
|
}
|
|
}
|
|
}
|
|
}
|