Files

598 lines
10 KiB
CSS

/*
* fruithost | OpenSource Hosting
*
* @author Adrian Preuß
* @version 1.0.0
* @license MIT
*/
/* Animations & Effects */
@keyframes blink {
50% {
visibility: hidden;
}
}
/* Globals */
* {
outline: none !important;
}
body {
font-size: .875rem;
max-height: 100vh;
}
.h-100-head {
height: calc(100% - 50px);
}
.navbar {
background: var(--bs-dark);
}
.sidebar {
z-index: 1000;
min-width: 320px;
}
@media (max-width: 575px) {
.sidebar {
display: none;
}
.sidebar.show {
display: block;
position: fixed;
top: 49px;
bottom: 0px;
max-height: calc(100% - 49px);
}
}
/* Loading / Fetching */
[data-fetching="true"] {
display: flex;
justify-content: center !important;
}
[data-fetching="true"] [role="status"] {
display: block;
width: 5rem;
height: 5rem;
margin: 50px 0;
}
[data-fetching="false"] [role="status"] {
display: none;
}
[data-fetching="true"] .loaded-content {
display: none;
}
[data-fetching="false"] .loaded-content {
display: block;
}
.sidebar .nav-link {
font-weight: 500;
color: var(--bs-dark-text-emphasis);
display: flex;
flex-direction: row;
padding: .2rem 2rem;
white-space: nowrap;
align-items: center;
}
.sidebar .nav-link .bi {
margin-right: 4px;
color: #999;
font-size: 20px;
vertical-align: text-bottom;
}
.sidebar .nav-link.active {
color: var(--bs-primary);
}
.sidebar .nav-link:hover .bi,
.sidebar .nav-link.active .bi {
color: inherit;
}
.sidebar .nav-link:hover .bi {
color: var(--bs-primary);
}
.sidebar-heading {
font-size: .75rem;
text-transform: uppercase;
cursor: pointer;
}
/* Topbar */
.navbar-brand {
padding-top: .75rem;
padding-bottom: .75rem;
font-size: 1rem;
background-color: rgba(0, 0, 0, .25);
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
}
@media (min-width: 575px) {
.navbar-brand {
min-width: 320px !important;
}
}
.navbar-nav {
margin-right: 15px;
}
.nav-account .dropdown-menu {
position: absolute;
right: 0;
left: inherit;
}
.nav-account .picture {
margin-right: 5px;
}
/* Breadcrumb */
.breadcrumb {
font-size: 24px;
margin: 0;
}
.breadcrumb a {
color: inherit;
text-decoration: none;
}
.breadcrumb li.active a {
color: var(--bs-primary);
}
/* Welcome */
.welcome .bi {
font-size: 24px;
vertical-align: sub;
}
.welcome a {
text-decoration: none;
vertical-align: baseline;
}
.card-body .nav-pills .nav-item {
margin: 0 5px;
border-radius: var(--bs-nav-pills-border-radius);
background: var(--bs-card-cap-bg);
}
.card-body .nav-pills .nav-item:hover {
background: var(--bs-card-border-color);
}
.card-body .nav-pills .nav-item .nav-link {
color: inherit;
}
.card-body .nav-pills .nav-item .nav-link:hover {
color: var(--bs-nav-link-color);
}
/* Jumbotron */
.jumbotron .bi {
font-size: 100px;
}
.jumbotron .bi.small {
font-size: 22px;
}
.jumbotron .btn-lg {
padding: 15px 50px;
}
/* Nav Badges */
.nav-link .badge {
padding: 10px 7px;
line-height: 0;
margin: -5px 0 -1px 5px;
position: relative;
}
main.frame {
padding: 0px !important;
margin: 0px !important;
}
main iframe {
width: 100%;
border: none;
display: block;
height: 100%;
top: 0;
left: 0;
right: 0;
height: calc(100vh - 48px);
overflow-x: hidden;
overflow-y: auto;
}
/* Module Icons */
img.module-icon {
max-width: 20px;
filter: invert(1) contrast(0);
}
img.module-icon path {
fill: red;
}
/* Forms */
.form-group {
margin-bottom: 1rem !important;
}
/* Logfile Viewer */
.filetree {
list-style: none;
display: block;
padding: 0;
margin: 0;
}
.filetree li.folder {
display: block;
}
.filetree li.folder a {
display: flex;
text-decoration: none;
color: #999999;
}
.filetree li.folder a i.bi {
margin: 0 5px 0 0;
color: #ff9b00;
text-shadow: 1px 1px 0 #000000;
}
.filetree li.folder ul.files {
list-style: none;
padding: 0;
margin: 0;
}
.filetree li.folder ul.files li.file {
display: flex;
margin: -6px 0 -3px 0;
}
.filetree li.folder ul.files li.file:before {
content: "├";
display: block;
position: relative;
font-size: 18px;
margin: 0 5px 0 5px;
}
.filetree li.folder ul.files li.file:last-child:before {
content: "└";
}
.filetree li.folder ul.files li.file a {
display: flex;
text-decoration: none;
color: #444444;
padding: 4px 0 0 0;
}
.filetree li.folder ul.files li.file a:hover {
color: var(--primary);
cursor: pointer;
}
.filetree li.folder ul.files li.file a i.bi {
margin: 0 5px 0 0;
color: #DDDDDD;
font-size: 18px;
text-shadow: 1px 1px 0 #444444;
}
.logfile-container {
overflow: auto;
width: auto;
height: auto;
}
.logfile {
font-size: 12px;
padding: 2px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.logfile::before {
display: inline-block;
content: attr(data-number);
color: #555555;
background: #DDDDDD;
border-right: 1px solid #555555;
margin: -2px 10px -2px -5px;
padding: 2px 5px;
min-width: 45px;
text-align: right;
}
.logfile:hover {
background: var(--light) !important;
color: var(--dark) !important;
}
.logfile:hover::before {
color: var(--dark);
background: var(--light);
border-right: 1px solid var(--dark);
}
.logfile.log-info {
color: var(--info);
background: #f2fafb;
}
.logfile.log-warning {
color: var(--warning);
background: #fbf7eb;
}
.logfile.log-danger {
color: var(--danger);
background: #ffdadd;
}
.logfile.log-success {
color: var(--success);
background: #e1ffe9;
}
article.editor {
display: flex;
flex-direction: column;
}
article.editor div.content div.line {
display: flex;
flex-direction: row;
}
article.editor div.content div.line div.number {
flex: 0;
text-align: right;
background: var(--bs-tertiary-bg);
color: var(--bs-emphasis-color);
padding: 5px;
}
article.editor div.content div.line div.data {
flex: 1;
background: var(--bs-light-emphasis);
padding: 5px;
}
[data-percentage] {
position: relative;
}
[data-percentage]:after {
content: attr(data-percentage);
display: block;
color: var(--light);
position: absolute;
text-align: center;
font-size: 10px;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.module-actions {
visibility: hidden;
}
tr:hover .module-actions {
visibility: visible;
}
.module-badge {
opacity: 0.5;
height: 16px;
width: 16px;
margin-top: 3px;
}
tr:hover .module-badge {
opacity: 1;
}
/* Logfile Viewer */
.contentbar {
position: fixed;
top: 0;
bottom: 0;
right: 0;
z-index: 100;
padding: 48px 0 0;
width: 280px;
box-shadow: inset 1px 0 0 rgba(0, 0, 0, .1);
overflow: auto;
}
.left .contentbar {
right: unset;
left: calc(280px + 39px);
}
ul.tree {
list-style-type: none;
margin: 0;
padding: 0;
}
ul.tree ul {
list-style-type: none;
padding: 0;
margin: 0 0 0 20px;
flex-direction: column;
}
ul.tree li.directory {
color: green;
}
ul.tree li.directory.empty {
color: red;
}
ul.tree li.file {
color: var(--bs-text-primary);
}
.caret {
cursor: pointer;
background: var(--bs-dark-bg-subtle);
display: flex;
border-radius: 5px;
margin: 1px 5px;
}
.caret i {
flex: 1;
padding: 10px 10px 10px 0;
font-style: normal;
color: var(--bs-dark-text-emphasis);
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.caret::before {
font-family: 'bootstrap-icons';
color: black;
display: inline-block;
margin-right: 6px;
font-size: 24px;
flex: 0;
padding: 0px 0px 0px 8px;
}
.directory .caret::before {
content: "\F3D9";
color: #f3c36b;
}
.directory.empty .caret::before {
content: "\F6B6";
color: #800000;
}
.directory .caret-down::before {
content: "\F3D8";
color: #007bff;
}
.file .caret::before {
content: "\F38B";
color: var(--bs-dark-text-emphasis);
}
.file .caret-down::before {
content: "?";
}
.nested {
display: none;
}
li.directory::before,
li.empty::before {
content: "\F132";
position: absolute;
font-family: 'bootstrap-icons';
font-size: 20px;
color: #d8d8d8;
margin: 5px 0 0 -16px;
}
ul.tree > li:first-child::before {
content: "";
}
li.empty::before {
color: rgb(128, 0, 0, 0.5);
}
.active {
display: flex;
}
.contentbar-content {
margin: 0 280px 0 0;
max-width: 100vw;
overflow: hidden;
}
.contentbar-content.left {
margin: 0 0 0 280px;
}
.page-header.left {
margin: 0 0 0 280px;
}
/* Tabs */
[aria-orientation="vertical"] {
border-bottom: 0;
}
[aria-orientation="vertical"] .nav-item {
border: none;
}
[aria-orientation="vertical"] .nav-link {
width: 100%;
text-align: left;
border: 1px solid transparent;
border-radius: 4px 0 0 4px;
background: transparent;
color: var(--bs-emphasis-color);
}
[aria-orientation="vertical"] .nav-link:hover {
border-color: transparent var(--bs-primary) transparent transparent;
background: var(--bs-primary);
color: var(--bs-emphasis-color);
width: calc(100% + 12px);
}
[aria-orientation="vertical"] .nav-link.active, [aria-orientation="vertical"] .nav-link.active:hover {
width: calc(100% + 13px);
background: var(--bs-body-bg);
font-weight: bold;
border-color: var(--bs-border-color) var(--bs-body-bg) var(--bs-border-color) var(--bs-border-color);
}
.check-group .form-check {
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0;
}