This avoids hard-coding layout information in the JavaScript code. It also opens up possibilities for more control in the CSS, e.g. for animation.
485 lines
12 KiB
CSS
485 lines
12 KiB
CSS
/*
|
|
* noVNC base CSS
|
|
* Copyright (C) 2012 Joel Martin
|
|
* Copyright (C) 2016 Samuel Mannehed for Cendio AB
|
|
* Copyright (C) 2016 Pierre Ossman for Cendio AB
|
|
* noVNC is licensed under the MPL 2.0 (see LICENSE.txt)
|
|
* This file is licensed under the 2-Clause BSD license (see LICENSE.txt).
|
|
*/
|
|
|
|
body {
|
|
margin:0;
|
|
padding:0;
|
|
font-family: Helvetica;
|
|
/*Background image with light grey curve.*/
|
|
background-color:#494949;
|
|
background-repeat:no-repeat;
|
|
background-position:right bottom;
|
|
height:100%;
|
|
}
|
|
|
|
html {
|
|
height:100%;
|
|
}
|
|
|
|
#noVNC_buttons {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* ----------------------------------------
|
|
* Control Bar
|
|
* ----------------------------------------
|
|
*/
|
|
|
|
#noVNC_control_bar {
|
|
position: fixed;
|
|
display: block;
|
|
height: 36px;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
z-index: 200;
|
|
}
|
|
|
|
/* General button style */
|
|
.noVNC_status_button {
|
|
padding: 4px 4px;
|
|
vertical-align: middle;
|
|
border:1px solid #869dbc;
|
|
-webkit-border-radius: 6px;
|
|
-moz-border-radius: 6px;
|
|
border-radius: 6px;
|
|
background: #b2bdcd; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #b2bdcd 0%, #899cb3 49%, #7e93af 51%, #6e84a3 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b2bdcd), color-stop(49%,#899cb3), color-stop(51%,#7e93af), color-stop(100%,#6e84a3)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Opera11.10+ */
|
|
background: -ms-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* IE10+ */
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b2bdcd', endColorstr='#6e84a3',GradientType=0 ); /* IE6-9 */
|
|
background: linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* W3C */
|
|
/*box-shadow:inset 0.4px 0.4px 0.4px #000000;*/
|
|
font-size: 12px;
|
|
}
|
|
.noVNC_status_button_selected {
|
|
padding: 4px 4px;
|
|
vertical-align: middle;
|
|
border:1px solid #4366a9;
|
|
-webkit-border-radius: 6px;
|
|
-moz-border-radius: 6px;
|
|
background: #779ced; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #779ced 0%, #3970e0 49%, #2160dd 51%, #2463df 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#779ced), color-stop(49%,#3970e0), color-stop(51%,#2160dd), color-stop(100%,#2463df)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #779ced 0%,#3970e0 49%,#2160dd 51%,#2463df 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #779ced 0%,#3970e0 49%,#2160dd 51%,#2463df 100%); /* Opera11.10+ */
|
|
background: -ms-linear-gradient(top, #779ced 0%,#3970e0 49%,#2160dd 51%,#2463df 100%); /* IE10+ */
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#779ced', endColorstr='#2463df',GradientType=0 ); /* IE6-9 */
|
|
background: linear-gradient(top, #779ced 0%,#3970e0 49%,#2160dd 51%,#2463df 100%); /* W3C */
|
|
/*box-shadow:inset 0.4px 0.4px 0.4px #000000;*/
|
|
}
|
|
.noVNC_status_button:disabled {
|
|
opacity: 0.4;
|
|
}
|
|
.noVNC_status_button.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Panels */
|
|
.noVNC_panel {
|
|
display: none;
|
|
position: relative;
|
|
padding: 15px;
|
|
color: #fff;
|
|
background: #fff; /* default background for browsers without gradient support */
|
|
/* css3 */
|
|
/*background: -webkit-gradient(linear, 0 0, 0 100%, from(#2e88c4), to(#075698));
|
|
background: -moz-linear-gradient(#2e88c4, #075698);
|
|
background: -o-linear-gradient(#2e88c4, #075698);
|
|
background: linear-gradient(#2e88c4, #075698);*/
|
|
-webkit-border-radius: 10px;
|
|
-moz-border-radius: 10px;
|
|
border-radius: 10px;
|
|
color: #000;
|
|
border: 2px solid #E0E0E0;
|
|
}
|
|
.noVNC_panel:after {
|
|
content: "";
|
|
position: absolute;
|
|
top: -40px; /* value = - border-top-width - border-bottom-width */
|
|
right: 50px; /* controls horizontal position */
|
|
border-style: solid;
|
|
border-width: 40px 40px 0 0; /* vary these values to change the angle of the vertex */
|
|
border-color: transparent #E0E0E0;
|
|
}
|
|
.noVNC_panel.noVNC_open {
|
|
display: block;
|
|
}
|
|
|
|
/* noVNC Touch Device only buttons */
|
|
#noVNC_mobile_buttons {
|
|
display: inline;
|
|
}
|
|
#noVNC_mobile_buttons.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
|
|
#noVNC_keyboardinput {
|
|
width: 1px;
|
|
height: 1px;
|
|
background-color: #fff;
|
|
color: #fff;
|
|
border: 0;
|
|
position: relative;
|
|
left: -40px;
|
|
z-index: -1;
|
|
ime-mode: disabled;
|
|
}
|
|
|
|
#noVNC_toggleExtraKeys_button {
|
|
display: none;
|
|
}
|
|
|
|
#noVNC_extra_keys {
|
|
display: inline;
|
|
list-style-type: none;
|
|
padding: 0px;
|
|
margin: 0px;
|
|
position: relative;
|
|
}
|
|
#noVNC_extra_keys.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
#noVNC_toggleCtrl_button {
|
|
display: inline;
|
|
}
|
|
#noVNC_toggleAlt_button {
|
|
display: inline;
|
|
}
|
|
#noVNC_sendTab_button {
|
|
display: inline;
|
|
}
|
|
#noVNC_sendEsc_button {
|
|
display: inline;
|
|
}
|
|
#noVNC_modifiers {
|
|
display: inline;
|
|
}
|
|
|
|
/* Left side buttons */
|
|
.noVNC_buttons_left {
|
|
float: left;
|
|
z-index: 1;
|
|
position: relative;
|
|
padding-left: 10px;
|
|
}
|
|
|
|
/* Center status display */
|
|
#noVNC_status {
|
|
font-size: 12px;
|
|
padding-top: 4px;
|
|
height:32px;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
color: #fff;
|
|
z-index: 0;
|
|
position: absolute;
|
|
width: 100%;
|
|
margin-left: 0px;
|
|
}
|
|
.noVNC_status_normal {
|
|
background: #b2bdcd; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #b2bdcd 0%, #899cb3 49%, #7e93af 51%, #6e84a3 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b2bdcd), color-stop(49%,#899cb3), color-stop(51%,#7e93af), color-stop(100%,#6e84a3)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Opera11.10+ */
|
|
background: -ms-linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* IE10+ */
|
|
background: linear-gradient(top, #b2bdcd 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* W3C */
|
|
}
|
|
.noVNC_status_error {
|
|
background: #f04040; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #f04040 0%, #899cb3 49%, #7e93af 51%, #6e84a3 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f04040), color-stop(49%,#899cb3), color-stop(51%,#7e93af), color-stop(100%,#6e84a3)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #f04040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #f04040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Opera11.10+ */
|
|
background: -ms-linear-gradient(top, #f04040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* IE10+ */
|
|
background: linear-gradient(top, #f04040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* W3C */
|
|
}
|
|
.noVNC_status_warn {
|
|
background: #f0f040; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #f0f040 0%, #899cb3 49%, #7e93af 51%, #6e84a3 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f040), color-stop(49%,#899cb3), color-stop(51%,#7e93af), color-stop(100%,#6e84a3)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #f0f040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #f0f040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* Opera11.10+ */
|
|
background: -ms-linear-gradient(top, #f0f040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* IE10+ */
|
|
background: linear-gradient(top, #f0f040 0%,#899cb3 49%,#7e93af 51%,#6e84a3 100%); /* W3C */
|
|
}
|
|
|
|
/* Right side buttons */
|
|
.noVNC_buttons_right {
|
|
float: right;
|
|
right: 0px;
|
|
z-index: 2;
|
|
position: absolute;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
/* XVP Shutdown/Reboot */
|
|
#noVNC_xvp {
|
|
top: 73px;
|
|
right: 30px;
|
|
position: fixed;
|
|
}
|
|
#noVNC_xvp:after {
|
|
right: 125px;
|
|
}
|
|
#noVNC_xvp_buttons {
|
|
display: none;
|
|
}
|
|
|
|
/* Clipboard */
|
|
#noVNC_clipboard {
|
|
top: 73px;
|
|
right: 30px;
|
|
position: fixed;
|
|
}
|
|
#noVNC_clipboard:after {
|
|
right: 85px;
|
|
}
|
|
#noVNC_clipboard_text {
|
|
width: 500px;
|
|
}
|
|
#noVNC_clipboard_clear_button {
|
|
float: right;
|
|
}
|
|
|
|
/* Settings */
|
|
#noVNC_settings {
|
|
top: 73px;
|
|
right: 20px;
|
|
position: fixed;
|
|
}
|
|
#noVNC_settings ul {
|
|
list-style: none;
|
|
margin: 3px;
|
|
padding: 0px;
|
|
}
|
|
#noVNC_setting_path {
|
|
width: 100px;
|
|
}
|
|
#noVNC_settings_apply {
|
|
float: right;
|
|
}
|
|
|
|
/* Connection Controls */
|
|
#noVNC_controls {
|
|
top: 73px;
|
|
right: 12px;
|
|
position: fixed;
|
|
}
|
|
#noVNC_controls:after {
|
|
right:15px;
|
|
}
|
|
#noVNC_controls ul {
|
|
list-style: none;
|
|
margin: 0px;
|
|
padding: 0px;
|
|
}
|
|
#noVNC_controls li {
|
|
padding-bottom:8px;
|
|
}
|
|
#noVNC_setting_host {
|
|
width:150px;
|
|
}
|
|
#noVNC_setting_port {
|
|
width: 80px;
|
|
}
|
|
#noVNC_setting_password {
|
|
width: 150px;
|
|
}
|
|
#noVNC_connect_button {
|
|
width: 110px;
|
|
float: right;
|
|
}
|
|
|
|
/* Popup Status */
|
|
#noVNC_popup_status {
|
|
position: fixed;
|
|
z-index: 1;
|
|
|
|
margin: 15px;
|
|
top: 60px;
|
|
padding: 15px;
|
|
width: auto;
|
|
|
|
text-align: center;
|
|
font-weight: bold;
|
|
word-wrap: break-word;
|
|
color: #fff;
|
|
background: rgba(0,0,0,0.65);
|
|
|
|
-webkit-border-radius: 10px;
|
|
-moz-border-radius: 10px;
|
|
border-radius: 10px;
|
|
}
|
|
#noVNC_popup_status.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* ----------------------------------------
|
|
* Main Area
|
|
* ----------------------------------------
|
|
*/
|
|
|
|
#noVNC_container {
|
|
display: table;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #313131;
|
|
border-bottom-right-radius: 800px 600px;
|
|
/*border-top-left-radius: 800px 600px;*/
|
|
}
|
|
|
|
/* HTML5 Canvas */
|
|
#noVNC_screen {
|
|
position: absolute;
|
|
margin: 0px;
|
|
padding: 0px;
|
|
bottom: 0px;
|
|
top: 36px; /* the height of the control bar */
|
|
left: 0px;
|
|
right: 0px;
|
|
width: auto;
|
|
height: auto;
|
|
}
|
|
#noVNC_screen.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* Do not set width/height for VNC_canvas or incorrect
|
|
* scaling will occur. Canvas size depends on remote VNC
|
|
* settings and noVNC settings. */
|
|
#noVNC_canvas {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/*Default noVNC logo.*/
|
|
/* From: http://fonts.googleapis.com/css?family=Orbitron:700 */
|
|
@font-face {
|
|
font-family: 'Orbitron';
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
src: local('?'), url('Orbitron700.woff') format('woff'),
|
|
url('Orbitron700.ttf') format('truetype');
|
|
}
|
|
|
|
#noVNC_logo {
|
|
margin-top: 170px;
|
|
margin-left: 10px;
|
|
color:yellow;
|
|
text-align:left;
|
|
font-family: 'Orbitron', 'OrbitronTTF', sans-serif;
|
|
font-size: 180px;
|
|
line-height:90%;
|
|
text-shadow:
|
|
5px 5px 0 #000,
|
|
-1px -1px 0 #000,
|
|
1px -1px 0 #000,
|
|
-1px 1px 0 #000,
|
|
1px 1px 0 #000;
|
|
}
|
|
#noVNC_logo.noVNC_hidden {
|
|
display: none;
|
|
}
|
|
|
|
#noVNC_logo span{
|
|
color:green;
|
|
}
|
|
|
|
/* ----------------------------------------
|
|
* Media sizing
|
|
* ----------------------------------------
|
|
*/
|
|
|
|
/* left-align the status text on lower resolutions */
|
|
@media screen and (max-width: 800px){
|
|
#noVNC_status {
|
|
z-index: 1;
|
|
position: relative;
|
|
width: auto;
|
|
float: left;
|
|
margin-left: 4px;
|
|
}
|
|
}
|
|
|
|
@media screen and (max-width: 640px){
|
|
#noVNC_clipboard_text {
|
|
width: 410px;
|
|
}
|
|
#noVNC_logo {
|
|
font-size: 150px;
|
|
}
|
|
.noVNC_status_button {
|
|
font-size: 10px;
|
|
}
|
|
.noVNC_buttons_left {
|
|
padding-left: 0px;
|
|
}
|
|
.noVNC_buttons_right {
|
|
padding-right: 0px;
|
|
}
|
|
/* collapse the extra keys on lower resolutions */
|
|
#noVNC_toggleExtraKeys_button {
|
|
display: inline;
|
|
}
|
|
#noVNC_modifiers {
|
|
display: none;
|
|
}
|
|
#noVNC_modifiers.noVNC_open {
|
|
display: inline;
|
|
}
|
|
#noVNC_toggleCtrl_button {
|
|
position: absolute;
|
|
top: 30px;
|
|
left: 0px;
|
|
}
|
|
#noVNC_toggleAlt_button {
|
|
position: absolute;
|
|
top: 65px;
|
|
left: 0px;
|
|
}
|
|
#noVNC_sendTab_button {
|
|
position: absolute;
|
|
top: 100px;
|
|
left: 0px;
|
|
}
|
|
#noVNC_sendEsc_button {
|
|
position: absolute;
|
|
top: 135px;
|
|
left: 0px;
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: 321px) and (max-width: 480px) {
|
|
#noVNC_clipboard_text {
|
|
width: 250px;
|
|
}
|
|
#noVNC_logo {
|
|
font-size: 110px;
|
|
}
|
|
}
|
|
|
|
@media screen and (max-width: 320px) {
|
|
.noVNC_status_button {
|
|
font-size: 9px;
|
|
}
|
|
#noVNC_clipboard_text {
|
|
width: 220px;
|
|
}
|
|
#noVNC_logo {
|
|
font-size: 90px;
|
|
}
|
|
}
|