478 lines
8.5 KiB
CSS
478 lines
8.5 KiB
CSS
|
|
/*
|
|
* Guacamole - Clientless Remote Desktop
|
|
* Copyright (C) 2010 Michael Jumper
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
body {
|
|
background: black;
|
|
font-family: FreeSans, Helvetica, Arial, sans-serif;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
img {
|
|
border: none;
|
|
}
|
|
|
|
.software-cursor {
|
|
cursor: url('../images/mouse/dot.gif'),url('../images/mouse/blank.cur'),default;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.guac-error .software-cursor {
|
|
cursor: default;
|
|
}
|
|
|
|
* {
|
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
|
}
|
|
|
|
.event-target {
|
|
position: fixed;
|
|
opacity: 0;
|
|
}
|
|
|
|
/* Dialogs */
|
|
|
|
div.dialogOuter {
|
|
display: table;
|
|
height: 100%;
|
|
width: 100%;
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
background: rgba(0, 0, 0, 0.75);
|
|
}
|
|
|
|
div.dialogMiddle {
|
|
width: 100%;
|
|
text-align: center;
|
|
display: table-cell;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
button {
|
|
|
|
border-style: solid;
|
|
border-width: 1px;
|
|
|
|
padding: 0.25em;
|
|
padding-right: 1em;
|
|
padding-left: 1em;
|
|
|
|
}
|
|
|
|
button:active {
|
|
|
|
padding-top: 0.35em;
|
|
padding-left: 1.1em;
|
|
|
|
padding-bottom: 0.15em;
|
|
padding-right: 0.9em;
|
|
|
|
}
|
|
|
|
button#reconnect {
|
|
display: none;
|
|
}
|
|
|
|
.guac-error button#reconnect {
|
|
display: inline;
|
|
|
|
background: #200;
|
|
border-color: #822;
|
|
color: #944;
|
|
}
|
|
|
|
.guac-error button#reconnect:hover {
|
|
background: #822;
|
|
border-color: #B33;
|
|
color: black;
|
|
}
|
|
|
|
|
|
div.dialog p {
|
|
margin: 0;
|
|
}
|
|
|
|
div.displayOuter {
|
|
height: 100%;
|
|
width: 100%;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
display: table;
|
|
}
|
|
|
|
div.displayMiddle {
|
|
width: 100%;
|
|
display: table-cell;
|
|
vertical-align: middle;
|
|
text-align: center;
|
|
}
|
|
|
|
div#display * {
|
|
position: relative;
|
|
}
|
|
|
|
div#display > * {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
div.magnifier-background {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 1;
|
|
overflow: hidden;
|
|
}
|
|
|
|
div.magnifier {
|
|
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.75);
|
|
width: 50%;
|
|
height: 50%;
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
.pan-overlay,
|
|
.type-overlay {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 1;
|
|
}
|
|
|
|
.pan-overlay .indicator {
|
|
position: fixed;
|
|
background-size: 32px 32px;
|
|
-moz-background-size: 32px 32px;
|
|
-webkit-background-size: 32px 32px;
|
|
-khtml-background-size: 32px 32px;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.pan-overlay .indicator.up {
|
|
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 32px;
|
|
|
|
background-image: url('../images/arrows/arrows-u.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.down {
|
|
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 32px;
|
|
|
|
background-image: url('../images/arrows/arrows-d.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.left {
|
|
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 32px;
|
|
|
|
background-image: url('../images/arrows/arrows-l.png');
|
|
|
|
}
|
|
|
|
.pan-overlay .indicator.right {
|
|
|
|
top: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
width: 32px;
|
|
|
|
background-image: url('../images/arrows/arrows-r.png');
|
|
|
|
}
|
|
|
|
/* Viewport Clone */
|
|
|
|
div#viewportClone {
|
|
display: table;
|
|
height: 100%;
|
|
width: 100%;
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
visibility: hidden;
|
|
}
|
|
|
|
@keyframes show-dialog {
|
|
0% {transform: scale(0.75); }
|
|
100% {transform: scale(1); }
|
|
}
|
|
|
|
@-webkit-keyframes show-dialog {
|
|
0% {-webkit-transform: scale(0.75); }
|
|
100% {-webkit-transform: scale(1); }
|
|
}
|
|
|
|
.dialog {
|
|
|
|
animation-name: show-dialog;
|
|
animation-timing-function: linear;
|
|
animation-duration: 0.125s;
|
|
-webkit-animation-name: show-dialog;
|
|
-webkit-animation-timing-function: linear;
|
|
-webkit-animation-duration: 0.125s;
|
|
|
|
max-width: 75%;
|
|
max-height: none;
|
|
width: 4in;
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
|
|
padding: 0.5em;
|
|
text-align: left;
|
|
|
|
}
|
|
|
|
.guac-error .dialog {
|
|
background: #FDD;
|
|
border: 1px solid #964040;
|
|
}
|
|
|
|
.dialog .title {
|
|
font-size: 1.1em;
|
|
font-weight: bold;
|
|
border-bottom: 1px solid black;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.dialog .status {
|
|
padding: 0.5em;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
p.hint {
|
|
|
|
border: 0.25em solid rgba(255, 255, 255, 0.25);
|
|
background: black;
|
|
opacity: 0.75;
|
|
|
|
color: white;
|
|
|
|
max-width: 10em;
|
|
padding: 1em;
|
|
margin: 1em;
|
|
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
|
|
box-shadow: 0.25em 0.25em 0.25em rgba(0, 0, 0, 0.75);
|
|
|
|
}
|
|
|
|
#notificationArea {
|
|
position: fixed;
|
|
right: 0.5em;
|
|
bottom: 0.5em;
|
|
max-width: 25%;
|
|
min-width: 10em;
|
|
}
|
|
|
|
.notification {
|
|
|
|
font-size: 0.7em;
|
|
text-align: center;
|
|
|
|
border: 1px solid rgba(0, 0, 0, 0.75);
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
background: white;
|
|
|
|
color: black;
|
|
|
|
padding: 0.5em;
|
|
margin: 1em;
|
|
overflow: hidden;
|
|
|
|
box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.25);
|
|
|
|
}
|
|
|
|
.notification div {
|
|
display: inline-block;
|
|
text-align: left;
|
|
}
|
|
|
|
.notification .title-bar {
|
|
display: block;
|
|
white-space: nowrap;
|
|
font-weight: bold;
|
|
|
|
border-bottom: 1px solid black;
|
|
padding-bottom: 0.5em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
.notification .title-bar * {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.notification .close {
|
|
|
|
background: url('../images/action-icons/guac-close.png');
|
|
background-size: 10px 10px;
|
|
-moz-background-size: 10px 10px;
|
|
-webkit-background-size: 10px 10px;
|
|
-khtml-background-size: 10px 10px;
|
|
|
|
width: 10px;
|
|
height: 10px;
|
|
|
|
float: right;
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
@keyframes progress {
|
|
from {background-position: 0px 0px;}
|
|
to {background-position: 64px 0px;}
|
|
}
|
|
|
|
@-webkit-keyframes progress {
|
|
from {background-position: 0px 0px;}
|
|
to {background-position: 64px 0px;}
|
|
}
|
|
|
|
.notification .caption,
|
|
.download.notification .caption {
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.upload.notification .status,
|
|
.download.notification .status {
|
|
color: red;
|
|
font-size: 1em;
|
|
padding: 1em;
|
|
}
|
|
|
|
.download.notification .progress,
|
|
.upload.notification .progress,
|
|
.download.notification .download {
|
|
|
|
margin-top: 1em;
|
|
margin-left: 0.75em;
|
|
padding: 0.25em;
|
|
min-width: 5em;
|
|
|
|
border: 1px solid gray;
|
|
-moz-border-radius: 0.2em;
|
|
-webkit-border-radius: 0.2em;
|
|
-khtml-border-radius: 0.2em;
|
|
border-radius: 0.2em;
|
|
|
|
text-align: center;
|
|
float: right;
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
.upload.notification .progress {
|
|
float: none;
|
|
width: 80%;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.download.notification .progress div,
|
|
.upload.notification .progress div {
|
|
position: relative;
|
|
}
|
|
|
|
.download.notification .progress .bar,
|
|
.upload.notification .progress .bar {
|
|
background: #A3D655;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: 0;
|
|
box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.5),
|
|
inset -1px -1px 0 rgba( 0, 0, 0, 0.1),
|
|
1px 1px 0 gray;
|
|
}
|
|
|
|
.upload.notification .progress,
|
|
.download.notification .progress {
|
|
|
|
background: #C2C2C2 url('../images/progress.png');
|
|
background-size: 16px 16px;
|
|
-moz-background-size: 16px 16px;
|
|
-webkit-background-size: 16px 16px;
|
|
-khtml-background-size: 16px 16px;
|
|
|
|
animation-name: progress;
|
|
animation-duration: 2s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
|
|
-webkit-animation-name: progress;
|
|
-webkit-animation-duration: 2s;
|
|
-webkit-animation-timing-function: linear;
|
|
-webkit-animation-iteration-count: infinite;
|
|
|
|
}
|
|
|
|
.download.notification .download {
|
|
background: rgb(16, 87, 153);
|
|
cursor: pointer;
|
|
}
|
|
|
|
#preload {
|
|
visibility: hidden;
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
width: 0;
|
|
height: 0;
|
|
overflow: hidden;
|
|
} |