OctoPrint/octoprint/static/css/octoprint.less

611 lines
11 KiB
Plaintext

/** Top bar */
body {
padding-top: 60px;
}
.navbar-inner-text (@base) {
text-shadow: 0 1px 0 contrast(@base, lighten(@base, 15%), darken(@base, 15%));
color: @text-color;
@caret-color: average(@base, @text-color);
@caret-hover-color: average(@caret-color, @text-color);
.caret {
border-bottom-color: @caret-color;
border-top-color: @caret-color;
}
&:hover .caret, &:focus .caret {
border-bottom-color: @caret-hover-color;
border-top-color: @caret-hover-color;
}
}
.brand (@color, @dark, @light) when (@color = @dark) {
span {
background-image: url(../img/tentacle-20x20.png);
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
background-image: url(../img/tentacle-20x20@2x.png);
}
}
}
.brand (@color, @dark, @light) when (@color = @light) {
span {
background-image: url(../img/tentacle-20x20-light.png);
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
background-image: url(../img/tentacle-20x20-light@2x.png);
}
}
}
.navbar-inner-color (@base) {
@top: lighten(@base, 25%);
@bottom: darken(@base, 15%);
@text-color-light: #f2f2f2;
@text-color-dark: #333333;
@text-color: contrast(@base, @text-color-dark, @text-color-light);
background-color: @base; /* fallback color if gradients are not supported */
background-image: -webkit-linear-gradient(top, @top, @bottom); /* For Chrome and Safari */
background-image: -moz-linear-gradient(top, @top, @bottom); /* For old Fx (3.6 to 15) */
background-image: -ms-linear-gradient(top, @top, @bottom); /* For pre-releases of IE 10*/
background-image: -o-linear-gradient(top, @top, @bottom); /* For old Opera (11.1 to 12.0) */
background-image: linear-gradient(to bottom, @top, @bottom); /* Standard syntax; must be last */
.brand, .nav>li>a {
.navbar-inner-text(@base);
}
.brand {
.brand(@text-color, @text-color-dark, @text-color-light);
}
.nav {
li.dropdown.open>.dropdown-toggle, li.dropdown.active>.dropdown-toggle, li.dropdown.open.active>.dropdown-toggle {
// invert for dropdown
background-color: @base; /* fallback color if gradients are not supported */
background-image: -webkit-linear-gradient(top, @bottom, @top); /* For Chrome and Safari */
background-image: -moz-linear-gradient(top, @bottom, @top); /* For old Fx (3.6 to 15) */
background-image: -ms-linear-gradient(top, @bottom, @top); /* For pre-releases of IE 10*/
background-image: -o-linear-gradient(top, @bottom, @top); /* For old Opera (11.1 to 12.0) */
background-image: linear-gradient(to bottom, @bottom, @top); /* Standard syntax; must be last */
}
}
}
#navbar .navbar-inner {
@base: #F2F2F2;
.navbar-inner-color(@base);
&.red {
@base: #F22828;
.navbar-inner-color(@base);
}
&.orange {
@base: #F27728;
.navbar-inner-color(@base);
}
&.yellow {
@base: #F2DE28;
.navbar-inner-color(@base);
}
&.green {
@base: #77FF28;
.navbar-inner-color(@base);
}
&.blue {
@base: #2877FF;
.navbar-inner-color(@base);
}
&.violet {
@base: #7728FF;
.navbar-inner-color(@base);
}
&.black {
@base: #383838;
.navbar-inner-color(@base);
}
.brand span {
background-size: 20px 20px;
background-position: left center;
padding-left: 24px;
background-repeat: no-repeat;
}
}
/** OctoPrint application tabs */
.octoprint-container {
.tab-content {
padding: 9px 15px;
border-left: 1px solid #DDD;
border-right: 1px solid #DDD;
border-bottom: 1px solid #DDD;
-webkit-border-bottom-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-bottomright: 4px;
-moz-border-radius-bottomleft: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
.nav {
margin-bottom: 0px;
}
.tab-content h1 {
display: block;
width: 100%;
padding: 0;
margin-bottom: 20px;
font-size: 21px;
line-height: 40px;
color: #333;
border: 0;
border-bottom: 1px solid #E5E5E5;
font-weight: normal;
}
}
/** Accordions */
.octoprint-container {
.accordion-heading {
.accordion-heading-button {
float: right;
a {
display: inline-block;
padding: 8px 15px;
font-size: 14px;
line-height: 20px;
color: #000;
text-decoration: none;
background: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
}
a.accordion-toggle {
display: inline-block;
}
[class^="icon-"],
[class*=" icon-"] {
color: #000;
}
}
}
.print-control .btn {
padding-left: 4px;
padding-right: 4px;
}
.upload-buttons .btn {
margin-right: 0;
}
/** Tables */
table {
table-layout: fixed;
th, td {
overflow: hidden;
// gcode files
&.gcode_files_name {
text-overflow: ellipsis;
text-align: left;
}
&.gcode_files_size {
text-align: right;
width: 55px;
}
&.gcode_files_action {
text-align: center;
width: 70px;
a {
text-decoration: none;
color: #000;
&.disabled {
color: #ccc;
cursor: default;
}
}
}
// timelapse files
&.timelapse_files_name {
text-overflow: ellipsis;
text-align: left;
}
&.timelapse_files_size {
text-align: right;
width: 55px;
}
&.timelapse_files_action {
text-align: center;
width: 45px;
a {
text-decoration: none;
color: #000;
&.disabled {
color: #ccc;
cursor: default;
}
}
}
// user settings
&.settings_users_name {
text-overflow: ellipsis;
text-align: left;
}
&.settings_users_active, &.settings_users_admin {
text-align: center;
width: 55px;
}
&.settings_users_actions {
text-align: center;
width: 60px;
a {
text-decoration: none;
color: #000;
&.disabled {
color: #ccc;
cursor: default;
}
}
}
}
}
/** Temperature tab */
#temperature-graph {
height: 350px;
width: 100%;
background-image: url("/static/img/graph-background.png");
background-position: center;
background-repeat: no-repeat;
}
.tab-content, .tab-pane {
overflow: visible;
}
.tempInput {
width: 50px;
}
#temp_newTemp, #temp_newBedTemp, #speed_innerWall, #speed_outerWall, #speed_fill, #speed_support, #webcam_timelapse_interval {
text-align: right;
}
ul.dropdown-menu li a {
cursor: pointer;
}
/** Connection settings */
#connection_ports, #connection_baudrates {
width: 100%;
}
/** Offline overlay */
#offline_overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10000;
display: none;
}
#offline_overlay_background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
#offline_overlay_wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding-top: 60px;
.container {
margin: auto;
}
}
/** Webcam */
#webcam_container {
width: 100%;
.flipH {
-webkit-transform: scaleX(-1);
-moz-transform: scaleX(-1);
}
.flipV {
-webkit-transform: scaleY(-1);
-moz-transform: scaleY(-1);
}
.flipH.flipV {
-webkit-transform: scaleX(-1) scaleY(-1);
-moz-transform: scaleX(-1) scaleY(-1);
}
}
/** GCODE file manager */
#files {
.popover {
font-size: 85%;
p:last-child {
margin-bottom: 0;
}
}
}
/** Control tab */
#control {
overflow: hidden;
.jog-panel {
float: left;
margin-right: 19px;
}
h1 {
text-align: left;
}
.jog-panel > div {
text-align: center;
}
.jog-panel > div.distance {
text-align: left;
}
.box {
width: 30px;
height: 30px;
margin-right: 10px;
margin-bottom: 10px;
padding-left: 8px;
}
.control-box {
display: block;
height: 30px;
margin-bottom: 10px;
}
.btn-group {
margin-bottom: 10px;
}
.btn-group > .btn {
width: 43px;
padding: 3px 0;
height: 30px;
}
}
/** Terminal output */
#term {
#terminal-output {
min-height: 340px;
}
}
/** Settings dialog */
#settings_dialog {
}
/** Footer */
.footer {
ul {
margin: 0;
li {
&:first-child {
margin-left: 0;
}
display: inline;
margin-left: 1em;
font-size: 85%;
a {
color: #555;
}
}
}
}
/** General helper classes */
.text-right {
text-align: right;
}
.overflow_visible {
overflow: visible !important;
}
#drop_overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10000;
display: none;
&.in {
display: block;
}
#drop_overlay_background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
#drop_overlay_wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding-top: 60px;
@dropzone_width: 400px;
@dropzone_height: 400px;
@dropzone_distance: 50px;
@dropzone_border: 2px;
#drop, #drop_background {
position: absolute;
top: 50%;
left: 50%;
margin-left: -1 * @dropzone_width / 2;
margin-top: -1 * @dropzone_height / 2;
}
#drop_locally, #drop_locally_background {
position: absolute;
top: 50%;
left: 50%;
margin-left: -1 * @dropzone_width - @dropzone_distance / 2;
margin-top: -1 * @dropzone_height / 2;
}
#drop_sd, #drop_sd_background {
position: absolute;
top: 50%;
left: 50%;
margin-left: @dropzone_distance / 2;
margin-top: -1 * @dropzone_height / 2;
}
.dropzone {
width: @dropzone_width + 2 * @dropzone_border;
height: @dropzone_height + 2 * @dropzone_border;
z-index: 10001;
color: #ffffff;
font-size: 30px;
i {
font-size: 50px;
}
.centered {
display: table-cell;
text-align: center;
vertical-align: middle;
width: @dropzone_width;
height: @dropzone_height;
line-height: 40px;
filter:alpha(opacity=100);
-moz-opacity:1.0;
-khtml-opacity: 1.0;
opacity: 1.0;
}
}
.dropzone_background {
width: @dropzone_width;
height: @dropzone_height;
border: 2px dashed #eeeeee;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
background-color: #000000;
filter:alpha(opacity=25);
-moz-opacity:0.25;
-khtml-opacity: 0.25;
opacity: 0.25;
&.hover {
background-color: #000000;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
&.fade {
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
opacity: 1;
}
}
}
}
.icon-sd-black-14 {
background: url("../img/icon-sd-black-14.png") 0 3px no-repeat;
width: 11px;
height: 17px;
}